HIGH QUALITY SOFTWARE          DEVELOPMENT    WITH AGILE & SCRUM                                               W I T H P R...
About the authorLemi Orhan ErginSenior Software EngineerGittiGidiyor / eBayProjects involved:E-Commence Site For Mould Ind...
This presentation is based on                           The authors experience in:   Certified Scrum Master since 2009 (t...
Caution                                             There is no one true method                                           ...
Warning                              Be ready to change your culture                        Be ready for more communicatio...
Key Concepts We Will Cover●   Module 1. Born to fail    ●   Why projects are failing    ●   Waterfall & traditional softwa...
Module 1. Born to fail                                       http://chan4chan.com/archive/87929/Windows_-_A_fatal_exceptio...
Projects are failing!Gardner Institute                                             Tata Consultancy 2007 ●   74% failing  ...
Project cancelled       Size of project         Early         On-Time         Delayed          Cancelled        Sum       ...
Failing costs!Annual cost to US economy of poor quality software:                                              $60B       ...
The Current State of the Software Industry Ever higher complexity, continuous change, super fast markets             Large...
Why Systems Projects Fail                                               7th November 1940. Tacoma Narrows suspension bridg...
How We Develop SoftwareWhy software projects are failing?    High Quality Software Development with Agile & Scrum @ March ...
The Horizon of Predictability High Quality Software Development with Agile & Scrum @ March 2012
The Ghost of UncertaintyUncertainty is part of every innovative and     creative development process      High Quality Sof...
Waterfall AproachHigh Quality Software Development with Agile & Scrum @ March 2012
Features of a Waterfall Model    A waterfall model is easy to follow.    It can be implemented for any size project.   ...
Assumptions of Waterfall Model    A waterfall model helps find problems earlier on    which can cost a business less than...
Realities of Waterfall Model    If requirements may change, the Waterfall    model cannot work.    It is impossible to m...
Original Paper of Waterfall Model                              MANAGING THE DEVELOPMENT OF                                ...
Original Adviced Waterfall ModelIn my experience, however, the simpler method has never worked on large software developme...
AssumptionsTraditional                                    AgileTraditional●  Cusyomer knows what he wants●  Customer knows...
Response to Unpredictability                  Change Tolerance High Quality Software Development with Agile & Scrum @ Marc...
Module 2. AgileHigh Quality Software Development with Agile & Scrum @ March 2012
The Agile Manifesto   Individuals and   Individuals and                   over                  Process and tools         ...
Agile Principles - I●   Our highest priority is to satisfy the customer through early and    continuous delivery of valuab...
Agile Principles - II●   Working software is the primary measure of progress.●   Agile processes promote sustainable devel...
People Oriented                        Agile methods are people-oriented                           rather then process-ori...
The Agile Practices Familiy●   Extreme Programming (XP)●   Crystal●   Dynamic Systems Development Method (DSDM)●   Test Dr...
Time-boxed Activities                                 Task are broken down into small                                 incr...
Empowered Teams      Agile Teams are small (7 ± 2),    Cross-functional & Self-OrganizingHigh Quality Software Development...
Collaboration          Agile Working CultureHigh Quality Software Development with Agile & Scrum @ March 2012
Focus on End-User and Customer   We tend to build the wrong things                                                    Sour...
Customer in The Loop Agile teams contain (or have direct access to) acustomer representative in order to optimized ROI    ...
Communication TemperatureIncreasing communication temperature is an important goal of the Agile approach   High Quality So...
Why Agile?High Quality Software Development with Agile & Scrum @ March 2012
Agile Software Development  Agile is an iterative and adaptive approach to              software development,performed in ...
Software Craftsmanship        Software Craftsmanship is an DISCIPLINE in software        development that emphasizes the c...
Software Craftsmanship Manifesto            http://manifesto.softwarecraftsmanship.org   High Quality Software Development...
Module 3. ScrumHigh Quality Software Development with Agile & Scrum @ March 2012
Scrum in 100 words•Scrum is an agile process that allows us to focus on delivering the highest business value in the short...
Scrum origins• Jeff Sutherland • Initial scrums at Easel Corp in 1993 • IDX and 500+ people doing Scrum• Ken Schwaber • AD...
Scrum has been used by:•Microsoft                            •Intuit•Yahoo                                •Nielsen Media•G...
Scrum has been used for:•   Commercial software                        •Video game development•   In-house development    ...
Characteristics• Self-organizing teams• Product progresses in a series of month-long “sprints”• Requirements are captured ...
Project noise levelSource: Strategic Management and Organizational Dynamics by Ralph Stacey in Agile SoftwareDevelopment w...
Scrum in a NutshellHigh Quality Software Development with Agile & Scrum @ March 2012
Team Commitment      What the team commits to,     and what the product owner    agrees to during sprint planning         ...
Sequential vs. overlapping developmentRequirements                 Design                         Code                    ...
No changes during a sprint    Change• Plan sprint durations around how long you  can commit to keeping change out of the  ...
Scrum frameworkRoles•Product owner•ScrumMaster•Team                  Ceremonies                  •Sprint planning         ...
Scrum frameworkRoles•Product owner•ScrumMaster•Team                   Ceremonies                   •Sprint planning       ...
Scrum RolesPig Roles                                Chicken RolesProduct Owner                            UsersTeam       ...
Product owner• Define the features of the product• Decide on release date and content• Be responsible for the profitabilit...
The Scrum Master• Represents management to the  project• Responsible for enacting Scrum  values and practices• Removes imp...
The Team• Typically 5-9 people• Cross-functional:  •   Programmers, testers, user      experience designers, etc.• Members...
Scrum frameworkRoles•Product owner•ScrumMaster•Team                    Ceremonies                    •Sprint planning     ...
Sprint Planning MeetingTeam             Sprint planning meetingTeamcapacitycapacity                 Sprint prioritizationP...
User StoriesWhat is a User Story?• Feature description from anyone on the team or any customer• Have "Conditions of Satisf...
Sprint Planning• Team selects items from the product backlog they can  commit to completing• Sprint backlog is created  • ...
The Daily Scrum• Parameters •   Daily •   15-minutes •   Stand-up• Not for problem solving •   Whole world is invited •   ...
Everyone answers 3 questions                                                                               1          What...
The Sprint Review• Team presents what it accomplished during the  sprint• Typically or underlying architecture of new  fea...
Sprint Retrospective• Periodically take a look at what is and is not  working• Typically 30 min-1 hour• Done after every s...
Start / Stop / Continue• Whole team gathers and discusses what they’d  like to:             Start doing             Start ...
Scrum frameworkRoles•Product owner•ScrumMaster•Team                   Ceremonies                   •Sprint planning       ...
Product backlog                                  •The requirements                                  •the project desired w...
Different Types of StoriesSpike: •the "layers."   It is an experimental solution that cuts through all •It is necessarily ...
Story Points         A Story Point is a relative            measure of feature            difficulty/complexity Story Poin...
Planning Poker1. All the team members have a set of cards2. Scrum Master reads description of the backlog Item3. Everyone ...
Sample Product BacklogHigh Quality Software Development with Agile & Scrum @ March 2012
Sample Product BacklogHigh Quality Software Development with Agile & Scrum @ March 2012
Product Backlog IcebergHigh Quality Software Development with Agile & Scrum @ March 2012
Work Items on Prioritized Stack  High Quality Software Development with Agile & Scrum @ March 2012
Grooming Sessions    I hate long meetings, why do you think we    have such long meetings? What could we                  ...
Definition of DoneDefinition of Done is a simple list of activities that add    verifiable/demonstrable value to the produ...
Definition of DoneHigh Quality Software Development with Agile & Scrum @ March 2012
Definition of DoneHigh Quality Software Development with Agile & Scrum @ March 2012
Estimation of Productive Time• Task of 8 hours doesnt mean completion in 1 day• Incorporate time for: meetings, phone-call...
A sprint backlogTasksTasks                                Mon Tues Wed Thur Fri                                     Mon Tu...
Sprint Burndown Chart  Determination of Team VelocityHigh Quality Software Development with Agile & Scrum @ March 2012
Sprint Burndown ChartHigh Quality Software Development with Agile & Scrum @ March 2012
Scrum Task BoardHigh Quality Software Development with Agile & Scrum @ March 2012
Scrum Task BoardHigh Quality Software Development with Agile & Scrum @ March 2012
The sprint goal• A short statement of what the work will be  focused on during the sprint                                 ...
Scalability• Typical individual team is 7 ± 2 people • Scalability comes from teams of teams• Factors in scaling • Type of...
Scaling through the Scrum of scrums     High Quality Software Development with Agile & Scrum @ March 2012
Scrum of scrums of scrumsHigh Quality Software Development with Agile & Scrum @ March 2012
Scrum in SummaryScrum is not about:  Good engineering practicesScrum is about:  Acknowledging the importance of people  Fo...
Possible Problems with Agile●   Cultural change●   Organizational support●   Stakeholder involvement●   Team size●   Trans...
Module 4. Writing High Quality Software With Agile                                                                     nma...
Searching for High Quality●   Scrum does not    guarantee high-    quality for your    project●   XP principles try to    ...
What is Extreme Programming?●    An agile development methodology●    Created by Kent Beck in the mid 1990’s●    A set of ...
The XP PracticesHigh Quality Software Development with Agile & Scrum @ March 2012
1 - The Planning Game●    Planning for the upcoming iteration●    Uses stories provided by the customer●    Technical pers...
The Planning Game – Advantages●    Reduction in time wasted on useless features●    Greater customer appreciation of the c...
The Planning Game – Disadvantages●    Customer availability●    Is planning this often necessary?             High Quality...
2- Small Releases●    Small in terms of functionality●    Less functionality means releases happen    more frequently●    ...
Small Releases – Advantages●    Frequent feedback●    Tracking●    Reduce chance of overall project slippage            Hi...
Small Releases – Disadvantages●    Not easy for all projects●    Not needed for all projects●    Versioning issues        ...
3 – Metaphor●    The oral architecture of the system●    A common set of terminology             High Quality Software Dev...
Metaphor – Advantages●    Encourages a common set of terms for the    system●    Reduction of buzz words and jargon●    A ...
Metaphor – Disadvantages●    Often the metaphor is the system●    Another opportunity for miscommunication●    The system ...
4 – Simple Design●    K.I.S.S.●    Do as little as needed, nothing more             High Quality Software Development with...
Simple Design – Advantages●    Time is not wasted adding superfluous    functionality●    Easier to understand what is goi...
Simple Design – Disadvantages●    What is “simple?”●    Simple isn’t always best             High Quality Software Develop...
6 – Testing●    Unit testing●    Test-first design (TDD)●    All automated             High Quality Software Development w...
Testing – Advantages●    Unit testing promote testing completeness●    Test-first gives developers a goal●    Automation g...
Testing – Disadvantages●    Automated unit testing isn’t for everything●    Reliance on unit testing isn’t a good idea●   ...
6 – Refactoring●    Changing how the system does something but    not what is done●    Improves the quality of the system ...
Refactoring – Advantages●    Prompts developers to proactively improve the    product as a whole●    Increases developer k...
Refactoring – Disadvantages●    Not everyone is capable of refactoring●    Refactoring may not always be appropriate●    W...
7 – Pair Programming●    Two Developers, One monitor, One Keyboard●    One “drives” and the other thinks●    Switch roles ...
Pair Programming – Advantages●    Two heads are better than one●    Focus●    Two people are more likely to answer the    ...
Pair Programming – Disadvantages●    Many tasks really don’t require two    programmers●    A hard sell to the customers● ...
8 – Collective Ownership●    The idea that all developers own all of the    code●    Enables refactoring             High ...
Collective Ownership – Advantages●    Helps mitigate the loss of a team member    leaving●    Promotes developers to take ...
Collective Ownership - Disadvantages●    Loss of accountability●    Limitation to how much of a large system that    an in...
9 – Continuous Integration●    New features and changes are worked into the    system immediately●    Code is not worked o...
Continuous Integration - Advantages●    Reduces to lengthy process●    Enables the Small Releases practice            High...
Continuous Integration – Disadvantages●    The one day limit is not always practical●    Reduces the importance of a well-...
10 – 40-Hour Week●    The work week should be limited to 40 hours●    Regular overtime is a symptom of a problem    and no...
40-Hour Week – Advantage●    Most developers lose effectiveness past 40-    Hours●    Value is placed on the developers we...
40-Hour Week - Disadvantages●    The underlying principle is flawed●    40-Hours is a magic number●    Some may like to wo...
11 – On-Site Customer●    Just like the title says!●    Acts to “steer” the project●    Gives quick and continuous feedbac...
On-Site Customer – Advantages●    Can give quick and knowledgeable answers to    real development questions●    Makes sure...
On-Site Customer – Disadvantages●    Difficult to get an On-Site Customer●    The On-Site customer that is given may not b...
12 – Coding Standards●    All code should look the same●    It should not possible to determine who coded    what based on...
Coding Standards – Advantages●    Reduces the amount of time developers spend    reformatting other peoples’ code●    Redu...
Coding Standards – Disadvantages●    Degrading the quality of inline documentation             High Quality Software Devel...
How Google Develops Software●   Single Code Base for Everything●   Distributed Version Control System●   Central Documenta...
How Google Develops Software●   Sprint Collaboration Tool as White Board●   Sprint Tracking Tool as Spreadsheet●   Product...
Module 5. Dos and DontsHigh Quality Software Development with Agile & Scrum @ March 2012
Can Scrum fail ? No !Scrum is not a silver bullet ... and it surfaces existing problems  Scrum never fails !!! It is a sim...
Why Scrum Implementation Might Fail ?●   Culture    ●   Providing answers instead of asking questions●   Management    ●  ...
Why Scrum Implementation Might Fail ?●   Bad Scrum Master    ●   Driving the time and the tasks allocation, get        dec...
Why Scrum Implementation Might Fail ?●   Bad Product Owner    ●   Consistently unavailable    ●   Fail to get consensus   ...
Why Scrum Implementation Might Fail ?●   Waterfall within sprint    ●   Better to have 70% of stories 100% done then the  ...
Why Scrum Implementation Might Fail ?●   Not Acting Like a self managed team    ●   Fixed Roles, No knowledge leveraging  ...
Why Scrum Implementation Might Fail ?●   Team exhausted, there are no calm periods,    no place for innovation    ●   " .....
Does Scrum fit BIG organization ?The following statements are sometimes heard:●   "Oh yes, Scrum is good for small teams b...
Yes, it fits!●   Scrum surfaces the inherent problems and    wastes●   Scrum reduces the bureaucracy and org.    complexit...
Yes, it fits!●   Scrum provides much better visibility●   Managers have more time to    ●   Look ahead and think    ●   Un...
Module 6. KickstartHigh Quality Software Development with Agile & Scrum @ March 2012
The Shock Therapy●   "A set of Good Practices, but no choice"    ●   Team Recipe    ●   Management Recipe    ●   Organizat...
Team Recipe●    Scrum training session for    everyone                                             ●                      ...
Management Recipe●    Hands off during 3 iterations●    Attend:    ●        Some Daily Scrums - be quiet    ●        All S...
Organization Recipe●    Difficult - How to speak to a "culture"?●    Some steps:    ●        Transparency    ●        Pull...
The Scrum Sensei●    Experienced ScrumMaster●    Enforces rules/recipes●    Bad ScrumMaster as in "good cop - bad cop"●   ...
Special Thanks!                      Presentation by: Mike Cohn                      Presentation by: Mike Cohn           ...
Special Thanks!              Scrum Shock Therapy            Björn Granvik, CTO, Jayway       Why Scrum Projects Might Fail...
Any QuestionsHigh Quality Software Development with Agile & Scrum @ March 2012
Upcoming SlideShare
Loading in...5
×

High Quality Software Development with Agile and Scrum

18,066

Published on

Module 1. Born to fail
- Why projects are failing
- Waterfall & traditional software development
Module 2. Agile
Module 3. Scrum
Module 4. Writing high quality software with Agile
- XP
- How Google Write Software
Module 5. Do's and dont's
- How Scrum might fail
- Myths and realities
Module 6. How to kick off Scrum

Published in: Education, Technology, Business
5 Comments
76 Likes
Statistics
Notes
No Downloads
Views
Total Views
18,066
On Slideshare
0
From Embeds
0
Number of Embeds
28
Actions
Shares
0
Downloads
0
Comments
5
Likes
76
Embeds 0
No embeds

No notes for slide

Transcript of "High Quality Software Development with Agile and Scrum"

  1. 1. HIGH QUALITY SOFTWARE DEVELOPMENT WITH AGILE & SCRUM W I T H P RA C T I C A L TIPS AND TRICKS LEMİ ORHAN ERGİN SENIOR SOFTWARE ENGINEER GITTIGIDIYOR / EBAY High Quality Software Development with Agile & Scrum @ March 2012
  2. 2. About the authorLemi Orhan ErginSenior Software EngineerGittiGidiyor / eBayProjects involved:E-Commence Site For Mould Industry (e-Tool) - BYMLegacy Product Information Management System (SPICE) - SonyBrand-New Product Information Management System (SPIDER) - SonyMebs Taburu Yönetim Sistemi (MEBSİS) - Turkish Air ForcesMarketing sites for all European Countries (ODW) - SonyWeb Experience Project / Common Toolbar Project (WEP) - SonyCore Backend Services & Components Project (Ox, Commons) - SonyProduct Data Delivery Engine / Hub & Client (Sparrow, Octopus) - SonyContent Delivery and Aggregation Services (Xula) - SonyEducation:B.Sc. Marmara University, Computer Science Engineering, 1997 – 2002M.Sc. Marmara University, Computer Science Engineering, 2002 – 2005 High Quality Software Development with Agile & Scrum @ March 2012
  3. 3. This presentation is based on The authors experience in: Certified Scrum Master since 2009 (trained by Jim Coplien) Played scrum master role for more than 1 year Taking lead on development teams, including Scrum teams Participated in Scrum teams since 2008 (for more than 50 sprints) Q&A session with Mitch Lacey on Oct 12th, 2010 CSM training with Jim Coplien on Jan 31st, 2009 High Quality Software Development with Agile & Scrum @ March 2012
  4. 4. Caution There is no one true method of software development Agile is not a religion Theres no scientific way to prove that Agile is any better There is no silver bullet We are not resources, we are humans.Therefore we love doing our job by following human-centric methodologies, like Agile High Quality Software Development with Agile & Scrum @ March 2012
  5. 5. Warning Be ready to change your culture Be ready for more communication with your teammates Be ready to observe your environment and improve Be ready to learn how big companies develop software Be ready for tons of new questions to askThe Boy Scouts have a rule: "Always leave the campground cleaner than you found it." High Quality Software Development with Agile & Scrum @ March 2012
  6. 6. Key Concepts We Will Cover● Module 1. Born to fail ● Why projects are failing ● Waterfall & traditional software development● Module 2. Agile● Module 3. Scrum● Module 4. Writing high quality software with Agile ● XP ● How Google Write Software● Module 5. Dos and donts ● How Scrum might fail ● Myths and realities● Module 6. How to kick off Scrum High Quality Software Development with Agile & Scrum @ March 2012
  7. 7. Module 1. Born to fail http://chan4chan.com/archive/87929/Windows_-_A_fatal_exception_0E_has_occurredHigh Quality Software Development with Agile & Scrum @ March 2012
  8. 8. Projects are failing!Gardner Institute Tata Consultancy 2007 ● 74% failing ● 62% failed to meet their schedules ● 51% of it exceeds budget ● 49% suffered from budget overrunsOxford University (Saur & Cuthbertson, 2003) ● 47% had higher maintenance costs ● 16% successful ● 41% failed to deliver the expected business value and ROI ● 74% challenged ● 33% file to perform against expectations ● 10% abandonedStandish Group If building engineers built buildings with the same care as software engineers build systems, the first woodpecker to come along would be the end of civilization as we know it. “Top 10 Reasons Why Systems Projects Fail”, Dr. Paul Dorsey High Quality Software Development with Agile & Scrum @ March 2012
  9. 9. Project cancelled Size of project Early On-Time Delayed Cancelled Sum 1 function point 14.68% 83.16% 1.92% 0.25% 100.00% 10 function points 11.08% 81.25% 5.67% 2.00% 100.00% 100 function points 6.06% 74.77% 11.83% 7.33% 100.00% 1,000 function points 1.24% 60.76% 17.67% 20.33% 100.00% 10,000 function points 0.14% 28.00% 23.83% 48.00% 100.00%100,000 function points 0.00% 13.67% 21.33% 65.00% 100.00% Average 5.53% 56.94% 13.71% 23.82% 100.00% Table 1: Percentage of projects early, on-time, late, canceled (from Patterns of Software Systems Failure and Success, by Capers Jones) High Quality Software Development with Agile & Scrum @ March 2012
  10. 10. Failing costs!Annual cost to US economy of poor quality software: $60B US NIST Report 7007.011, May 2002.Equals to US millitary spending in Iraq and Afghanistan wars http://www.huffingtonpost.com/2011/08/30/military-spending-waste_n_942723.html Typical industrial / commercial software development:6-30 faults delivered / 1000 lines of software (1M lines: 6000-30,000 faults on delivery) Pfleeger& Hatton, IEEE Computer, pp33-42, February 1997. High Quality Software Development with Agile & Scrum @ March 2012
  11. 11. The Current State of the Software Industry Ever higher complexity, continuous change, super fast markets Large Scale systems are now the norm Low qualified labour is not the answer for creating high-value products The software industry needs Technical Leaders, and these will not just pop up in an ad-hoc way Projects live and die because of Technology, People and Processes; universities typically only teach the first.Software projects are more than developing software. It has tens of steps, from getting requirements to give official support. High Quality Software Development with Agile & Scrum @ March 2012
  12. 12. Why Systems Projects Fail 7th November 1940. Tacoma Narrows suspension bridge, in Puget Sound, Washington  http://www.answers.com/topic/galloping-gertie-large-image#ixzz1q2uRmnLK● Lack of User Involvement● Lack of Transparency● Long or Unrealistic Time Scales● Poor or No Requirements● Bad Scope Management● Poor Development Quality● Poor Testing & Quality Assurance● Inaduequate Development Methodology● Poor Technical Knowledge and Experience High Quality Software Development with Agile & Scrum @ March 2012
  13. 13. How We Develop SoftwareWhy software projects are failing? High Quality Software Development with Agile & Scrum @ March 2012
  14. 14. The Horizon of Predictability High Quality Software Development with Agile & Scrum @ March 2012
  15. 15. The Ghost of UncertaintyUncertainty is part of every innovative and creative development process High Quality Software Development with Agile & Scrum @ March 2012
  16. 16. Waterfall AproachHigh Quality Software Development with Agile & Scrum @ March 2012
  17. 17. Features of a Waterfall Model A waterfall model is easy to follow. It can be implemented for any size project. Every stage has to be done separately at the right time so you cannot jump stages. Documentation is produced at every stage of a waterfall model allowing people to understand what has been done. Testing is done at every stage. High Quality Software Development with Agile & Scrum @ March 2012
  18. 18. Assumptions of Waterfall Model A waterfall model helps find problems earlier on which can cost a business less than if it was found later on. Requirements will be set and these wouldnt be changed. As everything is documented a new team member can easily understand whats to be done. Implementers have to follow the design accurately High Quality Software Development with Agile & Scrum @ March 2012
  19. 19. Realities of Waterfall Model If requirements may change, the Waterfall model cannot work. It is impossible to make one stage of the projects life cycle perfect. Difficult to estimate time and cost for each stage of the development process. Constant testing of the design is needed. DONT DO IT http://www.vvork.com/?p=4872 High Quality Software Development with Agile & Scrum @ March 2012
  20. 20. Original Paper of Waterfall Model MANAGING THE DEVELOPMENT OF LARGE SOFTWARE SYSTEMS Dr. Winston W. Royce, 1970 The implementation is risky and invites failure High Quality Software Development with Agile & Scrum @ March 2012
  21. 21. Original Adviced Waterfall ModelIn my experience, however, the simpler method has never worked on large software developmentefforts and the costs to recover far exceeded those required to finance the five-step process listed. High Quality Software Development with Agile & Scrum @ March 2012
  22. 22. AssumptionsTraditional AgileTraditional● Cusyomer knows what he wants● Customer knows what he wants ● Customer discovers what he wants● Engineer knows how to build it● Engineer knows how to build it ● Engineer discovers how to build it● Nothing changes along the way● Nothing changes along the way ● Things change along the way The Agile Paradigm emraces change, unpredictability and unforseen complexity as inescapable constants in all product development High Quality Software Development with Agile & Scrum @ March 2012
  23. 23. Response to Unpredictability Change Tolerance High Quality Software Development with Agile & Scrum @ March 2012
  24. 24. Module 2. AgileHigh Quality Software Development with Agile & Scrum @ March 2012
  25. 25. The Agile Manifesto Individuals and Individuals and over Process and tools Process and tools interactions interactions Comprehensive Comprehensive Working software Working software over documentation documentation Customer Customer over Contract negotiation Contract negotiation collaboration collaborationResponding to changeResponding to change over Following a plan Following a plan Source: www.agilemanifesto.org High Quality Software Development with Agile & Scrum @ March 2012
  26. 26. Agile Principles - I● Our highest priority is to satisfy the customer through early and continuous delivery of valuable software● Welcome changing requirements, even late in development. Agile processes harness change for the customers competitive advantage.● Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.● Business people and developers must work together daily throughout the project.● Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.● The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. High Quality Software Development with Agile & Scrum @ March 2012
  27. 27. Agile Principles - II● Working software is the primary measure of progress.● Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.● Continuous attention to technical excellence and good design enhances agility.● Simplicity -the art of maximizing the amount of work not done- is essential.● The best architectures, requirements, and designs emerge from self-organizing teams.● At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. High Quality Software Development with Agile & Scrum @ March 2012
  28. 28. People Oriented Agile methods are people-oriented rather then process-orientedDeclaration of interdependenceUnleash creativity and innovationby recognizing that individuals arethe ultimate source of value, andcreating an environment wherethey can make a difference. ©2005 David Anderson, Sanjiv Augustine, Christopher Avery, Alistair Cockburn, Mike Cohn, Doug DeCarlo, Donna Fitzgerald, Jim Highsmith, Ole Jepsen, Lowell Lindstrom, Todd Little, Kent McDonald, Pollyanna Pixton, Preston Smith and Robert Wysocki. http://pmdoi.org/ High Quality Software Development with Agile & Scrum @ March 2012
  29. 29. The Agile Practices Familiy● Extreme Programming (XP)● Crystal● Dynamic Systems Development Method (DSDM)● Test Driven Development (TDD)● Feature Driven Development (FDD)● Essential Unified Process● Scrum● Kanban● Lean High Quality Software Development with Agile & Scrum @ March 2012
  30. 30. Time-boxed Activities Task are broken down into small increments (2-4 weeks), in which the team works through a full development lifecycle● Minimizes the overall project risk• Planning is easier with frequent releases• Allows project to adapt to changes quickly High Quality Software Development with Agile & Scrum @ March 2012
  31. 31. Empowered Teams Agile Teams are small (7 ± 2), Cross-functional & Self-OrganizingHigh Quality Software Development with Agile & Scrum @ March 2012
  32. 32. Collaboration Agile Working CultureHigh Quality Software Development with Agile & Scrum @ March 2012
  33. 33. Focus on End-User and Customer We tend to build the wrong things Source: Standish Group Study Report High Quality Software Development with Agile & Scrum @ March 2012
  34. 34. Customer in The Loop Agile teams contain (or have direct access to) acustomer representative in order to optimized ROI High Quality Software Development with Agile & Scrum @ March 2012
  35. 35. Communication TemperatureIncreasing communication temperature is an important goal of the Agile approach High Quality Software Development with Agile & Scrum @ March 2012
  36. 36. Why Agile?High Quality Software Development with Agile & Scrum @ March 2012
  37. 37. Agile Software Development Agile is an iterative and adaptive approach to software development,performed in a highly collaborative manner by self- organizing teams, with just enough ceremony that produces high quality software in a cost effective and timely manner, which meets the changing needs of its stakeholders. High Quality Software Development with Agile & Scrum @ March 2012
  38. 38. Software Craftsmanship Software Craftsmanship is an DISCIPLINE in software development that emphasizes the coding skills of the software developers themselves. It is a response by software developers to the perceived ills of the mainstream software industry, including the prioritization of financial concerns over code quality.High Quality Software Development with Agile & Scrum @ March 2012 http://parlezuml.com/softwarecraftsmanship/
  39. 39. Software Craftsmanship Manifesto http://manifesto.softwarecraftsmanship.org High Quality Software Development with Agile & Scrum @ March 2012
  40. 40. Module 3. ScrumHigh Quality Software Development with Agile & Scrum @ March 2012
  41. 41. Scrum in 100 words•Scrum is an agile process that allows us to focus on delivering the highest business value in the shortest time.•It allows us to rapidly and repeatedly inspect actual working software (every two weeks to one month).•The business sets the priorities. Teams self-organize to determine the best way to deliver the highest priority features.•Every two weeks to a month anyone can see real working software and decide to release it as is or continue to enhance it for another sprint . High Quality Software Development with Agile & Scrum @ March 2012
  42. 42. Scrum origins• Jeff Sutherland • Initial scrums at Easel Corp in 1993 • IDX and 500+ people doing Scrum• Ken Schwaber • ADM • Scrum presented at OOPSLA 96 with Sutherland • Author of three books on Scrum• Mike Beedle • Scrum patterns in PLOPD4• Ken Schwaber and Mike Cohn • Co-founded Scrum Alliance in 2002, initially within the Agile Alliance High Quality Software Development with Agile & Scrum @ March 2012
  43. 43. Scrum has been used by:•Microsoft •Intuit•Yahoo •Nielsen Media•Google •First American Real Estate•Electronic Arts •BMC Software•Lockheed Martin •Ipswitch•Philips •John Deere•Siemens •Lexis Nexis•Nokia •Sabre•IBM •Salesforce.com•Capital One •Time Warner•BBC •Turner Broadcasting •Oce High Quality Software Development with Agile & Scrum @ March 2012
  44. 44. Scrum has been used for:• Commercial software •Video game development• In-house development •FDA-approved, life-critical systems• Contract development• Fixed-price projects •Satellite-control software• Financial applications •Websites• ISO 9001-certified •Handheld software applications •Mobile phones• Embedded systems •Network switching applications• 24x7 systems with 99.999% uptime •ISV applications requirements •Some of the largest applications in use• the Joint Strike Fighter High Quality Software Development with Agile & Scrum @ March 2012
  45. 45. Characteristics• Self-organizing teams• Product progresses in a series of month-long “sprints”• Requirements are captured as items in a list of “product backlog”• No specific engineering practices prescribed• Uses generative rules to create an agile environment for delivering projects• One of the “agile processes” High Quality Software Development with Agile & Scrum @ March 2012
  46. 46. Project noise levelSource: Strategic Management and Organizational Dynamics by Ralph Stacey in Agile SoftwareDevelopment with Scrum by Ken Schwaber and Mike Beedle. High Quality Software Development with Agile & Scrum @ March 2012
  47. 47. Scrum in a NutshellHigh Quality Software Development with Agile & Scrum @ March 2012
  48. 48. Team Commitment What the team commits to, and what the product owner agrees to during sprint planning should be delivered!High Quality Software Development with Agile & Scrum @ March 2012
  49. 49. Sequential vs. overlapping developmentRequirements Design Code Test Rather than doing all of one thing at a time... ...Scrum teams do a little of everything all the time Source: “The New New Product Development Game” by Takeuchi and Nonaka. Harvard Business Review, January 1986. High Quality Software Development with Agile & Scrum @ March 2012
  50. 50. No changes during a sprint Change• Plan sprint durations around how long you can commit to keeping change out of the sprint High Quality Software Development with Agile & Scrum @ March 2012
  51. 51. Scrum frameworkRoles•Product owner•ScrumMaster•Team Ceremonies •Sprint planning •Sprint review •Sprint retrospective •Daily scrum meeting Artifacts •Product backlog •Sprint backlog •Burndown charts High Quality Software Development with Agile & Scrum @ March 2012
  52. 52. Scrum frameworkRoles•Product owner•ScrumMaster•Team Ceremonies •Sprint planning •Sprint review •Sprint retrospective •Daily scrum meeting Artifacts •Product backlog •Sprint backlog •Burndown charts High Quality Software Development with Agile & Scrum @ March 2012
  53. 53. Scrum RolesPig Roles Chicken RolesProduct Owner UsersTeam Customer & VendorsScrum Master Managers High Quality Software Development with Agile & Scrum @ March 2012
  54. 54. Product owner• Define the features of the product• Decide on release date and content• Be responsible for the profitability of the product (ROI)• Prioritize features according to market value• Adjust features and priority every iteration, as needed• Accept or reject work results High Quality Software Development with Agile & Scrum @ March 2012
  55. 55. The Scrum Master• Represents management to the project• Responsible for enacting Scrum values and practices• Removes impediments• Ensure that the team is fully functional and productive• Enable close cooperation across all roles and functions• Shield the team from external interferences High Quality Software Development with Agile & Scrum @ March 2012
  56. 56. The Team• Typically 5-9 people• Cross-functional: • Programmers, testers, user experience designers, etc.• Members should be full-time • May be exceptions (e.g., database administrator)• Teams are self-organizing • Ideally, no titles but rarely a possibility• Membership should change only between sprints High Quality Software Development with Agile & Scrum @ March 2012
  57. 57. Scrum frameworkRoles•Product owner•ScrumMaster•Team Ceremonies •Sprint planning •Sprint review •Sprint retrospective •Daily scrum meeting Artifacts •Product backlog •Sprint backlog •Burndown charts High Quality Software Development with Agile & Scrum @ March 2012
  58. 58. Sprint Planning MeetingTeam Sprint planning meetingTeamcapacitycapacity Sprint prioritizationProductProduct • Analyze and evaluate product Sprint Sprint backlog goalbacklogbacklog • Select sprint goal goalBusinessBusinessconditions Sprint planningconditions • Decide how to achieve sprint goal (design)CurrentCurrent • Create sprint backlog (tasks) from Sprint Sprintproductproduct product backlog items (user stories / backlog backlog features)Techno- • Estimate sprint backlog in hours Techno-logy logy High Quality Software Development with Agile & Scrum @ March 2012
  59. 59. User StoriesWhat is a User Story?• Feature description from anyone on the team or any customer• Have "Conditions of Satisfaction" which can be tested in review• Have no/minimal dependency on other storiesGeneral Format:As a [user role] I want to [goal], so I can [reason or conditionsof satisfaction]As a Product Owner, I want to understand Agile planning andestimation, so that I can produce an effective Product Backlog High Quality Software Development with Agile & Scrum @ March 2012
  60. 60. Sprint Planning• Team selects items from the product backlog they can commit to completing• Sprint backlog is created • Tasks are identified and each is estimated (1-16 hours) • Collaboratively, not done alone by the ScrumMaster• High-level design is consideredAs a vacationAs a vacation Code the middle tier (8 hours)planner, I want toplanner, I want to Code the user interface (4)see photos of thesee photos of the Write test fixtures (4) Code the foo class (6)hotels.hotels. Update performance tests (4) High Quality Software Development with Agile & Scrum @ March 2012
  61. 61. The Daily Scrum• Parameters • Daily • 15-minutes • Stand-up• Not for problem solving • Whole world is invited • Only team members, ScrumMaster & product owner can talk• Helps avoid other unnecessary meetings High Quality Software Development with Agile & Scrum @ March 2012
  62. 62. Everyone answers 3 questions 1 What did you do yesterday? What did you do yesterday? 2 What will you do today? What will you do today? 3 Is anything in your way? Is anything in your way?• These are not status for the ScrumMaster • They are commitments in front of peers High Quality Software Development with Agile & Scrum @ March 2012
  63. 63. The Sprint Review• Team presents what it accomplished during the sprint• Typically or underlying architecture of new features takes the form of a demo• Informal • 2-hour prep time rule • No slides• Whole team participates• Invite the world High Quality Software Development with Agile & Scrum @ March 2012
  64. 64. Sprint Retrospective• Periodically take a look at what is and is not working• Typically 30 min-1 hour• Done after every sprint• Whole team participates • ScrumMaster • Product owner • Team • Possibly customers and others High Quality Software Development with Agile & Scrum @ March 2012
  65. 65. Start / Stop / Continue• Whole team gathers and discusses what they’d like to: Start doing Start doing Stop doing Stop doing This is just one of many ways to Continue doing Continue doing do a sprint retrospective. High Quality Software Development with Agile & Scrum @ March 2012
  66. 66. Scrum frameworkRoles•Product owner•ScrumMaster•Team Ceremonies •Sprint planning •Sprint review •Sprint retrospective •Daily scrum meeting Artifacts •Product backlog •Sprint backlog •Burndown charts High Quality Software Development with Agile & Scrum @ March 2012
  67. 67. Product backlog •The requirements •the project desired work on A list of all •each item has value to the Ideally expressed such that users or customers of the productThis is the productThis is the product •owner by the product Prioritized backlog backlog •each sprint at the start of Reprioritized High Quality Software Development with Agile & Scrum @ March 2012
  68. 68. Different Types of StoriesSpike: •the "layers." It is an experimental solution that cuts through all •It is necessarily time-boxed. •It is always intended to be thrown away.Epic: •Large story •An item that can’t be committed to by the team •It is a container of stories High Quality Software Development with Agile & Scrum @ March 2012
  69. 69. Story Points A Story Point is a relative measure of feature difficulty/complexity Story Points are a more accurate measure of project velocity andrelease schedule than using hours and days.High Quality Software Development with Agile & Scrum @ March 2012
  70. 70. Planning Poker1. All the team members have a set of cards2. Scrum Master reads description of the backlog Item3. Everyone selects and simultaneously shows cards4. If estimates vary significantly, high and low estimators brieflyexplain why they have estimated so5. Repeat steps 3-4 until estimates stop converging6. Decide estimate for backlog item7. Move to next backlog item High Quality Software Development with Agile & Scrum @ March 2012
  71. 71. Sample Product BacklogHigh Quality Software Development with Agile & Scrum @ March 2012
  72. 72. Sample Product BacklogHigh Quality Software Development with Agile & Scrum @ March 2012
  73. 73. Product Backlog IcebergHigh Quality Software Development with Agile & Scrum @ March 2012
  74. 74. Work Items on Prioritized Stack High Quality Software Development with Agile & Scrum @ March 2012
  75. 75. Grooming Sessions I hate long meetings, why do you think we have such long meetings? What could we do better? Grooming meetings are a kind of small planning meetings that the team detail the stories and re-estimate. Most common schedule is weekly basis.● Increases efficiency of the team by greatly reducing uncertainty.● Better groomed stories are more accurately estimated, more accuratelytested, and more accurately implemented● Increases efficiency of the team due to the benefit of shared knowledgegained by the entire Scrum team being in the grooming.● Allows the team to maintain a sustainable, higher pace.● When done well, grooming greatly reduces the time required for a SprintPlanning meeting. High Quality Software Development with Agile & Scrum @ March 2012
  76. 76. Definition of DoneDefinition of Done is a simple list of activities that add verifiable/demonstrable value to the product.  High Quality Software Development with Agile & Scrum @ March 2012
  77. 77. Definition of DoneHigh Quality Software Development with Agile & Scrum @ March 2012
  78. 78. Definition of DoneHigh Quality Software Development with Agile & Scrum @ March 2012
  79. 79. Estimation of Productive Time• Task of 8 hours doesnt mean completion in 1 day• Incorporate time for: meetings, phone-calls, e-mails,bug-fixing, other responsibilities, etc.• No contingency planning! The team should establish a working pace which can be sustained with normal working hours High Quality Software Development with Agile & Scrum @ March 2012
  80. 80. A sprint backlogTasksTasks Mon Tues Wed Thur Fri Mon Tues Wed Thur FriCode the user interface 8 4 8Code the middle tier 16 12 10 4Test the middle tier 8 16 16 11 8Write online help 12Write the helper class 8 8 8 8 8Add error logging 8 4 High Quality Software Development with Agile & Scrum @ March 2012
  81. 81. Sprint Burndown Chart Determination of Team VelocityHigh Quality Software Development with Agile & Scrum @ March 2012
  82. 82. Sprint Burndown ChartHigh Quality Software Development with Agile & Scrum @ March 2012
  83. 83. Scrum Task BoardHigh Quality Software Development with Agile & Scrum @ March 2012
  84. 84. Scrum Task BoardHigh Quality Software Development with Agile & Scrum @ March 2012
  85. 85. The sprint goal• A short statement of what the work will be focused on during the sprint Life Sciences Support features necessaryDatabase Application for population genetics studies.Make the application run on SQLServer in addition to Oracle. Financial services Support more technical indicators than company ABC with real-time, streaming data. High Quality Software Development with Agile & Scrum @ March 2012
  86. 86. Scalability• Typical individual team is 7 ± 2 people • Scalability comes from teams of teams• Factors in scaling • Type of application • Team size • Team dispersion • Project duration• Scrum has been used on multiple 500+ person projects High Quality Software Development with Agile & Scrum @ March 2012
  87. 87. Scaling through the Scrum of scrums High Quality Software Development with Agile & Scrum @ March 2012
  88. 88. Scrum of scrums of scrumsHigh Quality Software Development with Agile & Scrum @ March 2012
  89. 89. Scrum in SummaryScrum is not about: Good engineering practicesScrum is about: Acknowledging the importance of people Forming cross-functional teams Obtaining high-bandwith communication Constantly inspecting and improving Delivering value Changing plans to take advantage of opportunities and priorities High Quality Software Development with Agile & Scrum @ March 2012
  90. 90. Possible Problems with Agile● Cultural change● Organizational support● Stakeholder involvement● Team size● Transparency● “No silver bullet” High Quality Software Development with Agile & Scrum @ March 2012
  91. 91. Module 4. Writing High Quality Software With Agile nmap run completed -- 1 IP address (1 host up) scanneds % sshnuke 10.2.2.2 -rootpw-"Z1ON0101" Connecting to 10.2.2.2:ssh ... successful. Attempting to exploit SSHv1 CRC32 ... successful. Reseting root password to "Z1ON0101". System open: Access Level (9) % ssh 10.2.2.2 -l root root@10.2.2.2s password: RTF-CONTROL> disable grid nodes 21 - 48 Warning: Disabling nodes 21-48 will disconnect sector 11 (27 nodes) ARE YOU SURE ? (y/n) Grid Node 21 offline... Grid Node 22 offline... Grid Node 23 offline... Grid Node 24 offline... Grid Node 25 offline... Grid Node 26 offline... Grid Node 27 offline... Grid Node 28 offline... Grid Node 29 offline... Grid Node 30 offline... Grid Node 31 offline... Grid Node 32 offline... Grid Node 33 offline... Grid Node 34 offline... Grid Node 35 offline... Grid Node 36 offline... Grid Node 37 offline... Grid Node 38 offline... High Quality Software Development with Agile & Scrum @ March 2012
  92. 92. Searching for High Quality● Scrum does not guarantee high- quality for your project● XP principles try to provide high-quality software with Agile principles High Quality Software Development with Agile & Scrum @ March 2012
  93. 93. What is Extreme Programming?● An agile development methodology● Created by Kent Beck in the mid 1990’s● A set of 12 key practices taken to their “extremes”● A mindset for developers and customers● A religion? High Quality Software Development with Agile & Scrum @ March 2012
  94. 94. The XP PracticesHigh Quality Software Development with Agile & Scrum @ March 2012
  95. 95. 1 - The Planning Game● Planning for the upcoming iteration● Uses stories provided by the customer● Technical persons determine schedules, estimates, costs, etc● A result of collaboration between the customer and the developers High Quality Software Development with Agile & Scrum @ March 2012
  96. 96. The Planning Game – Advantages● Reduction in time wasted on useless features● Greater customer appreciation of the cost of a feature● Less guesswork in planning High Quality Software Development with Agile & Scrum @ March 2012
  97. 97. The Planning Game – Disadvantages● Customer availability● Is planning this often necessary? High Quality Software Development with Agile & Scrum @ March 2012
  98. 98. 2- Small Releases● Small in terms of functionality● Less functionality means releases happen more frequently● Support the planning game High Quality Software Development with Agile & Scrum @ March 2012
  99. 99. Small Releases – Advantages● Frequent feedback● Tracking● Reduce chance of overall project slippage High Quality Software Development with Agile & Scrum @ March 2012
  100. 100. Small Releases – Disadvantages● Not easy for all projects● Not needed for all projects● Versioning issues High Quality Software Development with Agile & Scrum @ March 2012
  101. 101. 3 – Metaphor● The oral architecture of the system● A common set of terminology High Quality Software Development with Agile & Scrum @ March 2012
  102. 102. Metaphor – Advantages● Encourages a common set of terms for the system● Reduction of buzz words and jargon● A quick and easy way to explain the system High Quality Software Development with Agile & Scrum @ March 2012
  103. 103. Metaphor – Disadvantages● Often the metaphor is the system● Another opportunity for miscommunication● The system is often not well understood as a metaphor High Quality Software Development with Agile & Scrum @ March 2012
  104. 104. 4 – Simple Design● K.I.S.S.● Do as little as needed, nothing more High Quality Software Development with Agile & Scrum @ March 2012
  105. 105. Simple Design – Advantages● Time is not wasted adding superfluous functionality● Easier to understand what is going on● Refactoring and collective ownership is made possible● Helps keeps programmers on track High Quality Software Development with Agile & Scrum @ March 2012
  106. 106. Simple Design – Disadvantages● What is “simple?”● Simple isn’t always best High Quality Software Development with Agile & Scrum @ March 2012
  107. 107. 6 – Testing● Unit testing● Test-first design (TDD)● All automated High Quality Software Development with Agile & Scrum @ March 2012
  108. 108. Testing – Advantages● Unit testing promote testing completeness● Test-first gives developers a goal● Automation gives a suite of regression test High Quality Software Development with Agile & Scrum @ March 2012
  109. 109. Testing – Disadvantages● Automated unit testing isn’t for everything● Reliance on unit testing isn’t a good idea● A test result is only as good as the test itself High Quality Software Development with Agile & Scrum @ March 2012
  110. 110. 6 – Refactoring● Changing how the system does something but not what is done● Improves the quality of the system in some way High Quality Software Development with Agile & Scrum @ March 2012
  111. 111. Refactoring – Advantages● Prompts developers to proactively improve the product as a whole● Increases developer knowledge of the system High Quality Software Development with Agile & Scrum @ March 2012
  112. 112. Refactoring – Disadvantages● Not everyone is capable of refactoring● Refactoring may not always be appropriate● Would upfront design eliminate refactoring? High Quality Software Development with Agile & Scrum @ March 2012
  113. 113. 7 – Pair Programming● Two Developers, One monitor, One Keyboard● One “drives” and the other thinks● Switch roles as needed High Quality Software Development with Agile & Scrum @ March 2012
  114. 114. Pair Programming – Advantages● Two heads are better than one● Focus● Two people are more likely to answer the following questions: ● Is this whole approach going to work? ● What are some test cases that may not work yet? ● Is there a way to simplify this? High Quality Software Development with Agile & Scrum @ March 2012
  115. 115. Pair Programming – Disadvantages● Many tasks really don’t require two programmers● A hard sell to the customers● Not for everyone http://www.cenqua.com/pairon/ High Quality Software Development with Agile & Scrum @ March 2012
  116. 116. 8 – Collective Ownership● The idea that all developers own all of the code● Enables refactoring High Quality Software Development with Agile & Scrum @ March 2012
  117. 117. Collective Ownership – Advantages● Helps mitigate the loss of a team member leaving● Promotes developers to take responsibility for the system as a whole rather then parts of the system High Quality Software Development with Agile & Scrum @ March 2012
  118. 118. Collective Ownership - Disadvantages● Loss of accountability● Limitation to how much of a large system that an individual can practically “own” High Quality Software Development with Agile & Scrum @ March 2012
  119. 119. 9 – Continuous Integration● New features and changes are worked into the system immediately● Code is not worked on without being integrated for more than a day High Quality Software Development with Agile & Scrum @ March 2012
  120. 120. Continuous Integration - Advantages● Reduces to lengthy process● Enables the Small Releases practice High Quality Software Development with Agile & Scrum @ March 2012
  121. 121. Continuous Integration – Disadvantages● The one day limit is not always practical● Reduces the importance of a well-thought-out architecture High Quality Software Development with Agile & Scrum @ March 2012
  122. 122. 10 – 40-Hour Week● The work week should be limited to 40 hours● Regular overtime is a symptom of a problem and not a long term solution High Quality Software Development with Agile & Scrum @ March 2012
  123. 123. 40-Hour Week – Advantage● Most developers lose effectiveness past 40- Hours● Value is placed on the developers well-being● Management is forced to find real solutions High Quality Software Development with Agile & Scrum @ March 2012
  124. 124. 40-Hour Week - Disadvantages● The underlying principle is flawed● 40-Hours is a magic number● Some may like to work more than 40-Hours High Quality Software Development with Agile & Scrum @ March 2012
  125. 125. 11 – On-Site Customer● Just like the title says!● Acts to “steer” the project● Gives quick and continuous feedback to the development team High Quality Software Development with Agile & Scrum @ March 2012
  126. 126. On-Site Customer – Advantages● Can give quick and knowledgeable answers to real development questions● Makes sure that what is developed is what is needed● Functionality is prioritized correctly High Quality Software Development with Agile & Scrum @ March 2012
  127. 127. On-Site Customer – Disadvantages● Difficult to get an On-Site Customer● The On-Site customer that is given may not be fully knowledgeable about what the company● May not have authority to make many decisions● Loss of work to the customer’s company High Quality Software Development with Agile & Scrum @ March 2012
  128. 128. 12 – Coding Standards● All code should look the same● It should not possible to determine who coded what based on the code itself High Quality Software Development with Agile & Scrum @ March 2012
  129. 129. Coding Standards – Advantages● Reduces the amount of time developers spend reformatting other peoples’ code● Reduces the need for internal commenting● Call for clear, unambiguous code High Quality Software Development with Agile & Scrum @ March 2012
  130. 130. Coding Standards – Disadvantages● Degrading the quality of inline documentation High Quality Software Development with Agile & Scrum @ March 2012
  131. 131. How Google Develops Software● Single Code Base for Everything● Distributed Version Control System● Central Documentation Repository● Bug Tracking System● Maven/Gem Repository● Coding Standarts and Guidelines● Code Coverage Tools● Pair Programing and Code Review Tools● Release Notes & Release Management● OS-IDE-Tool Free Coding● Test Driven Development / Behavior Driven Development● Testing in Multi-level (Unit, Integration, Functional, Acceptance, Manual)● Continuous Integration Server● Enterprise Architecture (Dev, Test & QA, Staging, Production) High Quality Software Development with Agile & Scrum @ March 2012
  132. 132. How Google Develops Software● Sprint Collaboration Tool as White Board● Sprint Tracking Tool as Spreadsheet● Product Backlog in Spreadsheet or a tool like Atlassian Jira-GreenHooper● Meetings with Larry Page Rules 1) Every meeting must have one clear decision maker. If theres no decision maker -- or no decision to be made -- the meeting shouldnt happen. 2) No more than 10 people should attend. 3) Every person should give input, otherwise they shouldnt be there. 4) No decision should ever wait for a meeting. If a meeting absolutely has to happen before a decision should be made, then the meeting should be scheduled immediately.● Scrum of Scrums● Brown Bag Sessions, tech taks, round-table sessions● 20% Time● New ideas, then brainstorming session High Quality Software Development with Agile & Scrum @ March 2012
  133. 133. Module 5. Dos and DontsHigh Quality Software Development with Agile & Scrum @ March 2012
  134. 134. Can Scrum fail ? No !Scrum is not a silver bullet ... and it surfaces existing problems Scrum never fails !!! It is a simple framework but hard to implementIt’s a completely new way of thinking and mind-set shifting it is not just list of practice. If you “stand-up” it doesn’t mean you do Scrum ... High Quality Software Development with Agile & Scrum @ March 2012
  135. 135. Why Scrum Implementation Might Fail ?● Culture ● Providing answers instead of asking questions● Management ● Force commitments ● Ask for not needed or invaluable status and measures ● No tolerance for failures● Will go back to the old norms● Loss of Ceremony Rhythm● Scrum Ceremonies are taking too long High Quality Software Development with Agile & Scrum @ March 2012
  136. 136. Why Scrum Implementation Might Fail ?● Bad Scrum Master ● Driving the time and the tasks allocation, get decisions. ● Fails to make a prioritized impediment list ● Becomes the team administrator ● Do not keep the team in the “zone”● No or bad retrospectives● Wrong definition of done● No velocity tracking High Quality Software Development with Agile & Scrum @ March 2012
  137. 137. Why Scrum Implementation Might Fail ?● Bad Product Owner ● Consistently unavailable ● Fail to get consensus ● Doesn’t have a vision, business plan and release roadmap ● Poorly defined stories (INVEST), not all work in the backlog ● On-going Changes in Sprint backlog● Too much interruptions / PO bypassed● No analysis or documentation High Quality Software Development with Agile & Scrum @ March 2012
  138. 138. Why Scrum Implementation Might Fail ?● Waterfall within sprint ● Better to have 70% of stories 100% done then the opposite. ● Entire team own the story ● Testers are not part of the Team ● Developers assume QA will test ● Integration postponed to the end● Technical Debt ● More defects appear at the end ● Last iterations produce less new functionality ● Re-factor and re-design cost too much and take too long High Quality Software Development with Agile & Scrum @ March 2012
  139. 139. Why Scrum Implementation Might Fail ?● Not Acting Like a self managed team ● Fixed Roles, No knowledge leveraging ● Prima donna /Dictator within the team ● Depend on external expertise ● Visibility for the managers not for the team ● Personal goals rather than team goal ● Talking Chickens ● Tasks are assigned ● Not helping and listening each other● NO FUN :( High Quality Software Development with Agile & Scrum @ March 2012
  140. 140. Why Scrum Implementation Might Fail ?● Team exhausted, there are no calm periods, no place for innovation ● " ... the team shadows the individual. Good senior employees, feels that they can less contribute and lead, ...[due to] the “team thing” and the low granularity of the tasks, leaving small flexibility to personal innovation and creativity“ High Quality Software Development with Agile & Scrum @ March 2012
  141. 141. Does Scrum fit BIG organization ?The following statements are sometimes heard:● "Oh yes, Scrum is good for small teams but I dont see it working for bigger organizations”● "Only experts and above average developers can do it."● "It should evolve bottom-up" (i.e., one "crazy" team implements Scrum and generates a "buzz" that pushes the rest of the organization to follow).● "There is no visibility above the teams level as there are no project plans".● "Teams are self-managed so team leaders and managers lose their role."● "Agile is not good for complex systems with integrations and dependencies."● "Our customers will never go along with fluid estimations"● And so on.... High Quality Software Development with Agile & Scrum @ March 2012
  142. 142. Yes, it fits!● Scrum surfaces the inherent problems and wastes● Scrum reduces the bureaucracy and org. complexity ● Break the organizational silos ● Reduce politics – move the power to the teams● Scrum allows better leveling of knowledge ● Reduces dependencies on specific expertise, ● Raises employees satisfaction High Quality Software Development with Agile & Scrum @ March 2012
  143. 143. Yes, it fits!● Scrum provides much better visibility● Managers have more time to ● Look ahead and think ● Understand customer needs and ROI ● Handle impediments ● Raises employees satisfaction The bigger the organization, the higher ROI High Quality Software Development with Agile & Scrum @ March 2012
  144. 144. Module 6. KickstartHigh Quality Software Development with Agile & Scrum @ March 2012
  145. 145. The Shock Therapy● "A set of Good Practices, but no choice" ● Team Recipe ● Management Recipe ● Organization Recipe High Quality Software Development with Agile & Scrum @ March 2012
  146. 146. Team Recipe● Scrum training session for everyone ● Story Points● Sprint 1 week long ● Physical Task Board ● All-in-one Sprint planning● Definition of Done: meeting. ● Feature Complete ● No Multi-tasking, work in priority order. ● Code Complete ● Three successful Sprints ● No known defects consecutively ● Approved by the Product ● Good business reason to Owner change the rule ● Production Ready ● Continuous Integration High Quality Software Development with Agile & Scrum @ March 2012
  147. 147. Management Recipe● Hands off during 3 iterations● Attend: ● Some Daily Scrums - be quiet ● All Sprint Reviews● Start to work on waste - now!● Management by walking, asking and listening● Make the first step easy for the team● One successful team● Removed impediments and studied results● Change in perception at "ground level"● A good agile reason to change the rule High Quality Software Development with Agile & Scrum @ March 2012
  148. 148. Organization Recipe● Difficult - How to speak to a "culture"?● Some steps: ● Transparency ● Pull ● A micro-revolution per day ● Some new roles High Quality Software Development with Agile & Scrum @ March 2012
  149. 149. The Scrum Sensei● Experienced ScrumMaster● Enforces rules/recipes● Bad ScrumMaster as in "good cop - bad cop"● Compassion!● Leaves when self-organization works High Quality Software Development with Agile & Scrum @ March 2012
  150. 150. Special Thanks! Presentation by: Mike Cohn Presentation by: Mike Cohn mike@mountaingoatsoftware.com mike@mountaingoatsoftware.com www.mountaingoatsoftware.com www.mountaingoatsoftware.com (720) 890-6110 (720) 890-6110High Quality Software Development with Agile & Scrum @ March 2012
  151. 151. Special Thanks! Scrum Shock Therapy Björn Granvik, CTO, Jayway Why Scrum Projects Might Fail? Ronen Bar-Nahor (Ph.D)Top 10 Reasons Why Systems Projects Fail Dr. Paul Dorsey, Dulcian, Inc. High Quality Software Development with Agile & Scrum @ March 2012
  152. 152. Any QuestionsHigh Quality Software Development with Agile & Scrum @ March 2012

×