Date post: | 13-Apr-2017 |
Category: |
Technology |
Upload: | vernon-stinebaker |
View: | 1,817 times |
Download: | 0 times |
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