Quick Overview on Agile Scrum
Scrum - Process
Before we do more Scrum, we should know what is Agile:
What is Agility?
“Values, principles and practices that foster team communication and feedback to regularly deliver customer value through working software.”
- Team communications - Concentrate more on communication and collaboration rather than process and tools
- Feedback - lots and lots of daily feedback with all stake holders involved -
- Regularly Deliver - Software releases every quarter with internal releases weekly or bi-weekly
- Value - Focus on highest valued features first
- Working Software - Focus on getting S/W working early and keeping it releasable rather than big-bang waterfall approach
- Emphasize face-to-face communication over written documents.
- Agile teams are located in a single open office sometimes referred to as a bullpen.
- Highlight working software as the primary measure of progress.
- Produce very little written documentation relative to other methods
What are the Agile methods ?
- Adaptive Software Development - replaces the traditional waterfall cycle with a repeating series of speculate, collaborate, and learn cycles.
- Crystal - contains the following properties frequent Delivery of Usable Code to Users , reflective Improvement.
- Dynamic System Development Method (DSDM) - Its goal is to deliver software systems on time and on budget while adjusting for changing requirements along the development process.
- Extreme Programming - it advocates frequent "releases" in short development cycles (timeboxing), which is intended to improve productivity and introduce checkpoints where new customer requirements can be adopted.
- Feature Driven Development (FDD) –At start of project: Develop an Overall Model, Build a Features List, Plan by FeatureWithin each iteration: Design by Feature, Build by Feature
- Scrum (an abbreviated form of scrummage), in the sports of rugby, is a way of restarting the game, when the ball has gone out of play.
- Scrum is an iterative incremental framework for managing projects.
- Focuses on managing systems with changing requirements
- The goal is to deliver as much quality software as possible within a series of short intervals.
- Scrum projects make progress in a series of “Sprints”
- Timeframes are called Time-boxes (typically 2 – 4 weeks)
- Every Sprint team does the following: Analysis -> Design -> Code ->Test
- At the end of each Sprint, the Team must produce a potentially shippable product increment.
- Roles : Product Owner, Scrum Master, Team
- Artifacts : Product Backlog, Sprint Backlog, and Burndown Chart
- Ceremonies : Sprint Planning, Sprint Review, Sprint Retrospective, & Daily Scrum Meeting
- Represents (or is) the user or customer for the project.
- Defines goals for the overall project
- Knowing what to build and in what sequence
- Defines and Prioritizes Features
- Set length of calendar time for Sprint
- Typically 2-4 weeks
- Does not interfere with Sprint (no scope creep)
- Release dates. Accepts or rejects work.
- Supports the Team
- Facilitates the Daily Scrum meeting. Asks each developer:
- What did you do yesterday?
- What are you doing today?
- What is in your way?
- Listens and watches carefully during Scrum meeting
- Secures resources if needed
- Communicates to Product Owner
- Typically 5-10 people
- Cross-functional - QA, Programmers, UI Designers, etc.
- Members should be full-time/dedicated
- Teams are self-organizing
- Members can change only between sprints
Scrum’s three Artifacts
Product Backlog :
- A dynamic list of all that is desired to work on the project
- Prioritized by the Product Owner based on business value
- Reprioritized at the start of each Sprint
- Each feature has an associated estimate, provided by the ACTUAL team who will do the work
- High priority features are split into “stories” achievable within an iteration.
- Each “story” is prioritized and scoped.
- Prioritized based on business value (Very High, High, etc.) by the Product Owner.
Sprint Backlog :
- A subset of Product Backlog Items, which define the work for a Sprint
- Usually has more details including planned hours and primary person responsible to do the work during the Sprint
- Is created ONLY by Team members
- Should be updated every day
- If a task requires more than 16 hours, it should be broken down
- Team can add or subtract items from the list. Product Owner is not allowed to do it
Sprint Burndown Chart:
- Provides visibility into the Sprint
- Demonstrates progress by the team
- Work on the Horizontal, Time on the Vertical
- Depicts the total Sprint Backlog hours remaining per day.
- Ideally should burn down to zero to the end of the Sprint
- It is never a straight line.
Scrum’s three ceremonies:
Sprint Planning Meeting:
- Product Owner reviews: Vision, Roadmap, Release Plan
- Team reviews: Estimates for each item on Backlog that is a candidate for the Sprint
- Team pulls the work: From the Product Backlog onto the Sprint Backlog
- Short (15 - 30 min) frequent meetings, facilitated by the Scrum Master
- All team members attend
- One activity – Scrum Master asks each attendee 3 questions
- Both Chickens and pigs are invited
- Only pigs can talk
- Team presents what it accomplished during the sprint
- Typically takes the form of a demo of new features or underlying architecture
- Informal 2-hour prep time rule
- Starts with: Product Demo Led by Product Owner
- Ends with: Sprint Retrospective Led by Scrum Master
•What adjustments can we make now?
- Short descriptions of features that need to be coded and tested
- Simple requirements
- Generally written on 3X5 index cards
- Form: As [a type of user] I want to [perform a specific action] such that [result]
- Example: “As a web user, I want to
- Make safe searches, such that I may
- have filtered search results”
- Stories that are big are called EPICS