Software Development: Let’s Bring Back The Golden Age
In the stone age of computing (aka the 80s and 90s), software engineers were select, highly skilled individuals. They took pride in their work and strived for technical excellence.
Software development was a slower, more methodical process. Developers had time to test and refine their code before releasing it to the public.
Before the turn of the century, software development was still a relatively small, niche industry. Companies and individuals had to rely on in-house coding or the services of a few select programmers.
However, with the rise of technology and the internet, software development has become one of the fastest-growing industries. The demand for software has skyrocketed, leading to an influx of new developers.
Now, just like in any industry, there’s a range of skills and expertise within the field. Companies often cut corners by hiring less experienced (=cheaper) developers. As usual, you get what you pay for.
App development boomed when the first Apple and Android smartphones were released. Software startups emerged with a “move fast and break things” mentality, prioritizing speed and profitability over technical excellence. Suddenly, anyone with minimal coding experience could slap together a shoddy app and release it to the masses.
This “quantity over quality” approach has led to countless buggy, glitchy, or simply meaningless software products.
Just think of all the frustrating experiences you’ve had with poorly designed apps or sluggish computer programs. And it’s not just annoying for users – buggy code can also have serious real-world consequences, such as security breaches and malfunctioning medical devices. (We can just hope that nuclear power plant software is being developed with more care and attention.)
In addition, Agile development has further contributed to this issue.
Don’t get me wrong. Agile can be a valuable tool for quickly adapting to changing requirements and delivering smaller chunks of work. But it can go wrong in so many ways–let me share just a few examples.
1.) Agile is often misused as an excuse to push out unfinished products and constantly add new features without fully testing or refining them.
The focus on swiftly releasing iterations and constantly gathering feedback can result in a never-ending cycle of patches and fixes instead of taking the time to build a solid, well-designed product from the start.
2.) Customer collaboration can lead to Frankenstein-esque software designs, with a mishmash of features and functions based on individual stakeholder requests instead of a cohesive overall strategy. Prioritizing the customer’s immediate wants over long-term product success and user experience is a surefire way to end up with a messy, confusing product.
3.) More often than not, the scrum master and the product owner take on the role of a dictator instead of a facilitator. The myth of agile developer autonomy is just that – a myth. In reality, developers are pressured to meet arbitrary deadlines and rushed to churn out “working” code without proper testing or refactoring, leading to products of questionable quality and burnout among team members.
It’s time for a change in the industry. Our priority as software developers should be creating high-quality, sustainable products – not just meeting deadlines and making a profit for whatever company or pointy-hair boss we happen to be working for. Let’s bring back the pride in craftsmanship and technical excellence that defined software development in its early days.
Responses