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.

Reply via email to