Scaling Down Large Projects to Meet the Agile Sweet Spot



Similar documents
Software Engineering

How To Understand The Limitations Of An Agile Software Development

Software Development Life Cycle (SDLC)

On Software Architecture, Agile Development, Value and Cost

Software Life Cycles and Configuration Management

Singhania University, Jhunjhunu, Rajasthan, India. 2 Department of Information Technology King Abdul Aziz University, Jeddah, Saudi Arabia

A Rational Development Process

Classical Software Life Cycle Models

Software processes that are:

CS4507 Advanced Software Engineering

How To Understand The Software Process

Hamid Faridani March 2011

A Capability Maturity Model (CMM)

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

COMP 354 Introduction to Software Engineering

Software Development with Agile Methods

Supporting Workflow Overview. CSC532 Fall06

Applying Lean on Agile Scrum Development Methodology

The most suitable system methodology for the proposed system is drawn out.

Software Quality Assurance in Agile, XP, Waterfall and Spiral A Comparative Study

Iterative Project Management 1

Software Project Management using an Iterative Lifecycle Model

Agile Software Development and Service Science

CSE 435 Software Engineering. Sept 16, 2015

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Comparing Agile Software Processes Based on the Software Development Project Requirements

Moving from a Plan Driven Culture to Agile Development

Agile-Fall Process Flow Model A Right Candidate for Implementation in Software Development and Testing Processes for Software Organizations

Unit 1 Learning Objectives

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK

Rapid Development & Software Project Survival Guide Steve McConnell Dave Root (Developed with Mel Rosso-Llopart)

Web Application Development Processes: Requirements, Demands and Challenges

Best-Practice Software Engineering: Software Processes to Support Project Success. Dietmar Winkler

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

Agile Project Management

Agility and Architecture Can they coexist?

Basic Unified Process: A Process for Small and Agile Projects

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

Agile with XP and Scrum

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

CRITICAL ANALYSYS OF THE SCRUM PROJECT MANAGEMENT METHODOLOGY

A Software process engineering course

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology

Extreme programming (XP) is an engineering methodology consisting of practices that ensure top-quality, focused code. XP begins with four values:

Software Development Process

Agile Software Development Methodologies and Its Quality Assurance

Lifecycle Models: Waterfall / Spiral / EVO

A Survey of Software Development Process Models in Software Engineering

A Viable Systems Engineering Approach. Presented by: Dick Carlson

TRANSFORMING TO NEXT-GEN APP DELIVERY FOR COMPETITIVE DIFFERENTIATION

JOURNAL OF OBJECT TECHNOLOGY

Agile Projects 7. Agile Project Management 21

Practical Experiences of Agility in the Telecom Industry

Building Software in an Agile Manner

Vragen. Software development model. Software development model. Software development model

Chapter 2 Critical Success Factors for Global Software Development

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

Surveying and evaluating tools for managing processes for software intensive systems

Practical Agile Requirements Engineering

A Process Model for Software Architecture

Transitioning Your Software Process To Agile Jeffery Payne Chief Executive Officer Coveros, Inc.

A Case Study on Benefits and Side-Effects of Agile Practices in Large-Scale Requirements Engineering

SOFTWARE PROCESS MODELS

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

CSSE 372 Software Project Management: More Agile Project Management

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

Eclipse Process Framework Composer

Agile Processes and Methodologies: A Conceptual Study

Agile Software Development

What is a life cycle model?

COMPARATIVE STUDY ON SOFTWARE PROJECT MANAGEMENT MODELS

RUP for Software Development Projects

Chap 1. Introduction to Software Architecture

Software Life Cycle Processes

Lean and Mean Architecting with RCDA

Leveraging RUP, OpenUP, and the PMBOK. Arthur English, GreenLine Systems

V. Phani Krishna et al, / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 2 (6), 2011,

Agile Testing. What Students Learn

No one has to change. Survival is optional. - W. Edwards Deming - Continue your Beyond Budgeting Journey with help from Agile, Lean and Scrum

Rose/Architect: a tool to visualize architecture

CS435: Introduction to Software Engineering! " Software Engineering: A Practitioner s Approach, 7/e " by Roger S. Pressman

The Oregon Software Development Process

Agile Software Development and Service Science

Transcription:

Scaling Down Large Projects to Meet the Agile Sweet Spot Philippe Kruchten Kruchten Engineering Services Ltd

Presenter Philippe Kruchten, Ph. D., P. Eng. KESL 2906 West 37 th avenue Vancouver BC V5Z 2M9 Canada kruchten@ieee.org also Professor of software engineering University of British Columbia Vancouver, BC, Canada pbk@ece.ubc.ca 2

Scaling UP the Agile processes? How large can I expand the team and still be agile? How long? How many attributes of agility can I drop and still be agile? Which practices can I scale up? Which practices I cannot use on large projects? Or should we : Understand the ideal conditions of agility Scale down projects in a way that establishes these ideal conditions of agility If the mountain will not go to Mahomet, let Mahomet go to the mountain. (Proverb) 3

Agile Process Sweet Spot 4 High bandwidth communication Small team (10-15), Collocated, Face to face (as opposed to document based) Customer on site a customer representative, domain literate and empowered to make decisions Short lifecycle (weeks or months, not years) Powerful development environment: Rapid development cycle, though automation Continuous integration (builds) Automated test Iterative Accommodating change, refactoring Business applications (rather than technical, embedded, real-time) New development (rather than maintenance) Availability of test regression suite?

The Bitter Spot (?) Large team Distributed team No empowered customer on site Long development cycle Inefficient development environment (low level of automation) Different cultures Low communication bandwidth, reliance on documents Waterfall Aversion to change Try to follow a fixed plan 5

Large Project Large projects are not going away Tend to : Heavy early planning (and desperately try to follow) Relying solely on written artifacts (workproducts), _ including in dialog with customer _ And in following a defined process Waterfall approach still dominant paradigm Easy on management comforting, false sense of rationality, of determinism Similar to other engineering disciplines 6

An Exemplar Large Project Avoid the marginal conditions (go from 12 to 18) Do not compare a bad large project with a good small and agile project 200 people or more Distributed Different organizations/companies 2 _ years before first delivery Iterative lifecycle Good, skilled people Access to customer Access to efficient programming environment New system, architecture not set 7

The Ideal Large Project Agile? High bandwidth communication How to achieve beyond 15? Customer How to make it available to 200 people Focus on results How to focus on something getting out in 2 years? Some level of planning and explicit documentation will be necessary Break-down the 200 people in: 10 teams of 15 Establish the conditions of optimal agility Use the 50 others to fill the space in between, act as the glue Communication Customer role 8

Setting up the Large Project Inception+Elaboration Inception Elaboration Management team LCA Milestone Initial team Architecture team Prototyping team Superstructure teams time Agile teams 9

Setting up the Large Project Construction+Transition Create 2 types of team Feature teams User oriented Infrastructure teams Provider of common services to feature teams Elaboration Management team Architecture team Prototyping team Construction Management team Architecture team Feature team 1 Infrastructure team A Feature team 2 integration team & Transition Feature team 3 Infrastructure team B 10

Increased level of ceremony Inception Elaboration Construction & Transition 11 Feature teams Infrastructure teams glue Initial team More planning More documentation Less agility Management team Architecture team Prototyping team Management team Architecture team Feature team 1 Infrastructure team A Feature team 2 integration team Feature team 3 Infrastructure team B

Where are we? Feature teams and infrastructure teams: Organized as agile projects Added a project superstructure to reproduce ideal conditions Architecture team Integration team Project management team Increase in level of ceremony More planning involved than with a single agile project Keep feedback loop from iterations, react to change Not a plan first and then execute to plan 12

Issues with a Federation of Teams Dependencies between teams Teams are customers of each other Will need brokering by architecture team to avoid too much one-to-one communication Stovepipes Teams as small fiefdoms, building and empire and reinventing the wheel Architecture team participate in design reviews, planning sessions Imbalance: staff and skills Identified by architects, or raised up by team lead Communication breakage Too much staff too early Long cycle: lack of feedback loop? 13 Rotation of staff across team, and circulation of architects Moral equivalent of pair programming Spreading the culture

Dual Rhythm Long cycle Lack of feed back Team lose track of ultimate goal Need intermediate, tangible goals Dual beat Example Weekly/biweekly scrum System increment beat: 6 months Daily scrum Team increment: 1 month 14

Organizing Project Documentation Progressively introducing more explicit documentation More efficient use of staff (e.g., architecture team) Greater visibility Software (/System) Architecture Project level backlog, Risks and issues Requirements: vision and key use cases Key interfaces Recommended practices, project standards (the actual concrete process) Reusable elements 15 Overall project plan

Iterations and Demonstrable Progress Uncertainty in Stakeholder Satisfaction Space Initial State Actual Path and precision of artifacts Initial Plan Emergence of Requirements, Architecture, Design, Plans, and Product 16

How Much Process is Necessary? Simple upgrades R&D Prototypes Static web apps Dynamic web apps Packaged applications Component based (J2,.Net) Strength of Process Legacy upgrades Systems of systems Real-time, embedded Certifiable quality When is Less Appropriate? Co-located teams Smaller, simpler projects Few stakeholders Early life-cycle phases Internally imposed constraints When is More Appropriate? Distributed teams Large projects (teams of teams) Many stakeholders Later life-cycle phases Externally imposed constraints Standards Contractual requirements Legal requirements 17

Process Strength Over the Life Cycle Weak process influence (Optimized for rapid adaptation to change) Strong process influence (Optimized for converging on quality product releases) Process Weight (Product Quality) (Time to Release) Product Release 18

Examples Ship System 2000 (FS2000) Central software architecture team Iterative development Architecture => blueprint for organization Canadian Air Traffic Control system (CAATS) Went further than SS200 Customer on-site: large team of actual users of ATC Start prototyping with a small team + arch. team Architecture team split at end LCA milestone Played role of facilitator, communication vertex Integration team Progressive introduction of explicit documentation 19

Examples (cont.) Rational Software s Product Group Team of teams (700 total) Distributed 7 sites around the globe Varied culture (acquisition) Centralized: Architecture Product definition, with local rep Integration (installer, licensing, etc.) Dual rhythm Major beat: 6 months Internal beat: monthly 20

21 Summary Large projects set up as as a federation of agile teams Two levels of: Communication Organization Project beat Software architecture serves as the blueprint for the team structure Emerges during elaboration with a small team (or two) Then Architecture + Integration teams add communication glue Serve as customers Facilitate communication Balance skills, load Foster reuse Assemble final product Gradual introduction of explicit documents Where they support effective communication, reduce ambiguity, spread common culture

Summary Agility: Ability to adapt to changes Ability to learn Focus on results Iteration Rapid feedback loops Concrete progress More constant pressure Communication Eliminate heavy artifacts Favor direct communication 22 Context No one size fits all, no fixed recipe

23 References and further reading 1. P. B. Kruchten, The Rational Unified Process: An Introduction, 2 ed. Boston: Addison-Wesley, 2000. 2. B. W. Boehm, D. Port, M. Abi-Antoun, and A. Egyed, "Guidelines for the Life Cycle Objectives (LCO) and the Life Cycle Architecture (LCA) deliverables for Model-Based Architecting and Software Engineering (MBASE)," USC, Los Angeles, USC Technical Report USC-CSE-98-519, 1999. 3. K. Schwaber and M. Beedle, Agile Software Development with SCRUM. Upper Saddle River, NJ: Prentice-Hall, 2002. 4. L. Brownsword and P. Clements, "A Case Study in Successful Product Line Development," Software Engineering Institute, CMU/SEI-96-TR-035, 1996. 5. T. Paine, P. Kruchten, and K. Toth, "Modernizing Air Traffic Control through Modern Software Methods," in 38th Annual Air Traffic Control Association Conference. Nashville, Tenn.: ATCA, 1993. 6. P. Kruchten, "Iterative Software Development for Large Ada Programs," in Proc. Ada-Europe conference, Montreux, Switzerland, vol. LNCS 1088, A. Strohmeier, ed.: Springer-Verlag, 1996, pp. 101-110. 7. P. Kruchten and C. J. Thompson, "An Object-Oriented, Distributed Architecture for Large Scale Systems," in Proc. of Tri-Ada'94, Baltimore, November 1994: ACM. 8. P. Kruchten, "The Software Architect, and the Software Architecture Team," in Software Architecture, P. Donohue, ed. Boston: Kluwer Academic Publishers, 1999, pp. 565-583.

24 Thank you