Frequently, software projects fail because the cost of implementing new features increases as the complexity of the software increases. Basically, buggy, inefficient design becomes harder and harder to work with as a project goes on. An increasing percentage of hours become devoted to rework.
How we work.
We don't work in this way. We embrace a flexible, iterative process that allows us to work more efficiently. As such we emphasise trust, partnership, and collaborative problem solving. We tackle projects as a series of smaller sprints rather than a marathon, so our solutions mirror ever-changing requirements, limiting time spent on re-writes and fixes.
Our process includes the rigorous application of best practices engendered by Agile software development, a combination of Scrum project management processes and extreme programming engineering practices.
Agile Project Management using Scrum
The advantages of an agile process
- Less risk
- More frequent releases
- Improved client relationship
(as the progress is clearly visible) - Better requirements
(since decisions are made as late as possible)
- Better communication
- Emphasis on face-to-face communication
- Daily standup meeting
- Regular sprint reviews
- Regular sprint retrospective
- Less waste
- Optimized team performance
- Less time spent on documentation
Scrum is a project management methodology specially designed for agile software development. This helps us work more efficiently and be highly responsive to changing production requirements. Scrum, derived from the name of a rugby play in which the forwards fight for the ball, is a highly iterative process that breaks work down into a series of short sprints. Everyone works together, and higher priority work is completed first.
The Process
- Project kickoff: During this time, our team internalises the vision and goals of the system. We learn as much as we can about the client's domain, helping to develop viable solutions that will be less costly to implement. Working closely with the client.
- Sprint planning: Team leaders break work into stories, small projects that can be completed in short periods of time. Stories are prioritised and organised into sprints.Each sprint is between 1 to 4 weeks depending on the project, the culmination of which is a new release.
- Short sprints: Each sprint, team members commit to finishing a pre-determined number of stories. Each day starts with a short stand-up meeting called "the daily scrum" during which each team member reports on progress, planned work and roadblocks.
- Sprint demonstration: At the end of each sprint, the scrum team will demonstrate the completed work and receive valuable feedback from the project owner.
- Sprint retrospective: The team discusses both good and bad feedback and incorporates needed changes into the story backlog.