Development Methodologies - Rapidly Building Useful Websites.
We have all heard of horror stories of big software developments which are late, overrun budgets or simply don't delivery functionality. Generally, this is down to a long development cycle where requirements are gathered up front way before the software is built, resulting in the final system being "this isn't what I asked for".
So I thought I would take a bit of time to tell you about how we work at GroovyCart.
To avoid these catastrophes, the GroovyCart team have adopted an Agile approach to software development. Broadly, the team adhere to the following:
- Developments are split into fixed iterations of, generally, 2 weeks.
- Every iteration has deliverables.
- The requirements scope fits an iteration.
- Each iteration goes through the full life-cycle of development, test and deploy.
- There is a review at the end of the every iteration meaning the client can monitor development.
- The scope for the next iteration is decided at the end of the previous iteration.
Ok, so what happens in practice? The very first 2 week iteration is about identifying the key deliverables and roughly allocating these to iterations. For the first release of GroovyCart we planned for 6 iterations. At the start of each iteration we would collectively decide what deliverables will be developed. Generally, these deliverables will form the test plan/specification for that iteration. Where a deliverable is more than 2 weeks work then it is split up into smaller deliverables. At the end of the iteration, the development is tested and "driven to live". So at the end of the 2 week iteration there is a working, demonstrable system, which the client can view. We then decided what is going into the next iteration. Ok, so what happens when things go wrong. If a piece of software is taking longer to develop then work on that individual deliverable it is split across iterations, i.e. the iteration is still deployed on the due date. If the client doesn't like the look of a deliverable then the subsequent iteration will address this.
What does this mean for GroovyCart?
Our Agile approach ensures we are develop features on GroovyCart quickly, and be responsive to our shop-owners requirements for new functionality.