Agile & SCRUM Created by firstname.lastname@example.org, 6 Nov 2009 Why, What & How. Presented to project team members. Pictures are copied from Internet and not my copyright. Some slides are also taken from Internet.
What is Agile? The agile process is based on the empirical approach, accepting the complexity of the problem and addressing it through frequent inspection and constant adaptation – Ken Schwaber
Agile, basic Adaptive and responsive to change Increase productivity and identifying and prioritizing high value features Positive emergent culture that allows for continuous improvement Avoid the pitfalls of waterfall
More on characteristics Empirical (relies on observation and experience) Lightweight Adaptive Fast – but never hurried Exposes wastefulness Customer-centric Pushes decision making to lower levels Fosters trust, honesty and courage Encourages self-organization
Agile manifesto Individuals & Interactions over Process & Tools Working Software over Comprehensive Documents Customer Collaboration over Contract Negotiation Responding to Change over Following a Plan Things on the right are important. Things on the left are more important!!
Agile methodologies Feature Driven Development (FDD) Extreme programming (XP) Crystal Lean Development SCRUM Rational Unified Process (RUP) Adaptive Software Development (ASD) Dynamic System Development Method (DSDM)
Agile SW development practices Essential Practices Regular refactoring (many times daily) This produces well-componentized designs, clear APIs and clean code without duplications Frequent check-ins (many times daily) Unit Testing Leading to Test Driven Development (TDD) Continuous Build and Integration Running automated tests on each build Just-in-time code reviews (e.g. pair programming) Example methodologies: XP, Agile Modeling
Agile SW Testing Early involvement An Agile project begins when testers convert high-level requirements into testable specifications. Work as part of the development team The testers work with the developers to pick unit test and acceptance test frameworks, and to test the software in parallel with development. This requires a shift in thinking. Automate everything (wherever possible) Test early, test often Never leave the testing until the end
The Agile Customer “Customer’ is a role, not a person Also known as Product Manager, Product Owner Proxy for the entire customer group Responsible for the Release Plan Responsible for managing the Product Backlog Determines business value & priority on a regular basis Provides information to development team for estimation purposes Works with testers to produce clear, testable user stories for each iteration Inspects software regularly (e.g. runs acceptance tests) and provides feedback to the development team
SCRUM is… Scrum is an agile, lightweight processthat can be used to manage and control software and product development using iterative, incremental practices Wrapping existing engineering practices, including Extreme Programming and RUP, Scrum generates the benefits of agile development with the advantages of a simple implementation It is adaptive, quick, self-organizing and have few rests ..process framework, not methodology
Why SCRUM It is HOT! It’s work and simple. More practical (practical process model). A rule of thumb or best practices for process inspection and continue adaptation.
SCRUM Characteristics Self-organizing teams Product progresses in a series of month-long “sprints” Requirements are captured in a list of “product backlog” No specific engineering practices prescribed SCRUM doesn’t tell how to develop Software. Find XP, TDD, etc
Team updates Sprint Backlog; Scrum Master updates Blocks List
The team should reflect on how to make them most effective. Sit or stand, up to you!
SCRUM Process Burndown Chart Daily Scrum Meeting 24 hours Sprint Backlog tasks expanded by team 30days Sprint Backlog Potentially Shippable Product Increment Product Backlog As prioritized by Product Owner
Key Meetings (cont’d) Sprint Review Meeting Hosted by Scrum Master, attended by Customers Management Product Owner Team Team presents what it accomplished during the sprint Team demos Increment 2-hour Hold retrospective Announce next Sprint Planning Meeting
Tools: Burn-down chart For monitoring progress during a sprint. Remaining work is plotted on the Y axis, Time proceeds along the X axis. As tasks are completed, the line slopes down. Burndown Chart…the velocity of turning requirements into potentially shippable increments of functionality.
Risks & Challenges Educating the team – Dev, QA, Business Estimations to get work ‘done’ – not just engineering Changing the mindset of all stakeholders – PM, team, management, client and users Reduced importance to signoffs and approvals, increased value to collaboration and transparency Either budget or scope should be flexible
Start by a simple but working, NOT complete but not working
The Goal is Success Success factor as seen by customer On time No bugs, right features, good performance Successful deployment/release Success factor as seen by my employer On time to get money Maximum revenue The client is happy
The Challenges are… It’s kind like SCM rather than PM Developer tends to Hard to estimate working effort (time) Don’t want to commit to timeline Complaining Our work culture: I only doing as you requested I don’t care about documentation As long as it is run (passed the test), it’s done Working time is not effective The CR is not iterative as seen by customer
How? We will commit to any task that we can do We will use tools that works for us We will share each other Document first & document as simple as possible We start development early It seems “scrum of scrum” will work rather than scrum Minimize testing iteration whenever possible Characterize each CR then reduce work if possible We will not do scrum for small (effort) CR (team less than 3) Detail plan will be discussed after this presentation!
SCRUM TEAM MEMBER? What you should keep in mind
… SCRUM team, keep asking these questions: What is the simplest thing that can move the project forward? Does what I am doing right now move the project forward at all? Are there any impediments that are preventing progress? Escalate impediment even thought they don’t really care about it. Sprint is belong to the team and is a team’s goal “Don’t procrastinate, do something, no matter how small…” – Ken Schwaber, Vienna, April 2004