Agile software development can seem like the Wild West if you are used to the more rigid Waterfall approach. However, various agile methodologies embrace structured processes that are iterative, collaborative and particularly well suited for fast changing web development. In this blog post, we give a brief explanation of our own SCRUM agile development process.
User Story Planning Workshop
A feature planning workshop is essentially a group brainstorming session. At a bare minimum, the group will consist of the agile project manager (Scrum Master) and the person leading the project from within your own organization (Product Owner), the presence of other developers, software users and other stakeholders can also add value. During the workshop the identified requirements are captured in the form of user stories, and then prioritized.
Estimate and Schedule
After the user story planning workshop, the developers estimate how long each user story will take to implement. Work is divided into one or two week cycles (sprints) and resources are allocated accordingly.
Weekly/Fortnightly Sprint Meetings
Once the project is given the go-ahead, you may want to meet developers again to plan the first sprint – that is, to define goals for the sprint and to clarify, detail and re-prioritize user stories. The development team will then go away and write the code and tests while all the time collaborating with you to make sure they are building what you want.
At the end of the sprint, developers should demonstrate the completed features for that sprint. Then you can provide feedback and proceed to plan the second sprint in more detail. The process should keep repeating itself until the application is complete.
Once all the sprints are completed and you are happy with the result, the developers should deploy the final version of the application to your server. But the relationship should not end here – make sure they are there to support you if needed.
For more information on how to make sure your project runs smoothly, read 5 Ways To Keep a Web Project on The Rails.