outsourcing with agile
DESCRIPTION
An overview of IT challenges and how Perficient China uses agile frameworks, methodologies, and practices to address these challenges and consistently deliver valued results to our clients.TRANSCRIPT
Outsourcing with Agile
April 2009
2
Agenda
Purpose and expected outcomes Ground rules About the presenter About Perficient Agile – concepts and methodologies The Perficient Enable-M Methodology How Agile concepts and methodologies address the
challenges that result in failed projects
3
Purpose and Outcomes
Purpose:– Familiarize you with:
• Perficient• Agile concepts and methodologies• Applying agile concepts to (outsourcing) projects• Introduce China GDC’s policy, procedure and benefits
Outcomes:– Know something about Perficient– Understand the challenges (outsourcing) projects face– Recognize key Agile concepts and methodologies– Describe how Agile can be applied to successfully deliver
outsourced projects
4
Ground Rules
Mute your cell phone
Participate – ask and answer questions
Do Don’t
5
About Me
Vernon Stinebaker (史文林)http://www.linkedin.com/in/vernonstinebaker– Director of Technology/Principal Architect– 20+ years software development and process experience
• CMMI, SDLC/waterfall, and agile methodologies– Certified ScrumMaster/Certified Scrum Practitioner– Founder of the open source FDDTools project
6
Perficient Vision & Mission
Vision– To be the preeminent information technology
management consultancy in the US.
Mission– Enable our clients to gain competitive
advantage by making their businesses more responsive to market opportunities and threats, strengthening relationships with customers, suppliers and partners, improving productivity and reducing information technology costs.
Tag Line– “Experts in delivering business-driven
technology solutions.”
7
2008 Fortune American Fastest Growth Companies – Winner
2008 IBM Lotus Distinguished Partner Award for North America – Winner
2007 IBM Information Management North American Distinguished Partner – Winner
2007 EMC Partner of Year – Winner 2007 EMC Select Services Team Partner of the
Year – Winner 2007 Business 2.0 100 Fastest Growing Tech
Companies — #6 2007 Fortune Small Business America’s Fastest-
Growing Small Public Businesses — #9 2007 Fortune 100 Fastest-Growing Companies —
#15
Recent Recognition & Awards
8
Fast Facts
Founded in 1997 Publicly traded (NASDAQ: PRFT) with ~$340
million in annual revenues 1,500 employees, 1,400+ certified business
and technology consultants Over 600 blue chip clients with 80% repeat
business rate Strong partnerships six of the major
vendors: IBM, Microsoft, TIBCO, Documentum, Oracle-Siebel and webMethods
20 locations in North America, Offshore Development Centers in Hangzhou and Macedonia and a technology consulting recruiting office in India
9
Our Business Groups & LocationsUS & Europe: 17 City NetworkAtlanta, Austin, Houston (2), Dallas, Denver, St. Louis (2), Chicago (2), Fairfax, Minneapolis, Philadelphia, New Orleans, Detroit, Columbus, Cincinnati, Indianapolis, San Francisco, Toronto
Global Delivery Centers: Macedonia & China Recruiting Facility: Indian
10
Retail/Franchise Telecommunications Consumer Goods
Manufacturing Energy
Financial Services Healthcare & Life Sciences
Our Customers
AgriBusiness
Insurance
11
About Perficient China
Perficient (Hangzhou) Co., Ltd. 博克软件(杭州)有限公司http://www.perficient.com– Established in 2004 as BoldTech Systems (Hangzhou) Co.,
Ltd.– WOFE of Perficient Inc. (NASAQ: PRFT)– Agile BoldDelivery Methodology (now Enable-M)– 2005 - CMMI 3– 2006 - CMMI 4– 2008- CMMI 5– 12 Agile Certified Project Managers (17 by mid-May)– 20+ projects successfully delivered– Currently running 12 concurrent projects
• Some multi-year• Some with large teams (@50)• Many repeat business
12
Challenges in IT
13
31% of projects are cancelled before they are completed
53% of projects cost over 189% of their original estimates
Only 16% of software projects are completed on-time and on-budget
7 out of 10 IT projects ‘fail’ in some respect
[The Chaos Report 1995/OASIG Study 1995]
Project Failure Statistics
14
Communication breakdowns Poor user input Stakeholder conflicts Vague requirements Poor cost and schedule estimations Hidden costs of going “lean and mean” Failure to plan Poor architecture Late failure warning signals Skills that do not match the job
[http://www.stsc.hill.af.mil/crosstalk/frames.asp?uri=1998/07/causes.asp]
Why Projects Fail
15
Outsourcing
How does Outsourcing – performing work in distributed locations, and often with people from different cultures, who speak different languages effect these challenges?
These challenges become even more acute!
16
How do we address these challenges?
Agile!
17
Agile Manifesto
18
Scrum eXtreme Programming (XP) FDD DSDM Crystal Perficient’s Enable-M …
But they share the same objectives -- those described in the Agile Manifesto
No “one” Agile
19
Modularity - Modularity allows a process to be broken into activities. Iterative - Things change. Short iterations allow us to adapt and
respond to change. Time-bound - Iterations are a perfect unit for planning the software
development project. Parsimony - Agile process focus on parsimony: they require the
minimum number of activities necessary to mitigate risks and achieve their goals.
Adaptive - The agile process adapts to attack new risks. Incremental - We don’t try to build the entire system at once. Instead
we partition it into increments which can be developed in parallel. Convergent - We actively attack all risks worth attacking. People Oriented - Agile processes favor people over process and
technology. People are empowered. Collaborative - Agile processes foster communication among team
members.
Frequent, Tangible, Working Results - Peter Coad
Characteristics of Agile
Miller, Granville G, “The Characteristics of Agile Software Processes”,http://faculty.salisbury.edu/~xswang/Research/Papers/SERelated/Agile/12510385.pdf
20
A brief introduction to Scrum
21
Scrum – A well known Agile framework
3 Roles– Product Owner– ScrumMaster– Team
3 Ceremonies– Sprint Planning– Daily Stand-up– Sprint Demo
3 Artifacts– Product Backlog– Sprint Backlog– Burn-down Charts
Simple, but not easy
22
Define the features of the product
Decide on release date and content
Be responsible for the profitability of the product (ROI)
Prioritize features according to market value
Adjust features and priority every iteration, as needed
Accept or reject work results
Thanks to Mountain Goat Software, LLC
Product Owner
23
Represents management to the project
Responsible for enacting Scrum values and practices
Removes impediments
Ensure that the team is fully functional and productive
Enable close cooperation across all roles and functions
Shield the team from external interferences
Thanks to Mountain Goat Software, LLC
ScrumMaster
24
Typically 5-9 people
Cross-functional:
Programmers, testers, user experience designers, etc.
Members should be full-time
May be exceptions (e.g., database administrator)
Teams are self-organizing
Ideally, no titles but rarely a possibility
Membership should change only between sprints
Thanks to Mountain Goat Software, LLC
The Team
25
Scrum projects make progress in a series of “sprints” Typical duration is 2–4 weeks or a calendar month at
most A constant duration leads to a better rhythm Product is designed, coded, and tested during the
sprint
Thanks to Mountain Goat Software, LLC
Sprints
26
Team selects items from the product backlog they can commit to completing
Sprint backlog is created
Tasks are identified and each is estimated (1-16 hours)
Collaboratively, not done alone by the ScrumMaster
High-level design is considered
As a vacation planner, I want to see photos of the hotels.
As a vacation planner, I want to see photos of the hotels.
Code the middle tier (8 hours)Code the user interface (4)Write test fixtures (4)Code the foo class (6)Update performance tests (4)
Thanks to Mountain Goat Software, LLC
Sprint Planning
27
These are not status for the ScrumMaster They are commitments in front of peers
What did you do yesterday?What did you do yesterday?11
What will you do today?What will you do today?22
Is anything in your way?Is anything in your way?33
Thanks to Mountain Goat Software, LLC
Daily Scrum
28
Team presents what it accomplished during the sprint
Typically takes the form of a demo of new features or underlying architecture
Informal
2-hour prep time rule
No slides
Whole team participates
Invite the world
Thanks to Mountain Goat Software, LLC
Sprint Demo
29
The requirements
A list of all desired work on the project
Ideally expressed such that each item has value to the users or customers of the product
Prioritized by the product owner
Reprioritized at the start of each sprint
Thanks to Mountain Goat Software, LLC
Product backlog
30
Individuals pull work of their own choosing
Work isn’t assigned
Any team member can add, delete or change tasks in the sprint backlog
Work for the sprint emerges
If work is unclear, define a task with a larger amount of time and break it down later
Update work remaining as more becomes known
Thanks to Mountain Goat Software, LLC
Sprint backlog
31
Hou
rs
Thanks to Mountain Goat Software, LLC
Burndown chart
32
Perficient’s Enable-M Methodology
33
Based on XP Kent Beck was a consultant on initial implementation Considers Scrum and other Agile frameworks,
methodologies, and practices Enhanced to support multi-sourcing projects Additional rigor as required
by clients to satisfy CMMI Level 5 practices
Enable-M
34
Communication breakdowns Poor user input Stakeholder conflicts Vague requirements Poor cost and schedule estimations Hidden costs of going “lean and mean” Failure to plan Poor architecture Late failure warning signals Skills that do not match the job
[http://www.stsc.hill.af.mil/crosstalk/frames.asp?uri=1998/07/causes.asp]
Remember: why projects fail
35
How are the challenges addressed through Agile?
36
Co-location Daily stand up Transparency “Team” Test-driven Requirements Defining “done”
Communication Break-downs
37
Demos Retrospectives Agile state of mind - embrace change Iterative development
Poor user input
38
“ Team”– Chickens and Pigs
Product Owner Backlog management Iterative development
Stakeholder Conflicts
39
Iterative development Demos of potentially shippable products Embracing change
Vague Requirements
40
Backlog estimates Sprint planning Velocity Sprints Inspect/adapt
Poor Cost and Schedule Estimates
41
Transparency Burn-down charts Demos of potentially shippable products at the
end of each iteration
Hidden costs of going ‘lean and mean’
42
Backlog management Sprint planning Burn-down charts
Failure to plan
43
Agile Modeling Simple/Iterative design (borrowed from XP)
– YAGNI (you ain’t gonna need it)
Poor architecture
44
Sprints Burn-down charts Potentially shippable product Commitment and “done” Transparency
Late failure warning signals
45
Pull-based task management Cross-functional teams
Skills that do not match the job
46
This works great in a single environment, with small and capable teams, but can it work in
geographically distributed teams?
47
Some answers can be found in a report delivered at the Agile 2006 International Conference
Distributed Scrum: Agile Project Management with Outsourced Development TeamsAgile 2006 International ConferenceJeff Sutherland, Anton Viktorov, Jack Blount
They advocate:– Cross functional teams that are relatively
autonomous– Daily Scrum meetings help break down cultural
barriers and disparities in work styles– Scrum-of-Scrums where ScrumMasters meet
regularly (from all locations)
Distributed teams best practices
48
Daily Scrum meetings of all developers from multiple sites
Daily meeting of Product Owner Team Frequent, automated builds from a single
repository No distinction between developers at different
sites on the same team Seamless integration of XP practices
Distributed teams best practices (continued)
49
Again, some best practices many not be available in all environments
– No common, overlapping time zone to conduct daily Scrum meetings
– Different geographic locations represent specializations (such as testing as an independent function)
But…
50
Try to retain as many of the ‘out of the box’ Agile practices as possible without change
– Conduct daily Scrums with all members if there is time zone overlap (compromise if no overlap but some groups are willing to come early or stay late)
– Look at alternatives if no overlap can be found• Record and share daily Scrum meetings• Use project Wiki for to provide public daily updates• Use Issue tracking systems to enter and track issues
Inspect and adapt
51
Some activities must be performed as a group– Backlog review– Sprint planning
Scrum-of-Scrums (ScrumMaster meeting) must take place every day
Continuous Integration – Daily build should be shared – Common repository is essential
Inspect and adapt (continued)
52
Scrum requires cross-functional teams– Cross-functional is
• The team has all capabilities required to complete work• The team will have different levels of skill and different
strengths
Scrum encourages that all team members be willing to take on any task; the objective is to move the ball down the field and score
Distributed team composition
53
What are the most important Agile characteristics required for a successful project?
54
Great people!
55
Delivery!
Delivering a “potentially shippable product” every Sprint!
56
Quality
TDD – Test Driven Development
57
Does it work?
Yes!
20+ satisfied clients, many with repeat business can’t be wrong.
58
Q&A