Programming
Scrum (1 of 2)
Begin the project with a high-level plan that can be changed on the fly
Success of the project is most important
Individual success is secondary
Project leader has some (not much) influence on the detail
Systems team works within a strict time frame (two to four weeks for development)
Roles Played in Scrum
There are three roles in Scrum:
Product owner
Scrum Master
Team member
Scrum (2 of 2)
Product backlog
Sprint backlog
Sprint
Daily scrum
Demo
Scrum is a high-intensity methodology. It is just one of the approaches that adopts the philosophy of agile modeling.
Product backlog—in which a list is derived from product specifications.
Sprint backlog—a dynamically changing list of tasks to be completed in the next sprint.
Sprint—a 30-day period in which the development team transforms the backlog into software that can be demonstrated.
Daily scrum—a brief meeting in which communication is the number-one rule.
Demo—working software that can be demonstrated to the customer.
4
Product Backlog
Features and other deliverables designers intend for the product based on user stories
The list of user stories is reorganized so that the most important user stories appear on the top
Figure 6.5 A Product Backlog Registry
Sprint Cycle
Stories are deliverables the team accomplishes
Tasks are parts of the story or units of work that each team members does
The sprint cycle can vary in length, but the usual is two weeks
At the end of the cycle, determine whether the product should be released
Two-Week Release Advantages
Team spirit remains high
Completing the product is more real to the team
Continual feedback from customers
Figure 6.6 Teams Work Together to Accomplish a Sprint Cycle
Lessons Learned from Agile Modeling (1 of 2)
Short releases allow the system to evolve
Pair programming enhances the overall quality
Onsite customers are mutually beneficial to the business and the agile development team
Short releases allow the system to evolve—through the use of short releases, the development team compresses the time between releases of their product, improving the product later as the dynamic situation demands.
Pair programming enhances overall quality—fosters good communication, identifying with the customer, focusing on the most valuable aspects of the project first, testing all code as it is developed, and integrating the new code after it successfully passes its tests.
Onsite customers are mutually beneficial to the business and the agile development team—customers serve as a ready reference and reality check, and the focus of the system design will always be maintained via their presence.
10
Other Unique Scrum Features
Scrum planning meeting
Planning poker
Daily meetings
Sprint burndown chart
Sprint review
Scrum Planning Meeting
Two parts to a Scrum planning meeting:
Product owner presents the list of features on the wish list of user stories
Estimate the resources needed to complete all of the features
Common way to do this is to play planning poker
Sprint Burndown Chart
Way to keep track of performance
Horizontal axis tracks the time that has elapsed
Vertical axis may track the number of tasks remaining or the number of hours to complete the remaining tasks
Red line shows hours of work remaining, and the yellow bars show the number of tasks remaining
Figure 6.8 A Burndown Chart
Sprint Review
Team gets together in a meeting to review the work done
Note any tasks that were not completed
User stories completed are prominently documented
User stories the team committed to that were not finished are noted
Kanban
Key elements of the Kanban system as applied to software development are:
Visualize the workflow
Keep work-in-process (W I P) as small as possible
Reevaluate the workflow, reassigning priorities if need be
Strive for continual improvement
Figure 6.9 A Kanban Board
Scrum Advantages (1 of 2)
Advantages:
Quick product development
Exercises a user-oriented approach
Encourages teamwork
Less confusing than more formal approaches
Flexibility
Scrum Advantages (2 of 2)
Advantages:
Satisfying to team members
Rewards smaller but meaningful accomplishments
Provides feedback
Adaptability
Scrum Disadvantages
Disadvantages:
Documenting features improperly
Releasing products with errors
Releasing products too soon for the user
Completing the sprint backlog under pressure
Working as a geographically dispersed team may be difficult
Working as a team when special skills are required may be challenging
Replacing team members who leave the team is difficult