Today, “modern web development” means something entirely different than it did three years ago…or five, or ten — hell, even a few months ago. That’s not to say that it is entirely different though either! Things are moving so fast it is becoming harder and harder to keep up. I guess that is great for job security, but that also implies that there will be much more competition as time marches forward. You need to take a moment and ask yourself, “what are you going to do to stay at the front?”.
There are new technologies that get spun up everyday, and an unfathomable amount of work to maintain everything…and I mean that literally! The entire web is a living, breathing net of applications that some software developer (or team of developers) had to write source code for at some point in time. But I digress.
Today, “modern web development” means optimizing your application such that it is capable of being served to mobile (or low bandwidth) devices in a reasonable amount of time. Performance is vital to not only attracting an audience but more importantly keeping it. Modern web development (to me) means single page applications that rely heavily on the client’s ability to render and execute the core application. Frameworks like ASP.NET WebForms are obsolete! If you want performance and high throughput, you need to let go — WebForms are dead. You need to start making your way to the front of the proverbial line, because you’re currently towards the back. Frameworks like ASP.NET Core 1.0, MVC 6 and Angular2 are the future. Technologies such as these are superior in nearly every regard — it has been proven time and time again!
- CSS is being written with LESS or Sass and ultimately getting transpiled into native CSS
- HTML is usually written with either server-side or client-side templating tools, like Angular2 components or MVC 6 views
There is obviously still a place for writing raw .js, .css and .html files but it has become far less excepted. With the this movement in web development, server-side code has gone on a diet — this is a win in my opinion.
And while the notion of compression isn’t one that is new, it is still something that I think of when I think “modern web development”. Not just static file compression either, but dynamic file compression — besides most web applications nowadays are no longer just static HTML pages. I still find it interesting that the web was initially thought to simply be a host for sharing static documents, look at how far that vision has expanded today!
Modern web development means, Agile teams working together to improve people’s lives. I’ve read seemingly countless articles about how there is a place for both Waterfall and Agile development methodologies, I’m still not sold on that at all. I believe that Agile is the only way — it can be too easily argued that Agile makes the most sense. Who can argue that transparency, inspection and adaptation doesn’t make sense? Supposedly it is difficult to manage large scale projects, so Agility focus groups formed SAFe and LeSS.
” I believe that SAFe is dangerous and LeSS is more!
In my opinion Agility shouldn’t be confined to the likes of a “framework” or “rigid set of rules”, but rather an understanding that there needs to be frequent and meaningful communication.
There is so much more to modern web development though. Immediately the thought of decision making enters my mind. Not every decision is easy, in fact there are often challenging choices that we’re faced with everyday. Architectural choices, like which front-end framework is best suited for quick development but still fosters maintainability. Or, which flavor of web hosting is preferred Node.js, IIS w/ .NET, etc.? Choices surrounding what technologies have the best support for tooling and longevity – just because something is bleeding-edge doesn’t mean it can or will withstand the test of time. Decisions concerning DevOps, Testing, and Development…the point being that there are lots of things to consider.
As long as you’re mindful, respectful and follow some sort of known and agreed upon methodology that best suits the needs of the team such that it allows for software development that produces stack holder desired results…you’re all good — right?
I cannot be the only one that has an opinion — please be sure to share yours!