outsourcing with agile

58
Outsourcing with Agile April 2009

Upload: vernon-stinebaker

Post on 11-May-2015

1.707 views

Category:

Technology


0 download

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

Page 1: Outsourcing With Agile

Outsourcing with Agile

April 2009

Page 2: Outsourcing With Agile

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

Page 3: Outsourcing With Agile

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

Page 4: Outsourcing With Agile

4

Ground Rules

Mute your cell phone

Participate – ask and answer questions

Do Don’t

Page 5: Outsourcing With Agile

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

Page 6: Outsourcing With Agile

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.”

Page 7: Outsourcing With Agile

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

Page 8: Outsourcing With Agile

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

Page 9: Outsourcing With Agile

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

Page 10: Outsourcing With Agile

10

Retail/Franchise Telecommunications Consumer Goods

Manufacturing Energy

Financial Services Healthcare & Life Sciences

Our Customers

AgriBusiness

Insurance

Page 11: Outsourcing With Agile

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

Page 12: Outsourcing With Agile

12

Challenges in IT

Page 13: Outsourcing With Agile

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

Page 14: Outsourcing With Agile

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

Page 15: Outsourcing With Agile

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!

Page 16: Outsourcing With Agile

16

How do we address these challenges?

Agile!

Page 17: Outsourcing With Agile

17

Agile Manifesto

Page 18: Outsourcing With Agile

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

Page 19: Outsourcing With 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

Page 20: Outsourcing With Agile

20

A brief introduction to Scrum

Page 21: Outsourcing With Agile

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

Page 22: Outsourcing With Agile

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

Page 23: Outsourcing With Agile

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

Page 24: Outsourcing With Agile

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

Page 25: Outsourcing With Agile

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

Page 26: Outsourcing With Agile

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

Page 27: Outsourcing With Agile

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

Page 28: Outsourcing With Agile

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

Page 29: Outsourcing With Agile

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

Page 30: Outsourcing With Agile

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

Page 31: Outsourcing With Agile

31

Hou

rs

Thanks to Mountain Goat Software, LLC

Burndown chart

Page 32: Outsourcing With Agile

32

Perficient’s Enable-M Methodology

Page 33: Outsourcing With Agile

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

Page 34: Outsourcing With Agile

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

Page 35: Outsourcing With Agile

35

How are the challenges addressed through Agile?

Page 36: Outsourcing With Agile

36

Co-location Daily stand up Transparency “Team” Test-driven Requirements Defining “done”

Communication Break-downs

Page 37: Outsourcing With Agile

37

Demos Retrospectives Agile state of mind - embrace change Iterative development

Poor user input

Page 38: Outsourcing With Agile

38

“ Team”– Chickens and Pigs

Product Owner Backlog management Iterative development

Stakeholder Conflicts

Page 39: Outsourcing With Agile

39

Iterative development Demos of potentially shippable products Embracing change

Vague Requirements

Page 40: Outsourcing With Agile

40

Backlog estimates Sprint planning Velocity Sprints Inspect/adapt

Poor Cost and Schedule Estimates

Page 41: Outsourcing With Agile

41

Transparency Burn-down charts Demos of potentially shippable products at the

end of each iteration

Hidden costs of going ‘lean and mean’

Page 42: Outsourcing With Agile

42

Backlog management Sprint planning Burn-down charts

Failure to plan

Page 43: Outsourcing With Agile

43

Agile Modeling Simple/Iterative design (borrowed from XP)

– YAGNI (you ain’t gonna need it)

Poor architecture

Page 44: Outsourcing With Agile

44

Sprints Burn-down charts Potentially shippable product Commitment and “done” Transparency

Late failure warning signals

Page 45: Outsourcing With Agile

45

Pull-based task management Cross-functional teams

Skills that do not match the job

Page 46: Outsourcing With Agile

46

This works great in a single environment, with small and capable teams, but can it work in

geographically distributed teams?

Page 47: Outsourcing With Agile

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

Page 48: Outsourcing With Agile

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)

Page 49: Outsourcing With Agile

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…

Page 50: Outsourcing With Agile

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

Page 51: Outsourcing With Agile

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)

Page 52: Outsourcing With Agile

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

Page 53: Outsourcing With Agile

53

What are the most important Agile characteristics required for a successful project?

Page 54: Outsourcing With Agile

54

Great people!

Page 55: Outsourcing With Agile

55

Delivery!

Delivering a “potentially shippable product” every Sprint!

Page 56: Outsourcing With Agile

56

Quality

TDD – Test Driven Development

Page 57: Outsourcing With Agile

57

Does it work?

Yes!

20+ satisfied clients, many with repeat business can’t be wrong.

Page 58: Outsourcing With Agile

58

Q&A