An interesting overview by Paul Ford into the world of software development in general – spoken from someone in the trenches – and much of what he rights rings true with me. A very long read, but if you skim or jump around, you are likely to glean some interesting thoughts and ideas out of it:
His open about what a new Chief Technology Officer (CTO) says when joining a company is a paraphrase of what I have heard all new CTO’s say when they come to an organization:
All of the computer code that keeps the website running must be replaced. At one time, it was very valuable and was keeping the company running, but the new CTO thinks it’s garbage. She tells you the old code is spaghetti and your systems are straining as a result.
And in most cases the statement has some truth to it. Every company has legacy code issues – since business rules change and technologies change. The term “technical debt” refers to a way to estimate the size of your legacy code issues, which is a great analogy, because who is to say when you have too much debt – or how much effort do you want to take to ‘pay down’ your debt. It’s ultimately a decision that business has to make.
One last thought on this article – midway thru the article is a piece titled ‘The Time You Attended the E-mail Address Validation Meeting’. If you have ever wondered about what goes in on meetings amongst software developers, this gives great insight into how a typical technical discussion goes. I have been in many meetings (even email validation meetings..) where the development process goes something like that.
After reading this article, perhaps you will have a better appreciation for the world of coding, the issues of today, and why so much legacy code exists. The software development process and explosion of languages has gotten pretty crazy over the last several years. But software development is still an entertaining and mentally stimulating process for us developers; and every time I rewrite one of my applications… I still learn something and find myself enjoying the challenge.