So what’s changed?
Web development is software engineering
It has always seemed appropriate to me to talk about front end web development as a software engineering discipline, but is it? My favourite definition of engineering would seem to suggest so:
Engineering is the action of working artfully to bring something about
Mature tools including excellent libraries and test frameworks, a well understood language with repeatable patterns that are SOLID and an outside-in test first approach. Progressive enhancement and responsive web development techniques allow us to have true cross browser support that is future proofed. Even CSS can be tamed these days with efficient pre-processors.
Supporting every conceivable device type — mobile, desktop, tablet, TV, smartwatches, fridges, POS terminals and more — is now possible with one codebase. Web development is now truly cross-browser, not just multi-browser.
We can use a variety of reporting tools to understand how our application evolves over time including test coverage with the likes of Istanbul and actual performance measurements by deploying SiteSpeed and real user monitoring tools like mSpec.
These days we are spoilt by a developed and developing language, mature automated testing tools and a good understanding of how to make our code conform to the single responsibility principle as well as all the other basic software engineering tropes.
Modern web development feels like magic
My 2001 self would look at the software engineering qualities and measurements we can apply to web development today, the tooling that is available such as WebStorm, Jasmine, Node, Grunt and SASS and he would think they are magic.
If you enjoyed this, please recommend it by pressing the “heart” button below. Thanks!