richmond spin - how to sell a traditional client
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
Arin Sime [email protected] 434 996 5226
How to sell a traditional client on an Agile project plan
• 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
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
Some of our clients...
Platforms and Languages
ASP .Net C C# Java
Linux MySQL Oracle PHP
Python Ruby Solaris SQL Server
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.”
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
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.
Examples of Agile Practices
Test Driven Development (TDD)
Examples of Agile Practices
Continuous Integration (CI)
Examples of Agile Practices
Continuous Integration (CI)
Examples of Agile Practices
Scrum Burndowns
Examples of Agile Practices
Scrum Planning Poker
Examples of Agile Practices
Scrum Planning Poker
Examples of Agile Practices
Scrum with Range Estimates
Examples of Agile Practices
Daily Standups
Examples of Agile Practices
Lightweight Documentation only as you need it
Examples of Agile Practices
Lightweight Planning - and lots of Post It Notes
Examples of Agile Practices
Pair Programming
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
The Project Plan people are afraid of....
“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?
Why do we need to sell it?
“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...
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
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
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
“You need to show a success to get adoption.”comment from a program manager
Trial by Sprint#1
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”
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
“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
“I don’t have to lord over people, no siddling over people with a coffee cup like in Office Space.”
Client Testimonials#3
“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
• 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
“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
• 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
“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
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
“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
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
• 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
“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
From “Scrum in 5 Minutes”, by Softhouse. Available at: www.softhouse.se/Uploades/Scrum_eng_webb.pdf
Comparison to other methodologies#8 Proposal Tip
“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
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
“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
• 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
“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
• 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
• 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
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.
www.OpenSourceConnections.com/Blog/
434 996 5226
www.Twitter.com/ArinSime
Follow up....
Thanks for your time - Any Questions?