So I stumbled upon a few things recently:
- a J.B. Rainsberger presentation about “The Economics of Software Development”
- a video by Andrea Goulet that touches on some similar issues (thanks Fab for recommending!).
- a video by Jessica Joy Kerr on “The Secret to Software Quality”
To me they are all about connecting software quality with the business needs. We all enjoy writing software because it is fun! We also pride ourselves on doing a good job. However in order to justify getting paid, we need to connect taking the time to do it “right” to the business. I think this content all gives you some techniques and terminology to better talk with your management and describe the value of investing in software quality. They all did such a great job, that I am not sure that I can add much here (other than to bring this wonderful content to your attention), but I am going to try a little bit.
J.B. hits on something in this video that I think we have all run into and that is a perceived disconnect between management and developers. The managers are saying “add more features” and the developers are saying “that’s great, but we need to do some refactoring first.” They seem to be at odds, but not really. That is of course assuming that we as developers haven’t fallen into capriciousness ie. I want to change it simply because I don’t like it. Typically we want to refactor because it will make adding new features easier. We need to do more to show management that we really are both on the same page. The video has some tips for how to do that like talking about “reducing the volatility in the marginal cost of features”. Also the graph of feature costs over time is priceless and leads to some interesting conclusions.
This video by Andrea Goulet is actually about personality types and different types of coders but it does touch on the economics of software. She makes a very good case that it can often be a good idea to focus on bug fixing over adding new features. You do need both. Unfortunately many organizations seem to prioritize adding new features. They are great for adding new customers, however, from a business point of view it is always more costly to acquire new customers than to retain existing ones, which is where fixing bugs shines. A lot of it depends on what stage your business is in.
This video by Jessica Joy Kerr is really about understanding the business needs, specifically the unstated ones. As LabVIEW programmers we have a small leg up here, because typically we are the domain experts (or if the not the experts we are at least scientists and engineers and able to understand the technical aspects). However we also need to take into account the business needs and the end customer’s needs. It is about understanding the bigger picture.
Hopefully you found these videos useful. What tips and tricks do you have for conveying the value of software quality to management?