I’ve been a software developer for over a quarter of a century and I’ve seen software development change quite a lot in that time. When I started out writing code the main concern that I had was to make my software work.
It was challenging to make software do what we wanted back then because not only did we have to figure out what we wanted to actually do but we also had to do it in such a way that it would run fast. Machines back then were very slow and memory was extremely expensive so we were constantly finding clever ways to make our software run faster and in less space. Very often this was at the expense of making the code easy to read and understand.
Today the forces of the industry are very different and we recognize that speed at all costs is wrongheaded in most cases. Computers are very fast and memory is very cheap and as a result these things are no longer a high priority for us. There is a new priority for our new limiting factor in the equation of software development and when I ask people what it is most of them cannot tell me.
The new limiting factor in software development is software developers. We’re only human and there are a finite number of us as the demand for software continues to increase. As result we have become scarce resources so the quality of the code we write and how maintainable it is becomes much more important today than it ever was.