Completing your software project on time and on budget can be the hardest task you face when you start to work through your project’s budget, scope and timeline. You will have to prioritise and budget, but keep your scope as flexible as possible for your software project to succeed.
You would imagine that every software project needs a highly detailed, step-by-step plan. The kind of plan that would outline every technical requirement, detail every possible risk and mitigation step, document the key stakeholders involved and so on. Such a plan would be everything that a software project would require to be successful – right?
Sadly, in our experience, the answer is no.
You don’t know what you don’t know
The old saying of “You don’t know what you don’t know” is key here. No matter how much time you spend developing a detailed software development plan, technical specification and wireframes or HTML prototypes, there’s no way for you or your software development partner to know what they don’t know. Keep in mind that your chances of success are increased by keeping focused on the software project’s scope, timeline, budget and resources, as well as your ability to identify and manage risk.
We consider it a much better approach to start by defining a simple software product vision statement, and then define a broad strokes plan that allows your software project to begin to move forward in small increments. You spend time detailing a small, but useful subset of features of the overall software project, get it built, review it, discuss it, compare it against your original product vision statement and then rinse and repeat. This is, in essence, the basics of the agile methodology approach to software development.
Agile Methodology
An agile methodology approach to software development ensures that you’re not subject to a “big bang” style Hollywood launch, which inevitably fails. Instead, you grow your software solution gradually, slowly and increase features as you move forward. The ability to adapt and incorporate changes to your software project as you move forward can mean the difference between success and failure, and moreover creates the best possible software product.
“But if we don’t define all of the technical requirements upfront, how can we obtain a quote for cost and timescale? Management won’t sign a blank cheque for software development…” I can hear you ask. Indeed, it’s a fair question, but it’s necessary to accept that even with the best intentions no set of technical requirements will ever be 100% accurate at the outset of the software project. So work to get an estimate on cost and timescale that you’re happy with, usually, a range of best to the worst case, and carefully manage your scope to create the best software product for your available budget and timescale.
To achieve this you will need to ruthlessly prioritise the work. Work should be undertaken in a close-knit partnership between you and the software development team. Regular meetings should take place to discuss the status of the software project and re-prioritise tasks based upon your original software product vision statement and any changes to requirements based upon unforeseen changes since the project was started. For example, a change in legal requirements could mean that you have to do something different with your software solution that you didn’t know about when you started. For these meetings to be meaningful, the software development team must be transparent about the budget and the time consumed and the progress made towards the completion of the software project.
This is how we approach software development and this flexible approach keeps everybody actively focused on the delivery of the product vision statement to the exclusion of everything that doesn’t conform to that vision. It also allows both parties to mould the scope of the software project in response to any new information gathered while the software project is ongoing. The finished solution is a better software product that meets your software product vision statement. Given the wealth of data provided to you about the progress made versus the budget spent, you’re always able to make scope changes armed with the key information you need.
Conclusion
We understand that it’s often the case that a business will want a cost and timescale for the building of any new software solution. However, one should be very mindful of the changes that will likely come about in your technical requirements as you progress in your software project, and build in mechanisms to allow changes to happen.
This is true partnership working, where information is shared, and the product quality and scope carefully sculpted in collaboration between you and your software development partner and that will lead you to create a software product that has been created on time and on budget.