richmond spin - how to sell a traditional client

51
Arin Sime [email protected] 434 996 5226 How to sell a traditional client on an Agile project plan

Upload: opensource-connections

Post on 11-May-2015

3.482 views

Category:

Technology


1 download

DESCRIPTION

After an introduction to the basic tenets of Agile and some Agile practices, this presentation to Richmond SPIN (Software Process Improvement Network) talks about ways to convince your organization or clients to use Agile software development practices. Based on a presentation given at Agile 2009 by Arin Sime, Senior Consultant with OpenSource Connections.

TRANSCRIPT

Page 1: Richmond Spin - How To Sell A Traditional Client

Arin Sime [email protected] 434 996 5226

How to sell a traditional client on an Agile project plan

Page 2: Richmond Spin - How To Sell A Traditional Client

• Background/Bio• Defining a “traditional” environment• Defining Agile• Why do we need to sell Agile?• Survey on Selling Agile• Strategies for persuasion• The importance of continuing to sell

the process throughout the project

Outline

Page 3: Richmond Spin - How To Sell A Traditional Client

A little about me...

Senior Consultant, OpenSource Connections Custom software development consulting for entrepreneurial, government, and military clients

Adjunct Instructor in a corporate software engineering program for Virginia Commonwealth University

Graduate student (M.S. in Management of I.T.) at the University of Virginia’s McIntire School of Commerce

Page 4: Richmond Spin - How To Sell A Traditional Client

Some of our clients...

Platforms and Languages

ASP .Net C C# Java

Linux MySQL Oracle PHP

Python Ruby Solaris SQL Server

Page 5: Richmond Spin - How To Sell A Traditional Client

What is a “traditional environment”?

“Plan Driven methods are generally considered the traditional way to develop software. Based on concepts drawn from the mainline engineering fields, these methods approach development in a

requirements/design/build paradigm with standard, well-defined processes that organizations improve continuously.”

Page 6: Richmond Spin - How To Sell A Traditional Client

What is Agile?

Manifesto for Agile Software DevelopmentWe are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

Individuals and interactions over processes and tools Working software over comprehensive documentation

Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.

AgileManifesto.org

Page 7: Richmond Spin - How To Sell A Traditional Client

What is Agile?

AgileManifesto.org

We follow these principles:

1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.

3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

4. Business people and developers must work together daily throughout the project.

5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.

6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation

7. Working software is the primary measure of progress.8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

9. Continuous attention to technical excellence and good design enhances agility.

10. Simplicity--the art of maximizing the amount of work not done--is essential.

11. The best architectures, requirements, and designs emerge from self-organizing teams.

12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Page 8: Richmond Spin - How To Sell A Traditional Client

Examples of Agile Practices

Test Driven Development (TDD)

Page 9: Richmond Spin - How To Sell A Traditional Client

Examples of Agile Practices

Continuous Integration (CI)

Page 10: Richmond Spin - How To Sell A Traditional Client

Examples of Agile Practices

Continuous Integration (CI)

Page 11: Richmond Spin - How To Sell A Traditional Client

Examples of Agile Practices

Scrum Burndowns

Page 12: Richmond Spin - How To Sell A Traditional Client

Examples of Agile Practices

Scrum Planning Poker

Page 13: Richmond Spin - How To Sell A Traditional Client

Examples of Agile Practices

Scrum Planning Poker

Page 14: Richmond Spin - How To Sell A Traditional Client

Examples of Agile Practices

Scrum with Range Estimates

Page 15: Richmond Spin - How To Sell A Traditional Client

Examples of Agile Practices

Daily Standups

Page 16: Richmond Spin - How To Sell A Traditional Client

Examples of Agile Practices

Lightweight Documentation only as you need it

Page 17: Richmond Spin - How To Sell A Traditional Client

Examples of Agile Practices

Lightweight Planning - and lots of Post It Notes

Page 18: Richmond Spin - How To Sell A Traditional Client

Examples of Agile Practices

Pair Programming

Page 19: Richmond Spin - How To Sell A Traditional Client

Iteration 0:Analysis, Charter & Design

Constant C3: Constant Collaboration, Communication, and Customer involvement

(stand ups, burndowns, wiki, issue tracking)

test

code

integrate

Goal

s

Plan

EstimationRanges

Demo &

Retrospectiv

eIterationLaunch

Iteration 1

3 weeks

Iteration N

3 weeks

Adjust BacklogPriorities,ReassessRisk

Transition andDocument

Continuous Integration of source code and testing (CI server, unit testing, functional/browser testing)Setup CI server, and test server

OpenApproach to software development

Project Retrospective

test

code

integrate

Goal

s

Plan

EstimationRanges

Demo &

Retrospectiv

eIterationLaunch

Core Principles of the OpenApproach

• High customer visibility into project status

• Full access to code repositories

• Full access to issue tracking tools

• Full visibility into Scrum burndown charts

• Customers participate in daily stand ups

• Risk factors managed with customer

• Collaborative estimation process

• Strong interaction with customers

• Customers help set iteration goals

• Demo to customer & retrospective at the end of each development iteration

• Customers can adjust priority of features after each iteration

• Co-location when possible

• Best practices in development

• Automated testing

• Continuous code integration

• Test driven development

• Iterative deployments

• Refactoring

• Pair programming/training

Page 20: Richmond Spin - How To Sell A Traditional Client

The Project Plan people are afraid of....

Page 21: Richmond Spin - How To Sell A Traditional Client

“Some kind of structure (or architecture) is imperative because decentralization without structure is chaos.”

- J.A. Zachman, 1987, “A framework for information systems architecture”

Why do we need to sell it?

Page 22: Richmond Spin - How To Sell A Traditional Client

Why do we need to sell it?

Page 23: Richmond Spin - How To Sell A Traditional Client

“The architect must convince the owner that the owner’s desires are understood well enough so that the owner will pay for the creative work to follow.”

We need to convince our clients that we understand their desires, and that Agile can substitute for most, if not all, of the up front documentation

More from Zachman...

Page 24: Richmond Spin - How To Sell A Traditional Client

Survey on “Selling Agile”

• Collected stories from a survey of fellow students and other colleagues

• How they have sold Agile or been sold on Agile.

http://www.tinyurl.com/SellingAgileSurvey/

Booz Allen HamiltonSAICCapitol OneInternational Monetary FundUS Air ForceAutoZoneQinetiQUS Department of JusticeFannie MaeFreddie MacAOLIBMManTechDepartment of Veterans AffairsUniversity of Virginia

Page 25: Richmond Spin - How To Sell A Traditional Client

Survey on “Selling Agile”

http://www.tinyurl.com/SellingAgileSurvey/

“Agile seems to carry the connotation of 'code-like-hell' or just, 'work faster'.”

comment from an IT consultant

“I am skeptical of any methods that that could be interpreted as ‘cutting corners’”

comment from a manager

Page 26: Richmond Spin - How To Sell A Traditional Client

Strategies for Persuasion

1. Trial by Sprint2. Case Studies of Success3. Client/Customer Testimonials4. Finding a champion in Key Stakeholders5. Using metrics of success6. Showing how Agile combats common IT project failures7. Examples of industry/government leaders using Agile8. Comparison to other methodologies9. Listen to their needs and address them10. Sneak it in11. Compromise12. Agile Project Management Office

Page 27: Richmond Spin - How To Sell A Traditional Client

“You need to show a success to get adoption.”comment from a program manager

Trial by Sprint#1

Page 28: Richmond Spin - How To Sell A Traditional Client

Trial by Sprint#1

“Trust me for two weeks. If you hate it, you can fire me.”

Dwight Gibbs, CTO at Legg Mason Capital Management, promising the Director of Research that if he didn’t see development team improvements after only one sprint, then they would abandon Agile.

Dwight Gibbs, Senior Vice President of Technology for INPUT, formerly the

CTO at Legg Mason CapitalManagement

“The sprint went well and we stayed with Scrum”

Page 29: Richmond Spin - How To Sell A Traditional Client

Case Studies in Success#2• Present case studies of Agile

success from your own client history

• Example burndowns

• Stories of benefits to teams

• Highlight how the process caught risks early, and addressed them

• Use graphics

• Present industry examples of Agile success

Links to Agile Case Studies can be found at: http://www.notesfromatooluser.com/2008/11/scrum-case-studies.html

Proposal Tip

Page 30: Richmond Spin - How To Sell A Traditional Client

“certainly one of the most successful projects ever here”

“Scrum helps me manage projects the way I wanted to anyways”

“Eliminated biases of what developers can do by letting them self-select”

“Complexity dictated we couldn’t know it all up front - we have to prototype.”

“Biggest gain from Scrum was just keeping the project going.”

“Got it done a lot better because team is well integrated. I didn’t have to plan who worked on what.”

Client Testimonials#3 Proposal Tip

Page 31: Richmond Spin - How To Sell A Traditional Client

“I don’t have to lord over people, no siddling over people with a coffee cup like in Office Space.”

Client Testimonials#3

Page 32: Richmond Spin - How To Sell A Traditional Client

“I highlighted the benefits to the Project Manager: higher productivity and less team-management stuff since the team will take care of lots of team-management and updating (burn charts) instead of PM's managing those details.” comment from a business analyst

Finding a Champion#4

Page 33: Richmond Spin - How To Sell A Traditional Client

• Identify Stakeholder most in need

• Address their needs with Agile

• Enlist their support in adoption

• Helps to already have a relationship

Finding a Champion#4

Page 34: Richmond Spin - How To Sell A Traditional Client

“The development team applies Agile. I think it is useful to obtain metrics and organize the work. From a business perspective, I have not seen the benefit.”

comment from a manager

Using Metrics of Success#5

Page 35: Richmond Spin - How To Sell A Traditional Client

• Show metrics in proposals and throughout your project.

• Show Burndowns over the course of the project

• Use test coverage/test success as a metric

• Velocity/Story points accomplished by your team

• Defects from issue tracking tools

• Shown here is an excerpt from a ThoughtWorks Project Manager's Status Report

http://www.forrester.com/Research/Document/0,7211,37380,00.html

Using Metrics of Success#5 Proposal Tip

Page 36: Richmond Spin - How To Sell A Traditional Client

“I created a presentation [showing] increased productivity, better risk management (through early detection), lower defect rates and enhanced team experience (which will translate to higher retention, less conflict management and more productive future projects).”

comment from a project lead

Show how Agile combats common IT failures#6

Page 37: Richmond Spin - How To Sell A Traditional Client

1. Poor estimation and scheduling

2. Ineffective stakeholder management

3. Insufficient risk management

4. Insufficient planning

5. Shortchanged quality assurance

6. Weak personnel and/or team issues

7. Insufficient project sponsorship

8. Poor requirements determination

9. Inattention to politics

10. Lack of user involvement

Source: Prof. R. Ryan Nelson, University of Virginia. As published in MIS Quarterly Executive, “IT Project Management: Infamous Failures, Classic Mistakes, and Best Practices”, June 2007

1. Poor estimation and scheduling

2. Ineffective stakeholder management

3. Insufficient risk management

4. Insufficient planning

5. Shortchanged quality assurance

6. Weak personnel and/or team issues

7. Insufficient project sponsorship

8. Poor requirements determination

9. Inattention to politics

10. Lack of user involvement

1. Poor estimation and scheduling

2. Ineffective stakeholder management

3. Insufficient risk management

4. Insufficient planning

5. Shortchanged quality assurance

6. Weak personnel and/or team issues

7. Insufficient project sponsorship

8. Poor requirements determination

9. Inattention to politics

10. Lack of user involvement

Classic Mistakes that can also arguably be mitigated

by Agile and Scrum (my addition)

Classic Mistakes that can be mitigated by Agile, as

identified in article

Top 10 Classic Mistakes

Show how Agile combats common IT failures#6 Proposal Tip

Page 38: Richmond Spin - How To Sell A Traditional Client

“Clients, especially the military, are wary of catch phrases and sometimes unwilling to change their habits.”

comment from an IT consultant

Examples of industry/government leaders using Agile#7

Page 39: Richmond Spin - How To Sell A Traditional Client

Jill SingerDeputy Chief Information Officer

Central Intelligence Agency

former VP for Project Management, SAIC

• CIA IT Projects follow this spiral lifecycle:

• Understand the mission• Establish the vision• Develop the architecture• Define plans• Resource plans• Execute plans• Measure progress

• But within that lifecycle, they use Scrum, primarily 4 week sprints

Examples of industry/government leaders using Agile#7Proposal Tip

Page 40: Richmond Spin - How To Sell A Traditional Client

• Benefits the CIA has seen with Scrum:

• Regular and tangible deliverables• Customer buy-in• Trying out prototypes• Users enjoy being able to add features

and change priorities with each iteration• If a project is late, users don’t mind as

much

• Challenges the CIA has run into:

• “What is Version 1.0?”

Jill SingerDeputy Chief Information Officer

Central Intelligence Agency

former VP for Project Management, SAIC

Examples of industry/government leaders using Agile#7

Page 41: Richmond Spin - How To Sell A Traditional Client

“I gave an overview of the Scrum process and highlighted the ease of transition since iterative/incremental development has been in practice for a long time (in other forms such as a spiral approach)” comment from a business analyst

Comparison to other methodologies#8

Page 42: Richmond Spin - How To Sell A Traditional Client

From “Scrum in 5 Minutes”, by Softhouse. Available at: www.softhouse.se/Uploades/Scrum_eng_webb.pdf

Comparison to other methodologies#8 Proposal Tip

Page 43: Richmond Spin - How To Sell A Traditional Client

“I am always skeptical of anything that promises it is the 'only' or the 'best' [methodology].”

comment from a development manager

Listen to their needs and address them#9

Page 44: Richmond Spin - How To Sell A Traditional Client

1. Spend a lot of time listening. Ask people what challenges they are facing in their projects.

2. Make mental notes of each challenge.

3. Turn those challenges around and use them to segue into something you wanted to talk about anyways. (ie, how Agile will solve those problems)

4. Customers appreciate that you are offering positive solutions to their problems instead of just pushing your ideas without listening to them first.

The Politics of Persuasion

Listen to their needs and address them#9

Page 45: Richmond Spin - How To Sell A Traditional Client

“Agile practices usually find their way into the Software Development Lifecycle even if they are not officially blessed.”

comment from an IT specialist

“I make sure I utilize agile practices where ever I can - I just don't use the agile terminology.”

comment from a technology program manager

Sneak it in#10

Page 46: Richmond Spin - How To Sell A Traditional Client

• Implement it piece by piece, without saying what you are doing.

• One idea: Start with iterations and demos, daily stand ups. PM’s love those.

• Then move to developer driven practices like sprint planning, XP, CI.

• Risky strategy? But can be used to overcome fear of the word Agile

Sneak it in#10

Page 47: Richmond Spin - How To Sell A Traditional Client

“The methodology that has worked in my experience has been to incrementally introduce Agile ... Start using a limited set of the practices and gradually start bringing in more.” comment from a senior consultant

Compromise#11

Page 48: Richmond Spin - How To Sell A Traditional Client

• Some clients will require checkboxes of all documentation they always ask everyone for. (I’m looking at you, Federal Government)

• Try to shift when those documents are due. Focus only on those that provide value up front, leave the rest till the end.

Compromise#11

Page 49: Richmond Spin - How To Sell A Traditional Client

• Provide an interface to your clients that translates your Agile metrics into regular reports for the client

• Takes compliance burden off your development team

• Serves as “Educator and Coach” to client

Agile Project Management Office#12 Proposal Tip

Page 50: Richmond Spin - How To Sell A Traditional Client

SELLINGAGILE

Never stop selling Agile.

When you’re in a project and it just saved you (ie, due to increased agility to changes),

let the client know why.

When things are going bad, point out how the increased visibility into the project at

least caught the problems earlier.

Page 51: Richmond Spin - How To Sell A Traditional Client

www.OpenSourceConnections.com/Blog/

[email protected]

434 996 5226

www.Twitter.com/ArinSime

Follow up....

Thanks for your time - Any Questions?