On 11/12/2018 7:08 PM, Neil Van Dyke wrote:
Full stack web development is a multi-discipline area that demands a
high level of knowledge and skill to architect a working
application. IMO, the vast majority of all web developers are not
qualified to be doing it.
We, ourselves, might be able to improve this situation, with
education, cultural nudging ("just say NO to coked-up brogramming!"),
and better tools.
Yes and no. Implementing a network client/server application requires a
working understanding of the users and their use cases, user interface
design, networks [obviously], protocols, security, operating systems and
services, and the programming languages involved. Since a great many
network application are database driven, you can add data modeling and
database programming for SQL and NoSQL DBMS. And since web applications
now are almost universally expected to run in browsers, you can add
browser programming too.
Implementing a peer or hierarchical distributed application adds
considerable complexity beyond client/server.
That is a whole lot to be even reasonably versed in - never mind an
expert - and way beyond the capabilities of most developers. I have an
excellent CS education and close to 30 years of development experience.
I can claim to be pretty well versed in much of the above [modulo
language of the day], but I certainly am pressured by the task of
designing and implementing complex web applications.
What I don't know how to do directly: Dotcom startups (and the
companies some become) have already optimized development practices
for business goals, as far as the VCs, executives, and middle
management know/believe. I wouldn't know how to argue that better
engineering, in their particular contexts, would better serve their
business goals (or the decision-making individuals' possibly
imperfectly-aligned goals).
Improving education is a given. But I don't have a clue how to address
business culture that holds developers to be interchangeable and
believes that tools / frameworks / methods / etc. must be good because
they are popular. Often popularity means only that something is simple
for beginners to use.
There can be a business advantage to implementing your idea quickly, but
there can be an equal or larger disadvantage to implementing it poorly.
My favorite whipping post in that regard is the Model/View/Controller
approach to databases. The separation of concerns looks good on paper:
nice, clean, easily understandable. But MVC designs (and/or the
simplistic frameworks that promote them) too often exhibit astonishingly
bad performance for which the only remedy is truckloads of money spent
on more powerful servers. Few ever go back and rethink the design.
If we instead went with forcing a public good via regulation (which
often appeals to me, I admit), such as by *genuinely* holding
organizations accountable for some observable adverse effects of
negligent engineering (e.g., data breaches, failure to satisfy spec or
stated purpose), then I'd guess probably even more wealth would
concentrate in a few huge SaaS and PaaS companies, as many
organizations seek to shift the engineering costs and/or liability,
and only a few too-big-to-fail companies can swing the liability
coverage.
Unfortunately, regulation poses too many thorny problems. It's not that
I think the government would get it wrong - I'm absolutely CERTAIN the
government would get it wrong. And lawyers just make any situation worse.
"Lawyers are like nuclear weapons ... as soon as you use them, they
screw everything up."
-- Lawrence Garfield (Danny DeVito) in "Other People's Money".
Professional engineering licenses are also an idea, but my anecdotal
experience is that industry certs and prestigious degrees have little
correlation with competence and professionalism.
Exams only represent a minimum level of exposure to the relevant
subject. The idea of "continuing education", such as exists in other
fields, is attractive, but then the exams need to be updated frequently
and people need to retake them regularly. That would present a large
financial burden to small developers and companies.
And then what happens when someone fails the exam? Are their skills no
longer useful? Do they take up lawn care? Lawyers again.
Also, it's maybe too late to make an industry-wide change. Although,
even were licensing twisted by lobbyists into mostly protectionism and
indentured servitude, there could still be a silver lining, such
curtailing misbehavior like ubiquitous third-party Web bugs, when
thousands of real engineers tell MBAs, in chorus, "We can't do that; I
could lose my license." :)
Maybe we just keep trying to solve: education, culture, tools. :)
Legislating good behavior [for some definition] always will have appeal
... but history has proven that it always is the wrong solution. And as
long as there are economic advantages to bad behavior, you will never be
rid of it.
YMMV,
George
--
You received this message because you are subscribed to the Google Groups "Racket
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.