Has Software Development Gotten Easier or More Complex?

By Pete Czech

p>And in a blink of an eye, I’ve been working as a web developer for 25 years… That was fast!

I thought the other day, are things easier these days or are they more complex?

The truth is a little bit of both. This week, I wanted to look at some areas where digital production has gotten much easier and others that have introduced some complexity to our day-to-day work. 

Easier: DevOps & Workflows

I remember back in the day when deploying web code, it was as simple as dragging around files from one environment to another and running some SQL code where necessary (or even making changes on the fly, manually). This was quick and dirty, but it resulted in many issues, such as impossible rollbacks, no code control, and other issues from an organizational perspective. Once you started, you were in it, and there was no turning back.

Today, this is made so much easier by using code repositories, version and code control, and automated deployments. Developers have more tools to automate these processes, resulting in more fail-safes, more backups, and better resolution of conflicts. These tools take time to properly set up, however, and that does complicate matters. But when properly provisioned, life is much easier with them available. Today, code is so portable you can easily deploy localized dev environments and shared development/staging servers. Deployments can be fully automated to production, with all of it being trackable and tools available to help troubleshoot. Amazing!

More Complex: Many Different Disciplines

Back in the day, a web developer would know many different skill sets just to survive. A true web geek in 2003 could design pages, code them into HTML, add functionality with PHP and understand how to utilize MySQL to power a database. It was truly a jack of all trades, or as the kids call it today, “full stack development.”

Today that exists to a much smaller degree because the disciplines are split. One reason for this is that everything is more complicated. Front-end coding is now complicated with CSS, JS, and HTML, all requiring specific attention to detail. Back-end coders don’t necessarily share the skills that front-end coders have, and vice-versa.

This results in projects simply taking more resources and more time. A complexity that adds resources adds time and collaboration, which affects all sorts of other things, including introducing budget implications. While the solutions in place today are more elegant, they are more complicated and therefore take longer to complete. Today's web team needs various players, each with its specific focus and area of expertise. You may need UI/UX designers, front-end developers, back-end developers, a QA person, a sys admin, project managers, product managers... The list goes on and on - whereas, in the past, many of those roles could be combined. Nothing irks me more than when I had a project manager on my team who would throw his hands in the air and say, "I'm not technical." Back in the day, we managed to do it all! Sadly, today, everyone prefers to stay in their lane.

Easier: More Modular / Component-based Approaches are Available

Web development projects today certainly benefit from having more off-the-shelf components available. Twenty years ago, there were fewer libraries available to handle common tasks. Today, there is code for almost everything already out there. This doesn’t mean that developers have less work to do; it just means that more pieces are available that don’t require rethinking.

Software architecture is also benefitting from new methodologies that allow projects themselves to be more modular. The advent of front-end code libraries such as React, Angular, and Vue.js now make the API-driven approach more popular for building scalable software. These tools allow developers to build API frameworks, providing data to front-end experiences. These two experiences are different code bases and frameworks. Still, they are a strong approach because each efficiently performs its roles and is ultimately replaceable as components should the need arise.

More Complex: More Points of Failure

Because projects are now being built of components, that does introduce an element of risk because each component needs its redundancy, scalability, and emergency response strategy

Case in point: so many projects these days rely on third-party API connections. However, almost no clients ever want to spend additional development time and money to ensure that they have redundancy for when APIs go down.

Today’s approach means that it’s more likely that web apps or sites will run into outages, and when they occur, it’s often more complicated to diagnose what is happening. The best thing to do is to build in error handling to assist in making sure a site is stable even when a data provider or connected application is experiencing issues. Though this is time-consuming and, of course, costs money to do properly, which often leads to organizations choosing not to bother.

Easier: Virtualized Hosting

I remember touring a data center back in 2003 when we were contemplating where to set up new infrastructure for a multi-server project. After all, who doesn’t love a good data center visit?

Back then, you’d determine how many racks you needed, what kind of power supply, and what kind of bandwidth you’d require. Then you must acquire the servers and install them all physically… Fun, but tedious. And don’t forget about when drives or server components would fail… The best part, though, was the keychain you’d have, which was littered with little keys to open the racks.

Today, services such as AWS have made all of that hard work go away for the majority of folks who are building web infrastructure. I’d labor to say that almost all web developers who started in the past ten years have never set foot in a data center. Sad, but true.

Today, we can spin up new servers in seconds, preloaded with all of our usual suspects regarding tech stack, and ready to rock and roll minutes later. Planning for the expansion of resources is easy. And there are tons of tertiary services, so you never have to worry about setting them up again yourself, such as load balancers, mail servers, database instances, and firewalls. Without a doubt, this is the biggest innovation that I’ve seen while doing this line of work.

Part of me still wants to take an old desktop, install Linux, and run a local mail and web server. Just for old times’ sake.

More Complex: More Regulation & Compliance Issues

This is the biggest burden on digital professionals now. When I started in the late 90s, it was all pretty much the wild west. Today, everything has changed. There are compliance and regulation considerations to factor into almost every project. 

The worst part is the lack of client willingness to invest in compliance with many of them. Some compliance matters, such as CCPA, allow carve-outs for smaller businesses, which is great. However, others like HIPAA and ADA are compulsory, yet clients often look the other way when it comes to investing in their proper implementation and compliance.

And don’t forget about specific regulations on a per-industry basis. This can mean security requirements, data sharing rules, and data gathering restrictions. Put it all together, and you have the most complex changes to digital operations since the inception of the web.

The Verdict Is…

Overall, I look at the state of the industry in a few ways. Technically, things have gotten easier on the one hand and more complex on the other. Tools and techniques are better, but as the industry evolved and matured, it required more expertise in specific areas because of added complexity. That maturity also added the layers of regulation, legal considerations, and data concerns that so many people are fixated on.

In retrospect, I am glad I came of age in the industry back when things were relatively simple. It allowed me to learn at a base level how things work. Web professionals that started in the 90s and early 2000s probably have the most well-rounded knowledge of how everything works. I do not envy those starting today who benefit from all these tools but have a hard time learning how they all work together and where they emanate from.

How does this all tie back to our company and our services? Well, the most successful agencies these days need a deep background in all things digital and how those things work at a very deep level. Only with that understanding can you offer the most logical and experienced usage of the tools available to us today. Agencies that have a junior workforce are more likely to engage in the usage of trendy tools that satisfy their upbringing in the space. But the use of trendy tools in the hands of those without the depth of experience and knowledge rarely works out well. There's something to be said about experience - even in a digital space where things evolve quickly.

Get in Touch

In the past, we have addressed many of the important reasons to take website accessibility seriously.

Get In Touch