— 1 min read
When developing software you usually optimise for some aspect of the creation process. There are many things when considering a software development project like accessibility, usability, user satisfaction, delivery/deployment speed (release cycle), correctness of the code/app, developer happiness and many more. Some of these are first level concerns, some are on lower levels.
The top three aspects that usually directly affect a software development project are
a) price b) quality c) speed
It is common knowledge between (project) managers that you cannot have all three of them. You can choose two at max, but the third will "suffer".
I worked on teams that focussed on B. The projects cost enormous amounts of money and took literally forever. But they won awards. Tons of them. And the customers were happy. So that works.
Optimising for A and C is something I am familiar with as well. These can be quick prototyping projects.
It also happens that these are full-blown client projects. Only, no one notices what they are optimising for. Everyone thought they focus on A only, but somehow are faster than necessary—perhaps because they are just really good at their jobs.
And B is important to them as well, but somehow always loses to C. But not explicitly. It just happens that way. Because it isn't a deliberate decision.
Make no mistake. Clients are happy if you are within the budget and on time. They are conditioned in a way that there are always bugs in software. It's like a rule. So B usually just means that it works most of the time. For most cases. How it looks under the hood is of no interest to most clients.
If you want to have successful software projects you need to choose which aspects you care about and focus on. If you are good and fast, then it can make sense to have lower prices than your competitors, because you can complete more projects in the same amount of time. And earn more that way. But you have to make a deliberate decision about it and have everyone on the same page. Don't just let it happen by accident.