How do we Work on a Day-by-Day Basis in Scrum Model?
Scrum begins with an 2-4 hour Scrum Kickoff Meeting. The Scrum Kickoff meeting is divided into 2 segments, where we first determine what features are desired for the upcoming sprint. The next hours are used to provide rough estimates for the items identified for the sprint. If the estimates exceed the available resources, the features are prioritized and less important features are dropped from the sprint. An important component of Scrum is using a time-box approach, where meetings and events have a definite time period (e.g. no more than 4 hours for the kickoff meeting) and this time-box is strictly enforced.
Once the features are locked in for the sprint, no changes are allowed (new features can not be introduced until the next sprint). When estimating features for a sprint, the estimates includes time for analysis, design, coding, testing, re-factoring, and documentation. A feature is not considered complete until all those things are done.
Each day, a Daily Scrum Meeting is held to determine how the features are progressing. The meeting is no longer than 15 minutes, and each team member is asked 3 questions:
- What have you accomplished since the last Daily Scrum Meeting?
- What will you do before the next Daily Scrum Meeting?
- Is there anything that is impeding your progress (and remedies are discussed)?
Our Programmer’s follow specific rules:
- Code is only checked out for the duration needed to complete a feature. No exceptions. Most code is checked in daily, as most features are broken down into small feature sets.
- Time must be entered daily. For each feature, we have estimated hours, actual hours and hours remaining to complete the feature. This information is updated at the end of every day so that the ScrumMaster can determine if the release progress is trending as required.
- Programmers are not allowed to be pulled off on tangent projects, they must stick to the features they have been assigned for the sprint.
- All team members are mandatory to attend the Daily Scrum Meeting and are present on time.
- Code is compiled and deployed to a test server daily. Teams use automated build tools to speed up this process. Automated tests may run against the daily releases to discover any issues introduced by the release.
Once a sprint is completed, all features that were completed are then moved to a beta or production environment. Following the sprint is a Retrospective (post mortem), where team members discuss and document things that went well and things that can be improved upon in the next sprint.
Once all sprints are over then it goes for QA and followed by user acceptance Testing.