07/Aug/2006
Contigo are a small company and we pride ourselves on being agile, flexible and extremely productive. We keep our processes deliberately lightweight and flexible and ensure our focus is on developing great applications. We value people over processes and we only use people we believe are very talented.
By following agile development practices, primarily Scrum, we have developed a relatively simple development process which we believe guarantees the success of the project:
- We start with a clear vision of the project. This is not a detailed specification just a couple of pages on what the application should deliver;
- We then build a list of project requirements. Each is prioritised based on how much it contributes to the overall vision. The list of requirements and their priorities is dynamic and can change as the project progresses – this is known as the project backlog;
- The development is then broken down into ‘sprints’, each normally 30 calendar days. Each ‘sprint’ is planned based on the requirement list, and ensures the highest priority requirements are delivered first. Regular ‘scrum’ meetings are held during the sprint to assess progress;
- At the end of each ‘sprint’, the application is demonstrable and is reviewed with the customer. The feedback obtained following this review will modify the requirements and priorities and drives the planning for the next sprint;
- The development process is effectively time boxed into a number of sprints. This approach ensures development is complete on time and that the most important requirements are delivered. If there are requirements still to deliver then a further sprint can be undertaken.
Development is managed using Microsoft Team Foundation Server. This new platform is available as part of Visual Studio 2005 and provides sophisticated source code management integrated with project and work item tracking. We manage development tasks and issues within the Visual Studio environment rather than in a separate application. Team Foundation Server creates a Sharepoint Portal site for each project and provides a detailed reporting capability to easily track the status of each development project. We have found this integrated solution has provided many benefits to our development process.
We also provide an external project portal accessible by our clients. The portal has all the documents associated with the project, indicates milestones and tracks project progress. It also enables real-time communication between ourselves and our clients. The portal is automatically updated from our TFS system.
Our approach is driven by some simple philosophies and guidelines which we use to drive what we do:
- Fix time and budget, scope is flexible;
- Use the best people –good processes and detailed standards will never make an average developer into a great developer;
- Developer productivity is key;
- Don't optimise prematurely;
- Keep the application as simple to use as possible;
- Make the use of the application enjoyable – it should look good and its benefits should be obvious. It should not be a chore to use;
- Trust the user – don't make things hard for the user for the sake of integrity.
- Only get into detail when necessary;
- Maintain flexibility to changing requirements and ensure the cost of change is small;
- Always keep the customer involved;
- Initially focus on building the key, everyday functionality, not on the occasionally used functionality.
More information
For more information on the development process used by Contigo, email info@contigo.co.uk or contact us.