Agile Project Management - Scrum Bar Camp Phnom Penh Chris Brown September 2008
Who am I? Software Developer Passion for fat client web applications Director of Aruna Technology Lead developer for Mango Certified Scrum Master ;-)‏
Who are we? An office melting pot 16 developers 6 nationalities 4 languages 5 in house projects 3 companies Too many pot plants to count
What we do? www.mangomaps.com Turnkey web mapping software  and Developer API product www.yoolk.com Multi-platform Business Model for Directory Operators Over one hundred portals in over 60 countries www.yp.com.kh Cambodia Yellow Pages online www.everyday.com.kh Khmer language web portal Cambodia's highest traffic website
Who are you? Who here writes code either as part of their job or in their spare time? Who writes code with other developers? Who follows a software development process when coding?
Three styles of software development Agile  –  Work is implemented in stages (iterations), and only enough planning is carried out to complete the next iteration The Waterfall  -  Heavy up front planning, following a traditional engineering approach Method C  –  Very little or even none organized planning
Leap Frogging Leapfrogging is a theory of development in which developing countries may accelerate development by skipping inferior, less efficient, more expensive or more polluting technologies and industries and move directly to more advanced ones. (Wikipedia)‏
Three styles of software development Agile  –  Work is implemented in stages (iterations), and only enough planning is carried out to complete the next iteration The Waterfall  -  Heavy up front planning, following a traditional engineering approach Method C  –  Very little or even none organized planning
Manifesto for Agile SD Based on the Manifesto for Agile Software Development Individuals and interactions  over processes and tools  Working software  over comprehensive documentation  Customer collaboration  over contract negotiation  Responding to change  over following a plan
Agile Project Management Qualities: Minimize risk    short iterations Real-time communication (prefer face-to-face)    very little written documentation Indicated for unpredictable / rapidly changing requirements
Agile Methods Agile methods: Scrum Extreme Programming Adaptive Software Development (ASD)‏ Dynamic System Development Method (DSDM)‏ … Agile Alliance A non-profit organization promotes agile development
What is Scrum? Definition from rugby football: a scrum is a way to restart the game after an interruption, where the forwards of each side come together in a tight formation and struggle to gain possession of the ball when it is tossed in among them
Scrum - an agile process SCRUM is an agile, lightweight process for managing and controlling software and product development in rapidly changing environments. Iterative, incremental process Team-based approach developing systems/ products with rapidly changing requirements Controls the chaos of conflicting interest and needs Improve communication and maximize cooperation Protecting the team form disruptions and impediments A way to maximize productivity
Functionality of Scrum
Components of Scrum Scrum Roles The Process Scrum Artifacts
Scrum Master Represents management to the project Typically filled by a Project Manager or Team Leader Responsible for enacting scrum values and practices Main job is to remove impediments
The Scrum Team Typically 5-10 people Cross-functional (Programmers, UI Designers, Database experts etc.)‏ Members should be full-time Team is self-organizing Membership can change only between sprints
Product Owner Acts like one voice (in any case)‏ Knows what needs to be build and in what sequence this should be done Typically a product manager
The Process Sprint Planning Meeting Sprint Daily Scrum Sprint Review Meeting
Sprint Planning Meeting A collaborative meeting in the beginning of each Sprint between the Product Owner, the Scrum Master and the Team Takes 4-8 hours and consists of 2 parts
Parts of Sprint Planning Meeting 1 st  Part: Creating Product Backlog  Determining the Sprint Goal.  Participants: Product Owner, Scrum Master, Scrum Team 2 nd  Part: Participants: Scrum Master, Scrum Team Creating Sprint Backlog
Sprint A  month-long iteration , during which is incremented a product functionality NO outside influence can interference with the Scrum team during the Sprint Each Sprint begins with the Daily Scrum Meeting
Daily Scrum Is a short (15 minutes long) meeting, which is held every day before the Team starts working Participants: Scrum Master (which is the chairman), Scrum Team Every Team member should answer on 3 questions
Questions What did you do since the last Scrum?  What are you doing until the next Scrum? What is stopping you getting on with the work?
Daily Scrum Is NOT a problem solving session Is NOT a way to collect information about WHO is behind the schedule Is a meeting in which team members make commitments to each other and to the Scrum Master Is a good way for a Scrum Master to track the progress of the Team
Sprint Review Meeting Is held at the end of each Sprint Business functionality which was created during the Sprint is demonstrated to the Product Owner Informal, should not distract Team members of doing their work
Scrum Artifacts Product Backlog Sprint Backlog Burn down Charts
Product Backlog Requirements for a system, expressed as a prioritized list of Backlog Items Is managed and owned by a Product Owner Spreadsheet (typically)‏ Usually is created during the Sprint Planning Meeting Can be changed and re-prioritized before each PM
Product Backlog
Estimation of Product Backlog Items Establishes team’s velocity (how much Effort a Team can handle in one Sprint)‏ Determining units of complexity.  Story points Work days/work hours Methods of estimation: Expert Review Creating a Work Breakdown Structure (WBS)‏
Product Backlog Is only a FORECAST!-> is not exact
Sprint Backlog A subset of Product Backlog Items, which define the work for a Sprint Is created ONLY by Team members Each Item has it’s own status Should be updated every day
Sprint Backlog No more then 300 tasks in the list 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 Backlog Is a FORECAST! Is a good warning monitor
Information Radiator " Two characteristics are key to a good information radiator. The first is that the information changes over time. This makes it worth a person's while to look at the display... The other characteristic is that it takes very little energy to view the display."
Burn down Charts X-Axis: time (usually in days)‏ Y-Axis: remaining effort
Sprint Burn down Chart Depicts the total Sprint Backlog hours remaining per day Shows the estimated amount of time to release   Ideally should burn down to zero to the end of the Sprint Actually is not a straight line Can bump UP
Burndown Chart & Task Board
[email_address] Scrum is an effective project management wrapper for eXtreme Programming development practices, which enables agile projects to become scalable and developed by distributed teams of developers. Core XP Principles: Test Driven Development (TDD)‏ Pair Programming Etc (this isn't an XP presentation)‏
Pair Programming in Action
Team Programming
Pro/Con Advantages Completely developed and tested features in short iterations  Simplicity of the process Clearly defined rules Increasing productivity Self-organizing each team member carries a lot of responsibility Improved communication Combination with Extreme Programming Drawbacks “ Undisciplined hacking” (no written documentation)‏ Violation of responsibility  Current mainly carried by the inventors
Case Study:
Our Environment We take pride in your workspace We try to always keep the office clean and uncluttered All team members on a project are working on the same desk or 'pod' as we call them We aim for an informal and relaxed atmosphere (no shoes, informal dress code, free time etc)‏ We set up a comfortable meeting space where ideas can be shared You can never have too many white boards!!
Welcome to our office
Comfortable Meeting Area
You can never have too many white boards or technical books
Something to read when the powers out :-)‏
Teams working closely together
Conclusion Thanks for you attention! Any questions?

Agile Software Development with Scrum

  • 1.
    Agile Project Management- Scrum Bar Camp Phnom Penh Chris Brown September 2008
  • 2.
    Who am I?Software Developer Passion for fat client web applications Director of Aruna Technology Lead developer for Mango Certified Scrum Master ;-)‏
  • 3.
    Who are we?An office melting pot 16 developers 6 nationalities 4 languages 5 in house projects 3 companies Too many pot plants to count
  • 4.
    What we do?www.mangomaps.com Turnkey web mapping software and Developer API product www.yoolk.com Multi-platform Business Model for Directory Operators Over one hundred portals in over 60 countries www.yp.com.kh Cambodia Yellow Pages online www.everyday.com.kh Khmer language web portal Cambodia's highest traffic website
  • 5.
    Who are you?Who here writes code either as part of their job or in their spare time? Who writes code with other developers? Who follows a software development process when coding?
  • 6.
    Three styles ofsoftware development Agile – Work is implemented in stages (iterations), and only enough planning is carried out to complete the next iteration The Waterfall - Heavy up front planning, following a traditional engineering approach Method C – Very little or even none organized planning
  • 7.
    Leap Frogging Leapfroggingis a theory of development in which developing countries may accelerate development by skipping inferior, less efficient, more expensive or more polluting technologies and industries and move directly to more advanced ones. (Wikipedia)‏
  • 8.
    Three styles ofsoftware development Agile – Work is implemented in stages (iterations), and only enough planning is carried out to complete the next iteration The Waterfall - Heavy up front planning, following a traditional engineering approach Method C – Very little or even none organized planning
  • 9.
    Manifesto for AgileSD Based on the Manifesto for Agile Software Development Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
  • 10.
    Agile Project ManagementQualities: Minimize risk  short iterations Real-time communication (prefer face-to-face)  very little written documentation Indicated for unpredictable / rapidly changing requirements
  • 11.
    Agile Methods Agilemethods: Scrum Extreme Programming Adaptive Software Development (ASD)‏ Dynamic System Development Method (DSDM)‏ … Agile Alliance A non-profit organization promotes agile development
  • 12.
    What is Scrum?Definition from rugby football: a scrum is a way to restart the game after an interruption, where the forwards of each side come together in a tight formation and struggle to gain possession of the ball when it is tossed in among them
  • 13.
    Scrum - anagile process SCRUM is an agile, lightweight process for managing and controlling software and product development in rapidly changing environments. Iterative, incremental process Team-based approach developing systems/ products with rapidly changing requirements Controls the chaos of conflicting interest and needs Improve communication and maximize cooperation Protecting the team form disruptions and impediments A way to maximize productivity
  • 14.
  • 15.
    Components of ScrumScrum Roles The Process Scrum Artifacts
  • 16.
    Scrum Master Representsmanagement to the project Typically filled by a Project Manager or Team Leader Responsible for enacting scrum values and practices Main job is to remove impediments
  • 17.
    The Scrum TeamTypically 5-10 people Cross-functional (Programmers, UI Designers, Database experts etc.)‏ Members should be full-time Team is self-organizing Membership can change only between sprints
  • 18.
    Product Owner Actslike one voice (in any case)‏ Knows what needs to be build and in what sequence this should be done Typically a product manager
  • 19.
    The Process SprintPlanning Meeting Sprint Daily Scrum Sprint Review Meeting
  • 20.
    Sprint Planning MeetingA collaborative meeting in the beginning of each Sprint between the Product Owner, the Scrum Master and the Team Takes 4-8 hours and consists of 2 parts
  • 21.
    Parts of SprintPlanning Meeting 1 st Part: Creating Product Backlog Determining the Sprint Goal. Participants: Product Owner, Scrum Master, Scrum Team 2 nd Part: Participants: Scrum Master, Scrum Team Creating Sprint Backlog
  • 22.
    Sprint A month-long iteration , during which is incremented a product functionality NO outside influence can interference with the Scrum team during the Sprint Each Sprint begins with the Daily Scrum Meeting
  • 23.
    Daily Scrum Isa short (15 minutes long) meeting, which is held every day before the Team starts working Participants: Scrum Master (which is the chairman), Scrum Team Every Team member should answer on 3 questions
  • 24.
    Questions What didyou do since the last Scrum? What are you doing until the next Scrum? What is stopping you getting on with the work?
  • 25.
    Daily Scrum IsNOT a problem solving session Is NOT a way to collect information about WHO is behind the schedule Is a meeting in which team members make commitments to each other and to the Scrum Master Is a good way for a Scrum Master to track the progress of the Team
  • 26.
    Sprint Review MeetingIs held at the end of each Sprint Business functionality which was created during the Sprint is demonstrated to the Product Owner Informal, should not distract Team members of doing their work
  • 27.
    Scrum Artifacts ProductBacklog Sprint Backlog Burn down Charts
  • 28.
    Product Backlog Requirementsfor a system, expressed as a prioritized list of Backlog Items Is managed and owned by a Product Owner Spreadsheet (typically)‏ Usually is created during the Sprint Planning Meeting Can be changed and re-prioritized before each PM
  • 29.
  • 30.
    Estimation of ProductBacklog Items Establishes team’s velocity (how much Effort a Team can handle in one Sprint)‏ Determining units of complexity. Story points Work days/work hours Methods of estimation: Expert Review Creating a Work Breakdown Structure (WBS)‏
  • 31.
    Product Backlog Isonly a FORECAST!-> is not exact
  • 32.
    Sprint Backlog Asubset of Product Backlog Items, which define the work for a Sprint Is created ONLY by Team members Each Item has it’s own status Should be updated every day
  • 33.
    Sprint Backlog Nomore then 300 tasks in the list 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
  • 34.
    Sprint Backlog Isa FORECAST! Is a good warning monitor
  • 35.
    Information Radiator "Two characteristics are key to a good information radiator. The first is that the information changes over time. This makes it worth a person's while to look at the display... The other characteristic is that it takes very little energy to view the display."
  • 36.
    Burn down ChartsX-Axis: time (usually in days)‏ Y-Axis: remaining effort
  • 37.
    Sprint Burn downChart Depicts the total Sprint Backlog hours remaining per day Shows the estimated amount of time to release Ideally should burn down to zero to the end of the Sprint Actually is not a straight line Can bump UP
  • 38.
    Burndown Chart &Task Board
  • 39.
    [email_address] Scrum isan effective project management wrapper for eXtreme Programming development practices, which enables agile projects to become scalable and developed by distributed teams of developers. Core XP Principles: Test Driven Development (TDD)‏ Pair Programming Etc (this isn't an XP presentation)‏
  • 40.
  • 41.
  • 42.
    Pro/Con Advantages Completelydeveloped and tested features in short iterations Simplicity of the process Clearly defined rules Increasing productivity Self-organizing each team member carries a lot of responsibility Improved communication Combination with Extreme Programming Drawbacks “ Undisciplined hacking” (no written documentation)‏ Violation of responsibility Current mainly carried by the inventors
  • 43.
  • 44.
    Our Environment Wetake pride in your workspace We try to always keep the office clean and uncluttered All team members on a project are working on the same desk or 'pod' as we call them We aim for an informal and relaxed atmosphere (no shoes, informal dress code, free time etc)‏ We set up a comfortable meeting space where ideas can be shared You can never have too many white boards!!
  • 45.
  • 46.
  • 47.
    You can neverhave too many white boards or technical books
  • 48.
    Something to readwhen the powers out :-)‏
  • 49.
  • 50.
    Conclusion Thanks foryou attention! Any questions?