Holistic Product Development

Post on 17-Jan-2015

990 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

In the world of agile, there is theory and then there is practice. We like to talk about self-organizing teams, asynchronous execution, BDD, TDD, and emergent architecture. We also talk about cross-functional teams: how analysts, testers, architects, technical writers, and UX designers belong on the same team, right next to programmers. It all sounds nice in theory, but how does this work in reality? What do these people actually do? How do they interact? What does it look like? Is there really a pragmatic way to make this work? In this simulation, a cross-functional team will actually build a piece of software. Every specialist will have a hand in the process. Every specialist will also act as a generalist. Everyone will add value. And as a team, we’ll get something DONE. This is your opportunity to see agile development in practice, and to bridge the gap between what agilists say and what teams do. And it’s not as new or as difficult as you think – affinity between testers, BA’s, coders, and other team members has really been at the root of effective development practices all along. Let’s just finally acknowledge that it works, demonstrate its capabilities, and encourage it going forward. This IS agile development.

Transcript

Cross-Functional Teams + Emergent Design = Holistic Product Development

Gary Pedretti, Erik Weber, Pradeepa Narayanaswamy, Dan Piessens

Who are we? Gary Pedretti• Solutions Manager in Centare’s Agile Practice• 15 years in the software industry with highly cross-functional

experience – DBA, Developer, BA, Application Architect• Scrum: Development Team member, Scrum Master, Coach,

Certified Scrum Trainer for Scrum.org• http://blog.GaryPedretti.com/ • Twitter: @GaryPedretti• http://www.linkedin.com/in/garypedretti • MCPD 4.0 Web, MCTS 4.0 WCF/Web/Data Access, MCDBA MSSQL 2000, PSM, PSD .NET, PSD Java, CSM, MCPD 3.5 ASP.NET, MCTS 3.5 WCF/ASP.NET/ADO.NET, MCTS SharePoint 2003

Infrastructure, MCPD 2.0 Enterprise, MCTS 2.0 Distributed/Web/Windows, MCSD 1.1, MCAD 1.1, MOUS

Who are we? Erik Weber

• Solutions Manager in Centare’s Agile Practice• Healthcare, Finance, Green Energy• Huge Conglomerates, Small Employee Owned, Fortune 500 • Scrum Coach & Trainer for Scrum.org• Passionate about Agile• Twitter: @ErikJWeber

Who are we? Pradeepa Narayanaswamy

• Senior Consultant in Centare’s Agile Practice• 12 years in the software industry: Programmer, Analyst, Web

Designer, Tester, QAT Lead, Agile Consultant, etc.• Extremely passionate about Agile• Specialized in Agile Testing• LinkedIn: www.linkedin.com/in/pradeepanarayanaswamy/• Twitter: @nPradeepa

Who are we? Dan Piessens

• Staff Consultant for Centare• Over 12 years of development experience developing and

designing software in agile teams• Microsoft Patterns & Practices Champion 2008 through 2013• Twitter: @dpiessens

THE VISION OF AGILE SOFTWARE DEVELOPMENT

Working Software ASAP, Cross-Functional Teams, Emergence

What is Agility?ag·ile \ˈa-jəl, -ˌjī(-ə)l\ adjective

• 1: marked by ready ability to move with quick easy grace <an agile dancer>

• 2: having a quick resourceful and adaptable character <an agile mind>

Synonyms: graceful, featly, feline, gracile, light, light-footed (also light-foot), lightsome, lissome (also lissom), lithe, lithesome, nimble, spry

http://www.merriam-webster.com/dictionary/agile

What is Agility in Software Development?

A group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change.

http://en.wikipedia.org/wiki/Agile_software_development

Welcome to 1999!

The Gold Standard – Working Software ASAP

• Allows for faster feedback from real end users, and the ability to respond to that feedback

• Aligns with businesses’ concerns– They never cared about “done but not tested”– Must be able to deliver value, earn revenue, etc.

• Eliminates the “80% done” phenomenon– You’re never sure you’re done until you are done

Agile Manifesto• “Working software over comprehensive

documentation”

The Gold Standard – Working Software ASAP

The 12 Principles Behind the Manifesto• “Working software is the primary measure of

progress”• “Early and continuous delivery of valuable

software”• “Deliver working software frequently”

The Gold Standard – Working Software ASAP

The Gold Standard – How? Slices, Not LayersLayers = delayed value Slices = value every Sprint

© 1993 - 2013 Scrum.org, All Rights Reserved

What Follows? Cross-Functional Teams

• Whatever skills necessary to complete a slice• Coders and testers working together• But also: BAs, UI Designers, UX, Technical

Writers, Ops/Infrastructure, DevOps, etc. – all working together

Cross-Functional Teams

Agile Manifesto• Individuals and interactions over processes

and tools

Cross-Functional Teams

The 12 Principles Behind the Manifesto• “Business people and developers must work

together daily throughout the project.”

Cross-Functional Teams – How?• An attitude of optimizing for throughput (working

software), not capacity (keeping everyone busy in their specialty)

• Culture of learning and sharing – moving towards “generalizing specialists”

• Attitude: “Whatever it takes to get this done”• Group ownership of product, work, and “done”

What Else Follows? Emergence• Admitting that you cannot or will not have all

of the requirements up front means that you will learn things along the way

• Requirements, Architecture, UI Design, Tests, Documentation – all can emerge

Emergence

Agile Manifesto• “Responding to change over following a plan”

Emergence

The 12 Principles Behind the Manifesto• “Welcome changing requirements, even late

in development”• “The best architectures, requirements, and

designs emerge from self-organizing teams.”

Emergence – How?• An Iteration != Mini-Waterfall• Asynchronous execution of all development

tasks – no more sequential, phase-gated steps• Each activity is encouraged to inform the others– Testing informs coding, coding informs architecture,

analysis informs testing, etc.

Scrum.org PSF Course• Non Sequential execution is key• Everyone pitches in regardless of

individual skill specialty• The Development Team is held to account as a

unit

RequirementsDesignCodeTest

© 1993 - 2013 Scrum.org, All Rights Reserved

To Do: Validate Credit Card NumbersI want customers’ credit card numbers to be validated so that they don't have any surprises when ordering products.

• We accept MasterCard, Visa, and American Express• Should validate length of number as 15 digits • Should validate prefix of number• This validation should be reusable from other applications

THE TEAM DEMONSTRATION

Observations?

Observations?

• The team delivered something “done” and shippable!!!• Requirements changed – sometimes they are wrong! Gasp!• New requirements were discovered – but thin-slicing and time

pressure resulted in many of them (including the Luhn algorithm) going to the “To Do” list

• Time pressure forces people to navigate the grey areas to some reasonable middle ground– Negotiating requirements – “reusable from other applications” requirement

was negotiated away from a service, and to something that could be harvested later

– Amount of testing that is reasonable – thinking of testing as risk management

Observations?

Practices:• Emergent Design/Architecture• TDD• BDD Tools (sorry Liz), ATDD (SpecFlow, Gherkin)• Swarming/Pairing – pairing across specialties• Structuring for Testing Pyramid

This Happens Without “Role Playing”

• Two-minute video…

HOW ABOUT SOME “WHY?”Enough with the What and the How

The Gold Standard – Working Software ASAP – Why?

• Fast Feedback– Opportunity to respond– Validate assumptions, requirements, value – validate learning

• Aligns with business and fosters trust– Delivers value– Earns revenue

• Sets an expectation for a single understanding of “done”

Cross-Functional Teams – Why?

• It’s how we get to working software, ASAP• Systems Thinking and optimizing for

throughput, not capacity

Emergence – Why?• Requirements will never be– known completely– expressed well– up-to-date

• “Requirements = Assumptions” – Jeff Gothelf• We know that we will always learn things along

the way

Emergence – Why?• If you like predictive project plans, I have a guy

for you…

Winston Royce Told Us This Was Crazy in 1970!!

Managing the Development of Large Software Systems – Dr. Winston W. Royce

And He Told Us This Is Still “Risky and Invites Failure”!!!

Managing the Development of Large Software Systems – Dr. Winston W. Royce

And He Said Reality Looked More Like This

Managing the Development of Large Software Systems – Dr. Winston W. Royce

CALL TO ACTIONDo this today!

Let’s Walk It Backwards This Time

• Expect, allow, and foster Emergence• Build Cross-Functional Teams• Get Working Software ASAP

Expect, Allow, and Foster Emergence• Communication with the business, requirements, testing, domain

knowledge – learn about Behavior Driven Development (BDD) – Liz Keogh http://lizkeogh.com/

• Architecture and modeling - http://www.agilemodeling.com/ • User Experience (UX) – Lean UX byJeff Gothelf• Automated deployment, CD, DevOps, “Production Hygiene” – The Phoenix Projectby Gene Kim

Build Cross-Functional Teams• You’re not pulling people away from their boss or

department to put them in “your area”• You’re suggesting the company build teams horizontally

across departments, not vertically within departments• Focus on “Competencies, not Roles” – Jeff Gothelf• Just encourage things we already did anyway (Tester <-

> BA and Architect <-> Coder connections, etc.)

Build Cross-Functional Teams

…at least don’t be a Jerk

Complete Cross-FunctionalityAll GeneralistsPure Teamwork

Condescending Jerks

Get Working Software ASAP• Challenge yourselves – it can be done…in 30 Days or Less

• Get cross-functional training for patternsand practices

Get Working Software ASAP• What will the challenges be in your

organization?

• Questions?

top related