SlideShare una empresa de Scribd logo
1 de 50
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

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 mikedep01
 
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 WorksRazorleaf Corporation
 
Agile Roles & responsibilities
Agile Roles & responsibilitiesAgile Roles & responsibilities
Agile Roles & responsibilitiesRavi Tadwalkar
 
Introducing Agile Methodologies
Introducing Agile MethodologiesIntroducing Agile Methodologies
Introducing Agile MethodologiesStfalcon Meetups
 
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 BBCRafiq Gemmail
 
Agile Truths and Misconceptions
Agile Truths and MisconceptionsAgile Truths and Misconceptions
Agile Truths and MisconceptionsRichard Cheng
 
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 ClientOpenSource Connections
 
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?activelylazy
 
Lean and Kanban-based Software Development
Lean and Kanban-based Software DevelopmentLean and Kanban-based Software Development
Lean and Kanban-based Software DevelopmentTathagat Varma
 
Why Does Agile Work?
Why Does Agile Work?Why Does Agile Work?
Why Does Agile Work?Matthew Caine
 
Project_Estimation
Project_EstimationProject_Estimation
Project_EstimationNaeem Bari
 
Mqug2015 july richard whyte
Mqug2015 july richard whyteMqug2015 july richard whyte
Mqug2015 july richard whyteRichard Whyte
 
Intro to Lean Software Development
Intro to Lean Software DevelopmentIntro to Lean Software Development
Intro to Lean Software Developmentgcaprio
 
Xanpan extended presentation
Xanpan extended presentationXanpan extended presentation
Xanpan extended presentationallan kelly
 
Starting a new project using Scrum
Starting a new project using ScrumStarting a new project using Scrum
Starting a new project using ScrumCraig Brown
 
Modern agile overview
Modern agile overviewModern agile overview
Modern agile overviewSteve Purkis
 

La actualidad más candente (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
 

Similar a A real-life overview of Agile workflow practices

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 practicesmtoppa
 
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 AgileNitor
 
Agile - Product is Progress.
Agile - Product is Progress.Agile - Product is Progress.
Agile - Product is Progress.Brian Dreyer
 
Scrum 18 months later
Scrum 18 months laterScrum 18 months later
Scrum 18 months laterCraig Brown
 
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 slideshareYuval Yeret
 
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 DesignersTorranceLearning
 
LEAN: Dream Maker Developments
LEAN: Dream Maker DevelopmentsLEAN: Dream Maker Developments
LEAN: Dream Maker DevelopmentsVadim Davydov
 
Вадим Давидов та Людмила Гребенюк “LEAN: Dream Maker Developments” Kharkiv Pr...
Вадим Давидов та Людмила Гребенюк “LEAN: Dream Maker Developments” Kharkiv Pr...Вадим Давидов та Людмила Гребенюк “LEAN: Dream Maker Developments” Kharkiv Pr...
Вадим Давидов та Людмила Гребенюк “LEAN: Dream Maker Developments” Kharkiv Pr...Lviv Startup Club
 
Introduction to Agile & scrum
Introduction to Agile & scrumIntroduction to Agile & scrum
Introduction to Agile & scrumElad Sofer
 
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 WorksChoong Ping Teo
 
Introduction to Agile Values & Principles
Introduction to Agile Values & PrinciplesIntroduction to Agile Values & Principles
Introduction to Agile Values & PrinciplesAndreea Visanoiu
 
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...Adrian Jones
 
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 DevelopmentJawdatTI
 
Agile & SCRUM
Agile & SCRUMAgile & SCRUM
Agile & SCRUMejlp12
 
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&DTorranceLearning
 
Tom - Scrum
Tom - ScrumTom - Scrum
Tom - Scrumd0nn9n
 

Similar a 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
LEAN: Dream Maker DevelopmentsLEAN: Dream Maker Developments
LEAN: Dream Maker Developments
 
Вадим Давидов та Людмила Гребенюк “LEAN: Dream Maker Developments” Kharkiv Pr...
Вадим Давидов та Людмила Гребенюк “LEAN: Dream Maker Developments” Kharkiv Pr...Вадим Давидов та Людмила Гребенюк “LEAN: Dream Maker Developments” Kharkiv Pr...
Вадим Давидов та Людмила Гребенюк “LEAN: Dream Maker Developments” Kharkiv Pr...
 
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
 

Más de mtoppa

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 againmtoppa
 
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 Waymtoppa
 
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 workmtoppa
 
Talking to strangers causes train wrecks
Talking to strangers causes train wrecksTalking to strangers causes train wrecks
Talking to strangers causes train wrecksmtoppa
 
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...mtoppa
 
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 developersmtoppa
 
WordCamp US: Clean Code
WordCamp US: Clean CodeWordCamp US: Clean Code
WordCamp US: Clean Codemtoppa
 
Dependency Injection for PHP
Dependency Injection for PHPDependency Injection for PHP
Dependency Injection for PHPmtoppa
 
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 Consultantsmtoppa
 
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 Consultantsmtoppa
 
Rails testing: factories or fixtures?
Rails testing: factories or fixtures?Rails testing: factories or fixtures?
Rails testing: factories or fixtures?mtoppa
 
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?mtoppa
 
WordCamp Nashville: Clean Code for WordPress
WordCamp Nashville: Clean Code for WordPressWordCamp Nashville: Clean Code for WordPress
WordCamp Nashville: Clean Code for WordPressmtoppa
 
Why Agile? Why Now?
Why Agile? Why Now?Why Agile? Why Now?
Why Agile? Why Now?mtoppa
 
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 Developmentmtoppa
 
Dependency Injection for Wordpress
Dependency Injection for WordpressDependency Injection for Wordpress
Dependency Injection for Wordpressmtoppa
 
Clean code for WordPress
Clean code for WordPressClean code for WordPress
Clean code for WordPressmtoppa
 
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 PHPmtoppa
 
Why Do Planes Crash?
Why Do Planes Crash?Why Do Planes Crash?
Why Do Planes Crash?mtoppa
 
Why Scrum Why Now
Why Scrum Why NowWhy Scrum Why Now
Why Scrum Why Nowmtoppa
 

Más 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
 

Último

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
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...apidays
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
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...Miguel Araújo
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 

Último (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
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...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
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...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 

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