Sometimes so much so that by the time it finally launches, it’s considered outdated, and fails.
This is a sad, and quite stressful state of reality for any software project manager to find themselves in. Months and sometimes years of work, for what?
In order to avoid that painful situation for both client and development teams, an agile process, possibly even combined with the minimum viable product (MVP) approach might be considered.
In an ever increasingly fast-paced world, to quote Mark Zuckerberg, “Move fast and break things.”
The Theory of Agile
Agile software development refers to software development methodologies centered round the idea of iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams.
Now don’t get us wrong, even though agile methodologies have been around for decades (under many other names), if it’s not steered correctly, things can still go horribly wrong. The ultimate theory behind agile development is that it should enable teams to deliver products/projects faster - as more components can be built at the same time. However teams could still set each other back when they get too tangled in the process itself - ie where the method becomes the goal and not the deliverables, red tape or micro-management by a project manager that doesn’t quite understand people management as well as client and stakeholder management.
The beauty of truly using Agile methods lie in having a reliable, highly skilled team that can collaborate and are accountable - individually as well as together. As Alistair Cockburn, a former hardware designer and researcher, and one of the initiators of the agile movement, states “Development is a cooperative game in which a move is not correct or incorrect, it is only better or worse than the previous one.”
Roughly meaning that if you have a strong team, the process of how they collaborate or come up with the solutions shouldn’t matter (too much).
The Push for MVP
Projects can also be hampered by trying to get things perfect. The rabbit hole of software development is that one always inevitably thinks of some new functionality to add. And yes, although it would be cool, does it really need to go out with the first release? If one gets stuck in “perfect” you can assume your project might just end up as one that takes far too long to launch. Hence MPV - the minimum viable product. What is the minimum functionality you can launch to cater to the maximum of requirement, or the 80/20 rule. Developers often forget that you can make your customer base happy by getting those functions covered, and can iterate new functionalities post launch. In fact, that usually makes clients even happier - knowing that the software house is actively working on, and thinking about evolving the product.
As Mark Twain said “Continuous improvement is better than delayed perfection”.
What About Cost?
Development of software projects on MVP basis prevent those unnecessary costs, that often goes in to ‘nice-to-have’ or ‘could-have’ features.
Software development is often something that is outsourced, or bought off-the-shelf. The latter with little, to no customisation to the frustration of the client.
However, there is a new breed of software development agencies, such as Platinum Software, that understands this and have evolved to create a hybrid of custom software, that is cloud enabled, and can grow and scale as you grow and scale.