Why do you spend money on Software Development?
Why do you pay your employees and freelancers to develop software for you? Why do you spend money on training for them? Why do you pay external consultants to show you better ways of developing software? Just pause for a few seconds and think about it... All the reasons you could think about will boil down to two big themes: You spend money on software development to earn money or to save money. Anything else would not make sense. You want a return on your investment.
Are you losing money right now?You want your software development organization to be like a well oiled machine. A machine that turns ideas into running, user-valued software. A machine that can turn customer requests into features in a predictable way: Where you know when you'll get the result and which quality you can expect. And it seldom works this way. Maybe you can not predict the quality of your results correctly because every now and then, some defects escape into production. Those defects can be ridiculously expensive. When you create software for "the market", you might lose customers and referrals. But even when you create in-house software, somebody using your software will not be able to work as effectively as possible and your organization loses money. And then there's the cost of fixing the defect, creating a hotfix, ... Maybe there is a deeper root cause for those quality issues: Maybe the design and architecture of your software is not as good as it could be. Maybe it is just not suitable for the new requirements anymore. Or it slowly degraded because people did not care enough or did not have the time to constantly improve it. Whatever the reason, your not-as-good-as-possible architecture and design cost you money. Implementing features now takes longer than it used to. More defects escape into production. Cost estimates become less and less accurate. You might have an even bigger problem: Not all the features you work on provide a high value to the user. You implement something, and as soon as it is in production, change requests are coming in. Maybe your analysts did not understand the users correctly. Or your developers did not implement the feature correctly. Or the users did not even know exactly what they wanted - until they saw the first version. Nevertheless, you'll have to do re-work and this costs money. You probably also lose some money in the long chain of little things that have to happen for software to come to life. Your process for developing software might be too inflexible. Maybe some of the people involved are not communicating as effective as possible. Maybe you are producing too many artifacts that do not add value. Maybe it just takes very long until you get working software after a feature request.
Software is expensiveAll right, everybody knows this. Software development is expensive. The salaries of the developers, office space, equipment, software licenses - This means that even a relatively small team can cost a high six figure amount per year. And there are probably more costs in your organization that are part of your development costs: Managers, HR, controlling, ... all work (partly) for your software development organization. So the real cost of a small team is probably in the low seven figures per year. What if your developers understood only a little bit better what your users needed? You would produce more user valued functionality and spend less time on re-work. This means you could also produce customer valued features faster! What if only a little less defects would escape into production? You would spend less time finding and fixing defects, and you'd have more time to work on user valued things. Also, support would be cheaper. And your users would trust you more, recommend your software to others, and work more effectively. What if your software architecture and design allowed your developers to add new features in a quick and safe way? You would face less defects because developers could better judge the side effects of their actions. And the predictability of your output would improve considerably. So if you could improve only by a few percent, that's a few percent of seven figures per year: Still a lot of money!
My name is David Tanzer and I have been working as an independent software consultant since 2006. I help my clients to develop software right and to develop the right software as a trainer, coach and consultant. I speak at conferences (like W-JAX, Con-Fess, Droidcon, the DOAG conference, Herbstcampus and others) and write a blog about software development.