A real-life overview of Agile workflow practices           Michael Toppa @mtoppa www.toppa.com                         3/1...
Mike Toppa19 years of experience in web development, project management, andfunctional management ✤   Currently: Rails Eng...
Overview✤   Theory    ✤   Waterfall vs Agile✤   Practice    ✤   My experiences at U Penn    ✤   ...and ElectNext
Theory    So what’s the problem?
The software development dilemma                        Quality Features                                                  ...
Traditional “Waterfall” Approach  SourceFeatures determine the cost and scheduleDefine all requirements up frontLogically ...
A perspective on the traditional approachSource
Information is lost in handoffsSource
No opportunity for feedback         “I find your lack of faith disturbing”Source
Over-production of features   SourceAsk customers what they want at the beginning, when they really don’t knowPenalize the...
Low success rate     “The main thing that pushed Agile and Scrum was     that the success rate on traditional projects was...
SourceCost in software projects means manpowerBrooks’ Law: adding more manpower makes late projects later
Source
Agile: frequent feedback   SourceEvery iteration ends with a retrospectiveAlso, feedback from clients during iteration rev...
Agile: “inspect and adapt”  SourceSingle loop learning is “how can we do better”?Double loop learning is “Why do we believ...
Agile: incremental and iterative   SourceDevelop systems in small portions at a time (incremental), through repeated cycle...
The Agile workflowSource
Why?✤   The pace of business keeps getting faster✤   Feedback is essential✤   Time is scarce✤   Things will change
Incremental development:  slice vertically, not horizontally   SourceThis is where developers unfamiliar with Agile freak ...
The Agile Umbrella   SourceAgile is a mindset and a set of values. There are multiple methodologies that implement it.I’ll...
Scrum: overviewSource
Scrum has 3 roles✤   Product owner✤   Scrum master✤   Self-organizing, cross-functional team
Scrum role: Product Owner               Responsible for what the team will work on,                              and setti...
Scrum role: Scrum Master                        A “servant-leader” for the teamA “servant-leader” for the team - analogous...
The team: self-organizing  and cross-functional   SourceCross-functional team takes collective responsibility for estimati...
So who’s  the boss?   SourcePersonnel management exists completely outside this structure.Works best in relatively “flat” o...
Practice   My experiences at U Penn
The team✤   15 web developers and designers✤   Ad-hoc development process: hadn’t heard of waterfall or agile✤   Independe...
The situation✤   Ever growing number of clients and projects✤   Hiring freeze✤   Sparse project management, little documen...
Mike: Why Agile? Why Scrum? ✤   Maintain frequent interactions with clients ✤   Enable planning ✤   Reduce risk ✤   Improv...
I expected our scrum adoption to look something like this...   SourceI read Mike Cohn’s book Succeeding with Agile: Softwa...
But it turned out like this...   SourceTeam didn’t like it, and clients didn’t like it. It felt like just adding a new set...
The Scrum Promise             “In my Scrum classes I warn attendees of what I call             the Scrum Promise: If you a...
So I brought in a Scrum coach   SourceA skilled external coach is often key for driving change - they bring a wide range o...
Problem #1: false start   SourceThrowing people together and calling them a team doesn’t make them a team- stepping on eac...
Problem #2: too much work9 developers, 2 product owners, and me supporting- 22 clients with 124 applications3 designers an...
Estimating: story points and  planning poker  Photo by Kelly Hirano  Used with permission- How did we generate that chart?...
Velocity enables scheduling and  “sustainable pace”   SourceAfter a few sprints, our teams had velocities, which allowed u...
Problem #3: task switching   SourceContext switching between two projects eats about 20% of a full-time worker’s schedule
Problem #4: Misalignment of  authority and responsibility  Cartoon by Mike Lynch   Used with permission- Following this ad...
What makes a job enjoyable?✤   Autonomy✤   Reward for effort✤   Challenging/complex work    “Work that fulfills these three...
In the end...✤   Team improved practices, quality, and predictability✤   Attempts to better align authority and responsibi...
Practice  My experiences at ElectNext
The team  ✤   6 person company -> freedom of action  ✤   Spread out across 3 cities - meetings are online  ✤   Team was al...
Refinements✤   Added retrospectives and setting monthly goals✤   Stabilized engineering velocity✤   Decided to not have pr...
Our daily standupEach part of the company has a separate section of the document- more detailed tracking is does separately
References: overviews and productmanagement✤   “Succeeding with Agile: Software Development Using Scrum” and    “Agile Est...
References: technical practices✤   “Clean Code” and “Agile Software Development, Principles,    Patterns, and Practices” b...
References: Agile beyond softwaredevelopment✤   Angry Dinosaurs: Accelerating Change and Institutional    Incompetence    ...
Any questions?Michael Toppa @mtoppa www.toppa.com              3/18/2013
Upcoming SlideShare
Loading in...5
×

A real-life overview of Agile workflow practices

579

Published on

I gave this talk March 18, 2013 as part of Villanova University's Computer Science Colloquium series - http://csc.villanova.edu/colloquia/view/725

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
579
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
15
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "A real-life overview of Agile workflow practices"

  1. 1. A real-life overview of Agile workflow practices Michael Toppa @mtoppa www.toppa.com 3/18/2013
  2. 2. Mike Toppa19 years of experience in web development, project management, andfunctional management ✤ Currently: Rails Engineer, ElectNext ✤ Previously: ✤ Director of Development, WebDevStudios ✤ Director of Web Applications, U Penn School of Medicine ✤ Web developer at: Georgetown University, Stanford University, E*Trade, and Ask Jeeves
  3. 3. Overview✤ Theory ✤ Waterfall vs Agile✤ Practice ✤ My experiences at U Penn ✤ ...and ElectNext
  4. 4. Theory So what’s the problem?
  5. 5. The software development dilemma Quality Features Pick any two Fast LowSchedule CostI’ve explained the triangle to dozens of clients over the yearsProgramming is not magic
  6. 6. Traditional “Waterfall” Approach SourceFeatures determine the cost and scheduleDefine all requirements up frontLogically break down the workEstimate the effort / durationsPlan out all the workAnd only then begin the development…while trying to limit any change that willthreaten the plan.
  7. 7. A perspective on the traditional approachSource
  8. 8. Information is lost in handoffsSource
  9. 9. No opportunity for feedback “I find your lack of faith disturbing”Source
  10. 10. Over-production of features SourceAsk customers what they want at the beginning, when they really don’t knowPenalize them for adding things laterTCL example
  11. 11. Low success rate “The main thing that pushed Agile and Scrum was that the success rate on traditional projects was terrible; it was 45%. If that was a car-manufacturing place, that would mean you’d throw out every other car you built.” Ken Schwaber, co-creator of Scrum, 6/21/2011Source
  12. 12. SourceCost in software projects means manpowerBrooks’ Law: adding more manpower makes late projects later
  13. 13. Source
  14. 14. Agile: frequent feedback SourceEvery iteration ends with a retrospectiveAlso, feedback from clients during iteration review
  15. 15. Agile: “inspect and adapt” SourceSingle loop learning is “how can we do better”?Double loop learning is “Why do we believe that?”Double loop learning means challenging fundamental assumptions
  16. 16. Agile: incremental and iterative SourceDevelop systems in small portions at a time (incremental), through repeated cycles (iterative),and take advantage of what was learned in each cycle (for both features and implementation)
  17. 17. The Agile workflowSource
  18. 18. Why?✤ The pace of business keeps getting faster✤ Feedback is essential✤ Time is scarce✤ Things will change
  19. 19. Incremental development: slice vertically, not horizontally SourceThis is where developers unfamiliar with Agile freak outHow do you develop a UI or a database in pieces? This seems like it would lead to a giantmess. Remember the iterative part - we can sketch out the overall design, but we buildincrementally, fleshing out the details of what’s needed soonIt is possible, it is practical, and there are a lot of people doing it.Its actually the opposite of messy hacking. Doing it well requires a very disciplineddevelopment process, and strong application design skills, as you are trying to maintain asolid application design while always being ready to adapt to change.
  20. 20. The Agile Umbrella SourceAgile is a mindset and a set of values. There are multiple methodologies that implement it.I’ll focus on the most popular one, Scrum
  21. 21. Scrum: overviewSource
  22. 22. Scrum has 3 roles✤ Product owner✤ Scrum master✤ Self-organizing, cross-functional team
  23. 23. Scrum role: Product Owner Responsible for what the team will work on, and setting priorities, but not how the work is doneResponsible for what the team will work on, but not how the work is doneWorks closely with clients to understand their needsGathers and writes business requirements in small pieces, called “user stories”Based on client needs, sets priorities for the teamDoes not have authority over technical design decisionsCannot tell an individual team member what to doA good Product Owner is: available, business-savvy, communicative, decisive, empowered
  24. 24. Scrum role: Scrum Master A “servant-leader” for the teamA “servant-leader” for the team - analogous to a physical trainerCan coach and evangelize, but not issue commandsBut does have authority over the Scrum processRemoves obstacles for the teamA good Scrum Master is: responsible, humble, collaborative, committed, influential, andknowledgeable
  25. 25. The team: self-organizing and cross-functional SourceCross-functional team takes collective responsibility for estimating the work, and doing theworkDoing it in the priority order they are asked to followKeeping quality high by working together (inspecting each others code, discussing besttechnical solutions, etc)
  26. 26. So who’s the boss? SourcePersonnel management exists completely outside this structure.Works best in relatively “flat” organizations where people are given autonomy and achievablegoalsAntithetical to top-down, command and control hierarchiesMore on the this later
  27. 27. Practice My experiences at U Penn
  28. 28. The team✤ 15 web developers and designers✤ Ad-hoc development process: hadn’t heard of waterfall or agile✤ Independent: developers worked alone on projects (a huge business risk)✤ Customer service oriented: say “yes” to everything✤ Focused on fast delivery
  29. 29. The situation✤ Ever growing number of clients and projects✤ Hiring freeze✤ Sparse project management, little documentation✤ Ambiguous lines of authority✤ Reactive planning, daily firefighting✤ No one in a position to prioritize -> politicized decision making
  30. 30. Mike: Why Agile? Why Scrum? ✤ Maintain frequent interactions with clients ✤ Enable planning ✤ Reduce risk ✤ Improve qualityMaintain frequent interactions with clients- Provides quick feedback, Existing good relationshipsEnable planning- make commitments, and meet them, Reduce need for firefightingReduce risk- Have more than one person know a projectImprove Quality- Reduce misunderstandings, Reduce missed requirements, Have fewer bugs
  31. 31. I expected our scrum adoption to look something like this... SourceI read Mike Cohn’s book Succeeding with Agile: Software Development using ScrumI taught the team core scrum concepts, I explained the new process to clientsA small team did a pilot project first, Then the whole group switched
  32. 32. But it turned out like this... SourceTeam didn’t like it, and clients didn’t like it. It felt like just adding a new set of work andprocesses on top of the existing work
  33. 33. The Scrum Promise “In my Scrum classes I warn attendees of what I call the Scrum Promise: If you adopt Scrum, there will be a day you come into the office nearly in tears over how hard the change can be. This is because Scrum doesn’t solve problems, it uncovers them and puts them in our face. Then, through hard work we address them.” – Mike Cohn, Agile TrainerBut what was really going on was that it was bringing previously unrecognized andunarticulated problems to the surface
  34. 34. So I brought in a Scrum coach SourceA skilled external coach is often key for driving change - they bring a wide range ofexperience and can see things objectivelyIf you’ve never led an Agile transition before, it’s surprisingly easy to do it wrongYou need at least enough management support to pay the coachYou need to make sure you’re bringing in someone good
  35. 35. Problem #1: false start SourceThrowing people together and calling them a team doesn’t make them a team- stepping on each others toes in the code, not familiar with each others’ projects, someunwilling to share workI misunderstood the roles:- The clients were acting as their own product owners, The scrum masters were our formerproject managers, and continued doing traditional project management- I had several “scrum-buts” - aspects of our process where we didnt follow scrum and stuckto how we always had worked before
  36. 36. Problem #2: too much work9 developers, 2 product owners, and me supporting- 22 clients with 124 applications3 designers and 1 product owner supporting- about 200 static content web sitesTaking inventory itself was a huge undertaking
  37. 37. Estimating: story points and planning poker Photo by Kelly Hirano Used with permission- How did we generate that chart?- The teams give “story points” to the work by playing planning poker (the work is expressedin a format called “user stories”)- People are bad at estimating time, but were good at estimating relative size or difficulty- Team based estimates are more accurate than estimates by individuals
  38. 38. Velocity enables scheduling and “sustainable pace” SourceAfter a few sprints, our teams had velocities, which allowed us to make time estimates forprojects.Also gave us a solid basis for not saying “yes” to every new work request.And this is key to the Agile goal of “sustainable pace”
  39. 39. Problem #3: task switching SourceContext switching between two projects eats about 20% of a full-time worker’s schedule
  40. 40. Problem #4: Misalignment of authority and responsibility Cartoon by Mike Lynch Used with permission- Following this advise lets you cover yourself politically, and is a great way to make everyonewho works for you miserable- Ive found that misalignment of authority and responsibility can explain a lot of dysfunctionthat happens in organizations- When you have responsibility for your work but not enough authority over it, you will feellike a cog in machine
  41. 41. What makes a job enjoyable?✤ Autonomy✤ Reward for effort✤ Challenging/complex work “Work that fulfills these three criteria is meaningful.” – Malcolm Gladwell, “Outliers: The Story of Success”
  42. 42. In the end...✤ Team improved practices, quality, and predictability✤ Attempts to better align authority and responsibility with clients (by means of creating an advisory board) failed
  43. 43. Practice My experiences at ElectNext
  44. 44. The team ✤ 6 person company -> freedom of action ✤ Spread out across 3 cities - meetings are online ✤ Team was already doing a couple Agile practices: daily stand-ups and weekly sprints ✤ But not other practices -> some confusion around goals and workflow ✤ No external clients: designing and selling our product ✤ Highly collaborative, can-do team1 CEO, 2 business developers, 1 product manager, 2 engineersDaily standup, weekly planning, but no longer range planning, no retrospectives and nospecific agile roles
  45. 45. Refinements✤ Added retrospectives and setting monthly goals✤ Stabilized engineering velocity✤ Decided to not have product owner and scrum master roles for now ✤ But more defined roles may be needed as we grow
  46. 46. Our daily standupEach part of the company has a separate section of the document- more detailed tracking is does separately
  47. 47. References: overviews and productmanagement✤ “Succeeding with Agile: Software Development Using Scrum” and “Agile Estimating and Planning” by Mike Cohn✤ “Specification by Example” and “Impact Mapping” by Gojko Adzic✤ “Kanban: Successful Evolutionary Change for Your Technology Business” by David J. Anderson✤ “The Lean Startup” by Eric Ries
  48. 48. References: technical practices✤ “Clean Code” and “Agile Software Development, Principles, Patterns, and Practices” by Bob Martin✤ “Refactoring: Improving the Design of Existing Code” by Martin Fowler✤ “Agile Database Techniques” by Scott Ambler✤ “The Rspec Book: Behaviour-Driven Development with RSpec, Cucumber, and Friends” by David Chelimsky✤ “Working Effectively with Legacy Code” by Michael Feathers
  49. 49. References: Agile beyond softwaredevelopment✤ Angry Dinosaurs: Accelerating Change and Institutional Incompetence ✤ Cory Ondrejka, Wharton Web Conference, 2010✤ Let it Roll: Why more companies are abandoning budgets in favor of rolling forecasts ✤ CFO Magazine, May 1, 2011✤ The Insourcing Boom ✤ Atlantic Magazine, December 2012
  50. 50. Any questions?Michael Toppa @mtoppa www.toppa.com 3/18/2013

×