essential elements of distributed agile

Post on 13-Apr-2017

1.819 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Essential Elements of Distributed Agile

November 18, 2009

2

Agenda

Purpose and expected outcomes About the presenter About Perficient Agile – concepts and methodologies 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• Successfully applying agile concepts to distributed projects

Outcomes:– Recognize the challenges (distributed) projects face– Gain familiarity with key agile concepts and methodologies– Understand how agile principles and associated tools can

be applied to deliver successful projects in a distributed environment

4

Thank you

Special note of thanks to Mr. Bill Li - UPerform

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– Almost 10 years agile experience– Certified ScrumMaster/Certified Scrum Practitioner– Founder of the open source FDDTools project

6

Perficient Fast Facts Founded in 1997 Publicly traded (NASDAQ: PRFT) with @$240

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

7

2009 IBM Information Agenda Partner of the Year 2009 Forbes 200 Best Small Companies in America 2008 Fortune American Fastest Growth Companies 2008 IBM Lotus Distinguished Partner Award for

North America 2007 IBM Information Management North American

Distinguished Partner 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

Perficient Recent Recognition & Awards

8

About Perficient China

Perficient (Hangzhou) Co., Ltd. 博克软件(杭州)有限公司http://www.perficient.com– Established 2004 as BoldTech Systems (Hangzhou) Co., Ltd.– WOFE of Perficient Inc. (NASAQ: PRFT)– Agile Enable-M Methodology– 2008 - CMMI 5– 20 Agile Certified Project Managers– 20+ projects successfully delivered– Currently running 17 concurrent projects

• Some multi-year• Some with large teams (@50)• Many repeat business

9

32% of projects are successful (on time, on budget) 44% of projects are challenged (late, over budget) 24% of project fail (cancelled or never used)

[The Chaos Report 2009]

Project Failure Statistics

10

Lack of User Input Requirements & Specifications Lack of Executive Support Technology Issues Unrealistic Expectations or Time Frames Unclear Objectives

[Abridged list from the Standish Group – Chaos Report - 2005]

Why Projects Fail

11

Distributed Agile

How does performing work in distributed locations effect these challenges?

They become even more acute!

12

How do we address these challenges?

Agile!

13

Agile Manifesto

14

Agile Manifesto Principles Our highest priority is to satisfy the customer through early and continuous

delivery of valuable software. Welcome changing requirements, even late in development. Agile processes

harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of

months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project. Build projects around motivated individuals. Give them the environment and

support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a

development team is face-to-face conversation. Working software is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and

users should be able to maintain a constant pace indefinitely. Continuous attention to technical excellence and good design enhances agility. Simplicity -- the art of maximizing the amount of work not done -- is essential. The best architectures, requirements, and designs emerge from self-

organizing teams. At regular intervals, the team reflects on how to become more effective, then

tunes and adjusts its behavior accordingly.

15

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

16

Perficient’s Enable-M Methodology

17

Initially based on XP Kent Beck was a consultant on initial implementation Scrum and other agile frameworks, methodologies,

and practices incorporated Enhanced to support distributed projects Additional rigor as required

by clients to satisfy CMMI Level 5 practices

Enable-M

18

Lack of User Input Requirements & Specifications Issues Lack of Executive Support Technology Issues Unrealistic Expectations or Time Frames Unclear Objectives

[Abridged list from the Standish Group – Chaos Report - 2005]

Why Projects Fail

19

How do we use agile to address these issues?

20

On-site Customer Dedicated Project/Product Owner Collaboration/Communication

– Onshore/offshore Test-driven Requirements

– Preferably customer developed acceptance tests(but not all that common)

Daily Stand-up Meetings Daily e-communications Iterative delivery DEMO!!!!

Lack of User Input

21

Tools– Project Wiki’s– Audio/video conferencing

(recording when appropriate) Web conference

– Live DEMO!!!

Lack of User Input

22

Test Driven Requirements– INVEST

Iterative development producing “Frequent, tangible, working results” (aka “Potentially Shippable Product) every iteration – coupled with demo

Iterative requirement discovery Embrace change (No scope creep) Onshore Business Analysts

– No ‘over the wall’ projects Demo, Demo, Demo

Requirements & Specifications Issues

23

Tools– Low-fidelity (planning board, burn-down charts)– High-fidelity

• GreenHopper• JIRA• Internal requirements coverage tool

– Integrated with CI process Communications

Requirements & Specifications Issues

24

Lack of Executive Support

Communications– Planned communications

• Clear communications channels• Clear escalation paths and procedures

– Weekly Project Management Office Report• Green, Yellow, Red

Tools– Wiki– Big, visible charts

Demos

25

Technology Issues

Build a solid foundation in advance Just-in-time training

– Initial travel onsite (one location or the other) to bring team up-to-speed

Clear support channels Building and leveraging outstanding partnerships

26

Unrealistic Expectations or Time Frames

Collaborative planning– Client participates in planning process– Agile ‘planning poker’ process when possible– Team commits to schedule – commitment driven iterations

Knowing to say No– Factoring in quality– Support from historical data

Transparency and Trust– Initial on-site work, especially with new clients

27

Unclear Objectives

(Limited) Up-front Requirements analysis and Design– Big picture view

Test Driven Work Embracing change

– Detailed objectives may change with time Inspect and Adapt

– Provide frequent opportunities to make minor course adjustments

28

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 stand-up meetings help break down cultural

barriers and disparities in work styles– Scrum-of-Scrums where team representatives

meet regularly (from all locations)

Distributed teams best practices

29

Daily meetings of all developers from multiple sites

Augmented e-communications (Wiki, recordings, web-conferences, etc.)

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)

30

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

31

Great people!

32

Communication

33

Quality

Test Driven RequirementsTest Driven Development

Automated/CI integrated Unit and Functional Testing

34

Delivery!

Delivering “Frequent, tangible, working results” every iteration.

35

Does it work?

Yes!

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

36

Q&A

top related