SlideShare une entreprise Scribd logo
1  sur  50
Télécharger pour lire hors ligne
A real-life overview of Agile workflow practices
           Michael Toppa @mtoppa www.toppa.com

                         3/18/2013
Mike Toppa

19 years of experience in web development, project management, and
functional 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
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


                                                           Pick any two




  Fast                                                       Low
Schedule                                                     Cost
I’ve explained the triangle to dozens of clients over the years
Programming is not magic
Traditional “Waterfall” Approach




  Source


Features determine the cost and schedule
Define all requirements up front
Logically break down the work
Estimate the effort / durations
Plan out all the work
And only then begin the development…while trying to limit any change that will
threaten the plan.
A perspective on the traditional approach




Source
Information is lost in handoffs




Source
No opportunity for feedback




         “I find your lack of faith disturbing”
Source
Over-production of features




   Source


Ask customers what they want at the beginning, when they really don’t know
Penalize them for adding things later
TCL example
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/2011



Source
Source


Cost in software projects means manpower
Brooks’ Law: adding more manpower makes late projects later
Source
Agile: frequent feedback




   Source


Every iteration ends with a retrospective
Also, feedback from clients during iteration review
Agile: “inspect and adapt”




  Source


Single loop learning is “how can we do better”?
Double loop learning is “Why do we believe that?”
Double loop learning means challenging fundamental assumptions
Agile: incremental and iterative




   Source


Develop 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)
The Agile workflow




Source
Why?


✤   The pace of business keeps getting faster

✤   Feedback is essential

✤   Time is scarce

✤   Things will change
Incremental development:
  slice vertically, not horizontally




   Source


This is where developers unfamiliar with Agile freak out

How do you develop a UI or a database in pieces? This seems like it would lead to a giant
mess. Remember the iterative part - we can sketch out the overall design, but we build
incrementally, fleshing out the details of what’s needed soon

It is possible, it is practical, and there are a lot of people doing it.

It's actually the opposite of messy hacking. Doing it well requires a very disciplined
development process, and strong application design skills, as you are trying to maintain a
solid application design while always being ready to adapt to change.
The Agile Umbrella




   Source


Agile is a mindset and a set of values. There are multiple methodologies that implement it.
I’ll focus on the most popular one, Scrum
Scrum: overview




Source
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 setting priorities,

                         but not how the work is done




Responsible for what the team will work on, but not how the work is done
Works closely with clients to understand their needs
Gathers and writes business requirements in small pieces, called “user stories”
Based on client needs, sets priorities for the team
Does not have authority over technical design decisions
Cannot tell an individual team member what to do
A good Product Owner is: available, business-savvy, communicative, decisive, empowered
Scrum role: Scrum Master




                        A “servant-leader” for the team




A “servant-leader” for the team - analogous to a physical trainer
Can coach and evangelize, but not issue commands
But does have authority over the Scrum process
Removes obstacles for the team
A good Scrum Master is: responsible, humble, collaborative, committed, influential, and
knowledgeable
The team: self-organizing
  and cross-functional




   Source


Cross-functional team takes collective responsibility for estimating the work, and doing the
work
Doing it in the priority order they are asked to follow
Keeping quality high by working together (inspecting each other's code, discussing best
technical solutions, etc)
So who’s
  the boss?




   Source


Personnel management exists completely outside this structure.
Works best in relatively “flat” organizations where people are given autonomy and achievable
goals
Antithetical to top-down, command and control hierarchies
More on the this later
Practice




   My experiences at U Penn
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
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
Mike: Why Agile? Why Scrum?


 ✤   Maintain frequent interactions with clients

 ✤   Enable planning

 ✤   Reduce risk

 ✤   Improve quality




Maintain frequent interactions with clients
- Provides quick feedback, Existing good relationships
Enable planning
- make commitments, and meet them, Reduce need for firefighting
Reduce risk
- Have more than one person know a project
Improve Quality
- Reduce misunderstandings, Reduce missed requirements, Have fewer bugs
I expected our scrum adoption to
 look something like this...




   Source


I read Mike Cohn’s book Succeeding with Agile: Software Development using Scrum
I taught the team core scrum concepts, I explained the new process to clients
A small team did a pilot project first, Then the whole group switched
But it turned out like this...




   Source


Team didn’t like it, and clients didn’t like it. It felt like just adding a new set of work and
processes on top of the existing work
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 Trainer




But what was really going on was that it was bringing previously unrecognized and
unarticulated problems to the surface
So I brought in a Scrum coach




   Source


A skilled external coach is often key for driving change - they bring a wide range of
experience and can see things objectively
If you’ve never led an Agile transition before, it’s surprisingly easy to do it wrong
You need at least enough management support to pay the coach
You need to make sure you’re bringing in someone good
Problem #1: false start




   Source


Throwing people together and calling them a team doesn’t make them a team
- stepping on each other's toes in the code, not familiar with each others’ projects, some
unwilling to share work
I misunderstood the roles:
- The clients were acting as their own product owners, The scrum masters were our former
project managers, and continued doing traditional project management
- I had several “scrum-buts” - aspects of our process where we didn't follow scrum and stuck
to how we always had worked before
Problem #2: too much work




9 developers, 2 product owners, and me supporting
- 22 clients with 124 applications
3 designers and 1 product owner supporting
- about 200 static content web sites
Taking inventory itself was a huge undertaking
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 expressed
in a format called “user stories”)
- People are bad at estimating time, but we're good at estimating relative size or difficulty
- Team based estimates are more accurate than estimates by individuals
Velocity enables scheduling and
  “sustainable pace”




   Source


After a few sprints, our teams had velocities, which allowed us to make time estimates for
projects.
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”
Problem #3: task switching




   Source


Context 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 advise lets you cover yourself politically, and is a great way to make everyone
who works for you miserable
- I've found that misalignment of authority and responsibility can explain a lot of dysfunction
that happens in organizations
- When you have responsibility for your work but not enough authority over it, you will feel
like a cog in machine
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”
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
Practice




  My experiences at ElectNext
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 team

1 CEO, 2 business developers, 1 product manager, 2 engineers
Daily standup, weekly planning, but no longer range planning, no retrospectives and no
specific agile roles
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
Our daily standup




Each part of the company has a separate section of the document
- more detailed tracking is does separately
References: overviews and product
management

✤   “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
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
References: Agile beyond software
development
✤   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
Any questions?
Michael Toppa @mtoppa www.toppa.com

              3/18/2013

Contenu connexe

Tendances

Agile Truths and Misconceptions
Agile Truths and MisconceptionsAgile Truths and Misconceptions
Agile Truths and Misconceptions
Richard Cheng
 
Project_Estimation
Project_EstimationProject_Estimation
Project_Estimation
Naeem Bari
 

Tendances (20)

Summer Scrum Public
Summer Scrum PublicSummer Scrum Public
Summer Scrum Public
 
How To Build Scrum Task Boards that Radiate Information
How To Build Scrum Task Boards that Radiate Information How To Build Scrum Task Boards that Radiate Information
How To Build Scrum Task Boards that Radiate Information
 
Sww 2006 Redesigning Processes For Solid Works
Sww 2006   Redesigning Processes For Solid WorksSww 2006   Redesigning Processes For Solid Works
Sww 2006 Redesigning Processes For Solid Works
 
Agile Roles & responsibilities
Agile Roles & responsibilitiesAgile Roles & responsibilities
Agile Roles & responsibilities
 
Introducing Agile Methodologies
Introducing Agile MethodologiesIntroducing Agile Methodologies
Introducing Agile Methodologies
 
Climbing out of a Crisis Loop at the BBC
Climbing out of a Crisis Loop at the BBCClimbing out of a Crisis Loop at the BBC
Climbing out of a Crisis Loop at the BBC
 
Agile Truths and Misconceptions
Agile Truths and MisconceptionsAgile Truths and Misconceptions
Agile Truths and Misconceptions
 
Richmond Spin - How To Sell A Traditional Client
Richmond Spin - How To Sell A Traditional ClientRichmond Spin - How To Sell A Traditional Client
Richmond Spin - How To Sell A Traditional Client
 
Selling Agile
Selling AgileSelling Agile
Selling Agile
 
Why don't small companies do big a agile?
Why don't small companies do big a agile?Why don't small companies do big a agile?
Why don't small companies do big a agile?
 
Lean and Kanban-based Software Development
Lean and Kanban-based Software DevelopmentLean and Kanban-based Software Development
Lean and Kanban-based Software Development
 
Why Does Agile Work?
Why Does Agile Work?Why Does Agile Work?
Why Does Agile Work?
 
Project_Estimation
Project_EstimationProject_Estimation
Project_Estimation
 
Mqug2015 july richard whyte
Mqug2015 july richard whyteMqug2015 july richard whyte
Mqug2015 july richard whyte
 
Agile thinking
Agile thinkingAgile thinking
Agile thinking
 
Intro to Lean Software Development
Intro to Lean Software DevelopmentIntro to Lean Software Development
Intro to Lean Software Development
 
Xanpan extended presentation
Xanpan extended presentationXanpan extended presentation
Xanpan extended presentation
 
Starting a new project using Scrum
Starting a new project using ScrumStarting a new project using Scrum
Starting a new project using Scrum
 
Modern agile overview
Modern agile overviewModern agile overview
Modern agile overview
 
Lean Software Development
Lean Software DevelopmentLean Software Development
Lean Software Development
 

Similaire à A real-life overview of Agile workflow practices

Agile & SCRUM
Agile & SCRUMAgile & SCRUM
Agile & SCRUM
ejlp12
 
Tom - Scrum
Tom - ScrumTom - Scrum
Tom - Scrum
d0nn9n
 

Similaire à A real-life overview of Agile workflow practices (20)

WordCamp Nashville 2016: The promise and peril of Agile and Lean practices
WordCamp Nashville 2016: The promise and peril of Agile and Lean practicesWordCamp Nashville 2016: The promise and peril of Agile and Lean practices
WordCamp Nashville 2016: The promise and peril of Agile and Lean practices
 
Professional Project Manager Should Be Proficient in Agile
Professional Project Manager Should Be Proficient in AgileProfessional Project Manager Should Be Proficient in Agile
Professional Project Manager Should Be Proficient in Agile
 
Agile - Product is Progress.
Agile - Product is Progress.Agile - Product is Progress.
Agile - Product is Progress.
 
Scrum 18 months later
Scrum 18 months laterScrum 18 months later
Scrum 18 months later
 
Intro to Agile Practices and Values
Intro to Agile Practices and ValuesIntro to Agile Practices and Values
Intro to Agile Practices and Values
 
Agile concepts for quality and process engineers for slideshare
Agile concepts for quality and process engineers   for slideshareAgile concepts for quality and process engineers   for slideshare
Agile concepts for quality and process engineers for slideshare
 
Harnessing Change: Agile Methods for Instructional Designers
Harnessing Change: Agile Methods for Instructional DesignersHarnessing Change: Agile Methods for Instructional Designers
Harnessing Change: Agile Methods for Instructional Designers
 
Вадим Давидов та Людмила Гребенюк “LEAN: Dream Maker Developments” Kharkiv Pr...
Вадим Давидов та Людмила Гребенюк “LEAN: Dream Maker Developments” Kharkiv Pr...Вадим Давидов та Людмила Гребенюк “LEAN: Dream Maker Developments” Kharkiv Pr...
Вадим Давидов та Людмила Гребенюк “LEAN: Dream Maker Developments” Kharkiv Pr...
 
LEAN: Dream Maker Developments
LEAN: Dream Maker DevelopmentsLEAN: Dream Maker Developments
LEAN: Dream Maker Developments
 
Are you Agile enough?
Are you Agile enough?Are you Agile enough?
Are you Agile enough?
 
Codess Prague - Agile vs Traditional Methods - Apr 2014
Codess Prague - Agile vs Traditional Methods - Apr 2014Codess Prague - Agile vs Traditional Methods - Apr 2014
Codess Prague - Agile vs Traditional Methods - Apr 2014
 
Introduction to Agile & scrum
Introduction to Agile & scrumIntroduction to Agile & scrum
Introduction to Agile & scrum
 
Open Source Software Development Practices that Works
Open Source Software Development Practices that WorksOpen Source Software Development Practices that Works
Open Source Software Development Practices that Works
 
Fundamentals of Agile Methodologies - Part I
Fundamentals of Agile Methodologies - Part IFundamentals of Agile Methodologies - Part I
Fundamentals of Agile Methodologies - Part I
 
Introduction to Agile Values & Principles
Introduction to Agile Values & PrinciplesIntroduction to Agile Values & Principles
Introduction to Agile Values & Principles
 
The Agile Drupalist - Methodologies & Techniques for Running Effective Drupal...
The Agile Drupalist - Methodologies & Techniques for Running Effective Drupal...The Agile Drupalist - Methodologies & Techniques for Running Effective Drupal...
The Agile Drupalist - Methodologies & Techniques for Running Effective Drupal...
 
CampusSDN2017 - Jawdat: Product Management and Agile Development
CampusSDN2017 - Jawdat: Product Management and Agile DevelopmentCampusSDN2017 - Jawdat: Product Management and Agile Development
CampusSDN2017 - Jawdat: Product Management and Agile Development
 
Agile & SCRUM
Agile & SCRUMAgile & SCRUM
Agile & SCRUM
 
ATD Virtual Conference: Leveraging Agile Methods in L&D
ATD Virtual Conference: Leveraging Agile Methods in L&DATD Virtual Conference: Leveraging Agile Methods in L&D
ATD Virtual Conference: Leveraging Agile Methods in L&D
 
Tom - Scrum
Tom - ScrumTom - Scrum
Tom - Scrum
 

Plus de mtoppa

WordCamp Nashville 2015: Agile Contracts for WordPress Consultants
WordCamp Nashville 2015: Agile Contracts for WordPress ConsultantsWordCamp Nashville 2015: Agile Contracts for WordPress Consultants
WordCamp Nashville 2015: Agile Contracts for WordPress Consultants
mtoppa
 
Dependency Injection for Wordpress
Dependency Injection for WordpressDependency Injection for Wordpress
Dependency Injection for Wordpress
mtoppa
 
Clean code for WordPress
Clean code for WordPressClean code for WordPress
Clean code for WordPress
mtoppa
 
Dependency Inversion and Dependency Injection in PHP
Dependency Inversion and Dependency Injection in PHPDependency Inversion and Dependency Injection in PHP
Dependency Inversion and Dependency Injection in PHP
mtoppa
 

Plus de mtoppa (20)

RubyConf 2022 - From beginner to expert, and back again
RubyConf 2022 - From beginner to expert, and back againRubyConf 2022 - From beginner to expert, and back again
RubyConf 2022 - From beginner to expert, and back again
 
RailsConf 2022 - Upgrading Rails: The Dual Boot Way
RailsConf 2022 - Upgrading Rails: The Dual Boot WayRailsConf 2022 - Upgrading Rails: The Dual Boot Way
RailsConf 2022 - Upgrading Rails: The Dual Boot Way
 
Applying Omotenashi (Japanese customer service) to your work
Applying Omotenashi (Japanese customer service) to your workApplying Omotenashi (Japanese customer service) to your work
Applying Omotenashi (Japanese customer service) to your work
 
Talking to strangers causes train wrecks
Talking to strangers causes train wrecksTalking to strangers causes train wrecks
Talking to strangers causes train wrecks
 
A11Y? I18N? L10N? UTF8? WTF? Understanding the connections between: accessib...
A11Y? I18N? L10N? UTF8? WTF? Understanding the connections between:  accessib...A11Y? I18N? L10N? UTF8? WTF? Understanding the connections between:  accessib...
A11Y? I18N? L10N? UTF8? WTF? Understanding the connections between: accessib...
 
Why do planes crash? Lessons for junior and senior developers
Why do planes crash? Lessons for junior and senior developersWhy do planes crash? Lessons for junior and senior developers
Why do planes crash? Lessons for junior and senior developers
 
WordCamp US: Clean Code
WordCamp US: Clean CodeWordCamp US: Clean Code
WordCamp US: Clean Code
 
Dependency Injection for PHP
Dependency Injection for PHPDependency Injection for PHP
Dependency Injection for PHP
 
WordCamp Boston 2015: Agile Contracts for WordPress Consultants
WordCamp Boston 2015: Agile Contracts for WordPress ConsultantsWordCamp Boston 2015: Agile Contracts for WordPress Consultants
WordCamp Boston 2015: Agile Contracts for WordPress Consultants
 
WordCamp Nashville 2015: Agile Contracts for WordPress Consultants
WordCamp Nashville 2015: Agile Contracts for WordPress ConsultantsWordCamp Nashville 2015: Agile Contracts for WordPress Consultants
WordCamp Nashville 2015: Agile Contracts for WordPress Consultants
 
Rails testing: factories or fixtures?
Rails testing: factories or fixtures?Rails testing: factories or fixtures?
Rails testing: factories or fixtures?
 
WordCamp Lancaster 2014: A11Y? I18N? L10N? UTF8? WTF?
WordCamp Lancaster 2014: A11Y? I18N? L10N? UTF8? WTF?WordCamp Lancaster 2014: A11Y? I18N? L10N? UTF8? WTF?
WordCamp Lancaster 2014: A11Y? I18N? L10N? UTF8? WTF?
 
WordCamp Nashville: Clean Code for WordPress
WordCamp Nashville: Clean Code for WordPressWordCamp Nashville: Clean Code for WordPress
WordCamp Nashville: Clean Code for WordPress
 
Why Agile? Why Now?
Why Agile? Why Now?Why Agile? Why Now?
Why Agile? Why Now?
 
Object Oriented Programming for WordPress Plugin Development
Object Oriented Programming for WordPress Plugin DevelopmentObject Oriented Programming for WordPress Plugin Development
Object Oriented Programming for WordPress Plugin Development
 
Dependency Injection for Wordpress
Dependency Injection for WordpressDependency Injection for Wordpress
Dependency Injection for Wordpress
 
Clean code for WordPress
Clean code for WordPressClean code for WordPress
Clean code for WordPress
 
Dependency Inversion and Dependency Injection in PHP
Dependency Inversion and Dependency Injection in PHPDependency Inversion and Dependency Injection in PHP
Dependency Inversion and Dependency Injection in PHP
 
Why Do Planes Crash?
Why Do Planes Crash?Why Do Planes Crash?
Why Do Planes Crash?
 
Why Scrum Why Now
Why Scrum Why NowWhy Scrum Why Now
Why Scrum Why Now
 

Dernier

Dernier (20)

GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 

A real-life overview of Agile workflow practices

  • 1. A real-life overview of Agile workflow practices Michael Toppa @mtoppa www.toppa.com 3/18/2013
  • 2. Mike Toppa 19 years of experience in web development, project management, and functional 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. Overview ✤ Theory ✤ Waterfall vs Agile ✤ Practice ✤ My experiences at U Penn ✤ ...and ElectNext
  • 4. Theory So what’s the problem?
  • 5. The software development dilemma Quality Features Pick any two Fast Low Schedule Cost I’ve explained the triangle to dozens of clients over the years Programming is not magic
  • 6. Traditional “Waterfall” Approach Source Features determine the cost and schedule Define all requirements up front Logically break down the work Estimate the effort / durations Plan out all the work And only then begin the development…while trying to limit any change that will threaten the plan.
  • 7. A perspective on the traditional approach Source
  • 8. Information is lost in handoffs Source
  • 9. No opportunity for feedback “I find your lack of faith disturbing” Source
  • 10. Over-production of features Source Ask customers what they want at the beginning, when they really don’t know Penalize them for adding things later TCL example
  • 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/2011 Source
  • 12. Source Cost in software projects means manpower Brooks’ Law: adding more manpower makes late projects later
  • 14. Agile: frequent feedback Source Every iteration ends with a retrospective Also, feedback from clients during iteration review
  • 15. Agile: “inspect and adapt” Source Single 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. Agile: incremental and iterative Source Develop 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)
  • 18. Why? ✤ The pace of business keeps getting faster ✤ Feedback is essential ✤ Time is scarce ✤ Things will change
  • 19. Incremental development: slice vertically, not horizontally Source This is where developers unfamiliar with Agile freak out How do you develop a UI or a database in pieces? This seems like it would lead to a giant mess. Remember the iterative part - we can sketch out the overall design, but we build incrementally, fleshing out the details of what’s needed soon It is possible, it is practical, and there are a lot of people doing it. It's actually the opposite of messy hacking. Doing it well requires a very disciplined development process, and strong application design skills, as you are trying to maintain a solid application design while always being ready to adapt to change.
  • 20. The Agile Umbrella Source Agile is a mindset and a set of values. There are multiple methodologies that implement it. I’ll focus on the most popular one, Scrum
  • 22. Scrum has 3 roles ✤ Product owner ✤ Scrum master ✤ Self-organizing, cross-functional team
  • 23. Scrum role: Product Owner Responsible for what the team will work on, and setting priorities, but not how the work is done Responsible for what the team will work on, but not how the work is done Works closely with clients to understand their needs Gathers and writes business requirements in small pieces, called “user stories” Based on client needs, sets priorities for the team Does not have authority over technical design decisions Cannot tell an individual team member what to do A good Product Owner is: available, business-savvy, communicative, decisive, empowered
  • 24. Scrum role: Scrum Master A “servant-leader” for the team A “servant-leader” for the team - analogous to a physical trainer Can coach and evangelize, but not issue commands But does have authority over the Scrum process Removes obstacles for the team A good Scrum Master is: responsible, humble, collaborative, committed, influential, and knowledgeable
  • 25. The team: self-organizing and cross-functional Source Cross-functional team takes collective responsibility for estimating the work, and doing the work Doing it in the priority order they are asked to follow Keeping quality high by working together (inspecting each other's code, discussing best technical solutions, etc)
  • 26. So who’s the boss? Source Personnel management exists completely outside this structure. Works best in relatively “flat” organizations where people are given autonomy and achievable goals Antithetical to top-down, command and control hierarchies More on the this later
  • 27. Practice My experiences at U Penn
  • 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. 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. Mike: Why Agile? Why Scrum? ✤ Maintain frequent interactions with clients ✤ Enable planning ✤ Reduce risk ✤ Improve quality Maintain frequent interactions with clients - Provides quick feedback, Existing good relationships Enable planning - make commitments, and meet them, Reduce need for firefighting Reduce risk - Have more than one person know a project Improve Quality - Reduce misunderstandings, Reduce missed requirements, Have fewer bugs
  • 31. I expected our scrum adoption to look something like this... Source I read Mike Cohn’s book Succeeding with Agile: Software Development using Scrum I taught the team core scrum concepts, I explained the new process to clients A small team did a pilot project first, Then the whole group switched
  • 32. But it turned out like this... Source Team didn’t like it, and clients didn’t like it. It felt like just adding a new set of work and processes on top of the existing work
  • 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 Trainer But what was really going on was that it was bringing previously unrecognized and unarticulated problems to the surface
  • 34. So I brought in a Scrum coach Source A skilled external coach is often key for driving change - they bring a wide range of experience and can see things objectively If you’ve never led an Agile transition before, it’s surprisingly easy to do it wrong You need at least enough management support to pay the coach You need to make sure you’re bringing in someone good
  • 35. Problem #1: false start Source Throwing people together and calling them a team doesn’t make them a team - stepping on each other's toes in the code, not familiar with each others’ projects, some unwilling to share work I misunderstood the roles: - The clients were acting as their own product owners, The scrum masters were our former project managers, and continued doing traditional project management - I had several “scrum-buts” - aspects of our process where we didn't follow scrum and stuck to how we always had worked before
  • 36. Problem #2: too much work 9 developers, 2 product owners, and me supporting - 22 clients with 124 applications 3 designers and 1 product owner supporting - about 200 static content web sites Taking inventory itself was a huge undertaking
  • 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 expressed in a format called “user stories”) - People are bad at estimating time, but we're good at estimating relative size or difficulty - Team based estimates are more accurate than estimates by individuals
  • 38. Velocity enables scheduling and “sustainable pace” Source After a few sprints, our teams had velocities, which allowed us to make time estimates for projects. 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. Problem #3: task switching Source Context switching between two projects eats about 20% of a full-time worker’s schedule
  • 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 everyone who works for you miserable - I've found that misalignment of authority and responsibility can explain a lot of dysfunction that happens in organizations - When you have responsibility for your work but not enough authority over it, you will feel like a cog in machine
  • 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. 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. Practice My experiences at ElectNext
  • 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 team 1 CEO, 2 business developers, 1 product manager, 2 engineers Daily standup, weekly planning, but no longer range planning, no retrospectives and no specific agile roles
  • 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. Our daily standup Each part of the company has a separate section of the document - more detailed tracking is does separately
  • 47. References: overviews and product management ✤ “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. 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. References: Agile beyond software development ✤ 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. Any questions? Michael Toppa @mtoppa www.toppa.com 3/18/2013