Benefits of Process
Creating software can be a daunting task if you look at a project's vision in it's entirety. Where do you start? What features do you build first? What if something changes? How do you make sure everything is accounted for? 9mmedia uses Agile and Scrum methodologies to build the best software in the most flexible and efficient manner. Using an Agile process allows us to break large, complex ideas and features into much smaller and manageable pieces. It allows the client to make changes without the overhead and bureaucracy of "change orders" and by using 30 day development iterations, everyone has transparency to where the project currently stands.
All known features or use cases are added to the product backlog list. A backlog item must have actual business value and a testable outcome. Each item is assigned a point value based on complexity and approximate number of days it will take to complete. Think of the Product Backlog as the wishlist for everything that is needed to build the entire project where features can be added or removed at any point.
At the beginning of an iteration, the development team meets with the client to select features from the top of the prioritized Product Backlog. We discuss the details of each feature and break them down even further into smaller sub-features and try to realistically estimate the work involved. We then bite off enough work for the iteration based on how many developers are working on the project that can be completed within the iteration's duration (typically 30 days).
Teams are focused on burning down or completing iteration's tasks and nothing else. All external factors are fought off for the length of the iteration, allowing for maximum productivity and stress-free projects. Each day the team meets in a 15 minute stand-up meeting to report on the status of the iteration. The entire process is measured, tracked and the real time status of the project is available at any time. This complete transparency, which is shared with the client, allows for the most effective management and business decisions.
Adapting to Change
New feature requests can be added by the client at any time during an iteration (this is expected and encouraged) but these requests get placed on the product backlog and correctly prioritized. If an item needs to be added to the in-progress iteration, it is evaluated, scoped with a time estimate and an item of equal value and lower priority is removed. This minimizes feature creep, unpredictable deadlines and keeps the team focused while still maintaining flexibility.
We do not spend a lot of time with upfront planning in our process. It is widely proven that the beginning of any project is when the least is known, so any long range estimating is likely to have a large margin of error. Instead, each small, 30-day iteration includes its own planning and requirements gathering. This guards against the cost of planning and designing features that are later deemed unnecessary. Each iteration produces high-priority, deliverable features that are “QA complete” and can be released.
Scrum & Agile Development
- Delivering high-value, prioritized features early and often
- Easily adapting to changing circumstances, features and priorities
- Facilitating communication and understanding between business people and developers
- Providing the ability to measure progress at any point in time
- Simplifying the development process