Most software projects fail. In fact, the Standish group reports that over 80% of projects are unsuccessful either because they are over budget, late, missing function, or a combination. Moreover, 30% of software projects are so poorly executed that they are cancelled before completion.
Below are 10 steps that allow you to maintain control throughout any project, manage unforeseen eventualities, and instil flexibility and agility throughout the process.
1) Discuss – Gather Requirements
This involves a meeting to discuss all requirements and define the scope of work. It is important to identify all potential risks and issues within the project to assist with timescales and architecture. Ensure that minutes are taken and agreed upon after every discussion.
2) Agree – Confirmation and Acceptance
Ensure you have an agreement before work is started on the project. This should include timescales as well as the scope of work that needs completed. To give you a better understanding, show your timescales in detail (e.g. against each step in the process.), and against yourself (e.g. when you need specific data, when you will complete each step etc.) Doing this will help with understanding, and assist with scope and change management.
3) Design Document
Delivery and Design should be documented and agreed. This ensures the client will have a document and agreed scope they can refer back too.
4) Presentation and Acceptance of Design
Present design and ensure all parties agree, an agreement should be documented in some way. Even if this is just a sign off on minutes.
The work should be completed firstly in a ‘sandbox’ or ‘test environment’, to ensure the work meets the scope that has been agreed before going live.
6) Test 1 – Test Solution
Test the work in sandbox. Testing should also take place by those within the company who have not developed the work. This should be signed off, and any risks or issues recorded, fixed or amended where possible. Any amendments to the work at this stage should be agreed and signed of. Amendments should also be retested to ensure the whole process is fit for purpose. Any issues that cannot be fixed should be recorded to review further on in the process. If the issue is a showstopper however, return to stage three to review and redesign your document.
Once testing has been signed off, ‘bundle’ or ‘move’ the completed work to a live environment to prepare for further closed testing
8) Test in Live
Testing in a live environment should take place once work has been completed to ensure the work meets the scope that was agreed. Any issues that any user comes across should be reported back for review and possible fixes. This helps ensure that all parties are happy with the quality of work before a full go live.
9) Review – Review against Requirements
Review the work/project against requirements that where initially received and scope that was initially agreed.
10) Gap Analysis – Document and Signoff
Document gap analyses with approval for cost and delivery scope if required.
In following this process allows you to create a methodology that promotes ownership, accountability, and responsibility across the entire project. Although this process covers most bases, there is always a need for customising any process to allow for the individual project, so by all means use this as a skeleton for a project, but not an infallible methodology. In all things, always take a fresh perspective on each project, being willing and ready to cater to its own specific requirements.