If we told a client that they could have their project delivered in half the time of everyone else and at a fraction of the cost, we would have a queue around the block. And to some extent, you can have software developed to satisfy these two entities. What’s missing though, is the ‘good’.
Pricing software is a complex exercise. It’s not until the product has been launched and is in the hands of the users that you can really asses how ‘good’ it is and whether it has been turned around quickly and for a cost that is satisfactory.
Software project pricing will be determined by several factors – the size of the team, their experience and skill and the efficiency of the in-house processes to get it right. So, with that in mind, it is quite possible to combine the entities to some level but not have cheap, fast and good all at the same time.
1. Good and fast
To achieve quality in a speedy manner, the key lies within the quality of the people working on the project. If they have significant experience, they will know how to execute various tasks and use existing base code. However, speed is often counter-productive to quality as development will ‘take as long as it takes’. Project co-ordination and tight operational control will move the project along, but it may miss moments of deeper analysis and light bulb moments which is where our value is really appreciated. The quality of the individuals involved is going to be a big determinant in the cost.
2. Fast and cheap
This can be achieved without the good element. There would be sacrifices in order to shorten the time frame and thus the cost which may be the quality of the code, the testing times and code reviews, the reusability and extensibility for its future development and growth and the user experience. By reducing the complexity of the function and only building key features, you could in theory, produce a product if it’s not handling business critical information. It’s very much dependent on the role the software will be taking within the business and what the key purpose of its implementation is.
3. Good and cheap
The missing element here is time. It is possible to produce a good piece of software that is budget-friendly. This is more suitable for clients who have no expectations on delivery timeframes and may find that consistency is lacking. Productivity will follow a peak and trough approach and momentum may become frustrating.
In software development, the notion of satisfying all three of good, fast and cheap is unlikely. For all elements to be in place, you would need the correct pricing, project management, working approach, technologies and tools all working harmoniously together and a good wind from the west. It’s what every project aspires to, but I think it will (for now) remain an unreachable utopia.