Working as a software engineer for many years I have heard many of these refrains. In fact, I have said many of these too. We seem to get fixated on certain things and complain about them. Growing up in a small town developers are similar to farmers who every time they meet complain about the weather. So if you are not a developer and you see a few of them “talking shop”. They will cover these.
We need these new tools
A friend of mine used to sell tools to mechanics. He drove one of those big trucks with a lot chrome plated tools. He would tell stories about how the auto mechanics would go into debt to pay for their tools. Lucky for developers they don’t usually have to pay for their tools. Developers can hold almost religious beliefs about some of their tools. The arguments I have witnessed over the close to twenty years I have been in technology is crazy.
In the business world, we sometimes have to put out code that is not perfect. This can drive some “perfectionist” developers nuts! I know this type of person because I used to be one. I would worry if the formatting wasn’t one way and we didn’t use the right software pattern. Just a few weeks ago I was trying to get another developer on this very issue. She wanted to review every line of code from the junior developers. The delays were already happening and this was only going to make matters worse. It occasionally needs to be pointed out to developers that we are working for a business. The bills have to be paid before we worry about having the software pristine.
The issue of technical debt is something I have been concerned about many times. Similar to the financial debt we occasionally have to cut corners technically. This is something that can cause problems down the road as we try to make more changes. As I have progressed in my career I now look at the longevity of the project. In a system that might not last a few years we really shouldn’t be concerned with technical debt. Now, most people don’t do a good job of understanding the volatility of the organization. I worked on a project a few years ago that I was concerned about technical debt. A few months later the organization moved in a different direction and this was no longer a concern.
Software development attracts people who can get into the weeds from the jump. I can attest to being that person at times. As someone who is responsible to complete the work, we can find reasons why things won’t work. Technology can be challenging in many ways. Through my technology career, I have learned to focus on the possibilities, not the reasons why not. Even our leaders can be afflicted by this sentiment. Some say somewhat tongue in check that the CIO should be CI”NO”.
Not Enough Time
Developers only want to release their work when it is perfectly complete. It is never perfect in their minds. Through my experiences in software development, I have been exposed to the Minimal Viable Product or MVP concept. This idea championed by Eric Ries in his book the Lean Startup is used in many business settings today. We need to get our products into our customer’s hands and see what they say. The opinion of people who might pay for the software is quite valuable.