Isabella and Zsa Fischer
Software product development has three basic problems:
- it takes forever,
- will cost all of your money,
- and will probably fail.
Software development’s problems boil down to time, cost, and risk. In a sense, industry progress consists of steps that make one of these factors slightly less bad. This article explores the first of these problems.
Nothing to see
Software development looks slow because you don’t have anything to watch. If you ever tried watching programmers writing code, you’ll know that it doesn’t help, especially when they spend so much time not typing, or even deleting code. Measuring progress and productivity in software development remains an unsolved general problem, because the things you can count don’t count.
Coding feels fast
Talking to the programmers doesn’t help much, because coding doesn’t seem as slow to them. When coding in flow state, a programmer experiences the passage of time differently to a product manager looking forward to the result. A Scrum backlog refinement meeting, on the other hand, may reverse these experiences.
Furthermore, professional programmers actually like coding, which surprises non-programmers who really think about it. This makes it harder for programmers to see development speed as a problem in the first place, especially when they also don’t get to participate in understanding the problems the software will solve.
Coding can look fast
Sometimes, some piece of coding goes extremely quickly, which everyone gets excited about. This resembles a company’s ‘overnight success’, which typically follows a decade’s diligent preparation.
Too much code
Software products seemingly require uncountable lines of code, due to the complexity they inevitably tackle. While a software product involves a finite number of lines of code, in practice, that still typically exceeds what one person will ever read.
Shakespeare’s 37 plays add up to just over 100 000 lines (source) or over 800 000 words (source). An English-language bible has 5-10 per cent fewer words. In software terms, a small business application likely has this many lines of code.
Software products often have an order of magnitude more lines than the bible or Shakespeare’s plays - millions of lines of code. This size creates a significant liability that increases the cost of code changes. Instead of adding another line to a speech in a play, coding more often resembles fixing a typo when you don’t know what scene it appears in, or figuring out how to change Hamlet’s lines to make him slightly less tragic. Now imagine making changes to Windows XP, which reportedly had 45 million lines of code (more recent versions certainly don’t have fewer than that).
Ideas come quickly
Product managers sometimes make their own lives difficult, when it comes to working with programmers. In one day, a single product manager can generate enough ideas to keep a development team busy for months. Anyone who actually does that ends up with an untameable backlog, which ends badly. Much of product management comprises avoiding doing exactly that.
In the end, what this perceived speed causes in frustration, it also lacks in objectivity. After all, software development looks slow, but compared to what?