I’ve become increasingly discouraged by software companies not providing the right tools for software engineers so that they can get their projects done and meet ever shrinking deadlines. This is even more important with the emergence of new development methodologies such as SCRUM and Agile. For some reason, most executives who run software companies do not understand how important this is to the bottom line. All they see is the cost on a spreadsheet and not the long term cost of labor, lost revenue and time to market. I have never understood why they can’t see these facts when it’s so simple for me.
Let me give you an example that you can take to management so that they might understand. Let’s say you are having a remodeling job done for your house and each person working on it is getting paid $100 an hour. Now, would you want these workers using hammers or nail guns? I would assume you would choose nail guns, which allows the workers to complete the work much faster and also delivers much more force on the nail. The next question is would you want them using the latest, fastest nail gun available or one that is old, constantly breaks down and in the end wastes many hours of work for each person a week? I think the choice is obvious.
For some reason, in the software world, since software engineers are glued to a computer screen all day and creating something that is virtual which some consider not tangible, something you cannot touch… it is different. Therefor due to the inadequate tools provided to software engineers when we can’t make deadlines, customers are upset and even dropping the product/ service, competitors are beating the company in the marketplace. We tell management about these issues and they do nothing, it just purely amazes me. Sometimes I wonder how they got their job or if they even know how to run a software company/ department.
Let me give some real examples that I have seen. Some of our programmers are currently working remotely. I recently found out they are using 5+ year old machines that have a Pentium 4 3.4GHz processors with 3G of ram (give or take on the specifications). I am not joking here!
Here is another example I hope bean counters would understand… the last time we ordered new computers for some of the developers, I designed them to properly run our development environments on a virtual machine (to easily switch to different version of source code for development and testing). My direct manager, his manger and the CTO for our department approved this computer design from our budget. When it got down to the IS, they lowered our memory and disk drive specifications to save around $300 for each machine. Because of the slower machines, I have estimated that the company is now loosing at least $6,500 of the bottom line per developer in the company. Does this make sense at all to anyone?
This reminds me of something that happened a long time ago, early in my programming career. My boss brought around a group a Japanese business men to show off the development department (don’t remember why). One of them asked if all the developers are using the latest fastest computers available… he said yes. I had to bite my tongue because that of course was not true.
More will be discussed in future posts on how hardware and software, the tools for software developers, should be made available to help make product release deadlines.
Please feel free to comment on this post below.
Please read The Right Tool for the Job – Part 2