What Does Large Mean? Copyright 2003 by N. Josuttis and J. Eckstein 3. Why is Large an Issue?



Similar documents
Agile Software Development in the Large

Introduction to Agile Software Development. EECS 690 Agile Software Development

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development

Agile QA s Revolutionary Impact on Project Management

History of Agile Methods

Agile Software Development in the Large

Digital Transformation of the Enterprise for SMAC: Can Scrum help?

Agile Project Management: Adapting project behaviors to the software development environment

Agile Project Management Jim Highsmith. Chapter 1. The Agile Revolution

werteorientierte Unternehmenskultur

D25-2. Agile and Scrum Introduction

Manifesto for Agile Software Development

Distributed Agile Development. Bapiraju Nandury Product Development Manager Bangalore Development Centre

Agile Project Management

Agile Development Overview

Agile Project Management By Mark C. Layton

Software Processes. Agile Methods

Agile Development with C#

Continuous Integration: Improving Software Quality and Reducing Risk. Preetam Palwe Aftek Limited

What does it mean to be Agile. Marek Majchrzak, Andrzej Bednarz Wrocław,

AGILE SOFTWARE DEVELOPMENT: INTRODUCTION, CURRENT STATUS & FUTURE Pekka Abrahamsson Jyväskylä

Agile & the Declaration of Interdependence: A new approach to Process Improvement

Agile Software Development

Introduction to Agile Software Development

Agility? What for? And how? > Warm-up Session Agile Tour Vienna 2014

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

Agile and Secure: Can We Be Both?

Scrum for Managers, Zurich March 2010

Processes in Software Development. Presented by Lars Yde, M.Sc., at Selected Topics in Software Development, DIKU spring semester 2008

Agile Execution for and Beyond IT

Agile Beyond The Team 1

INF5120 Modellbasert Systemutvikling

Agile Software Development with Scrum. Jeff Sutherland Gabrielle Benefield

Software Development with Agile Methods

Role of Agile Methodology in Software Development

Scrum and Agile methods The real world

Agile in Financial Services A Framework in Focus

The Agile Manifesto August 2001

PMP vs. Scrum Master

Agile Overview. 30,000 perspective. Juha Salenius CSPO CSM PMI-ACP PMP SCGMIS Workshop January 23 rd, 2013

CSSE 372 Software Project Management: Managing Agile Projects

Introduction to Agile Software Development Process. Software Development Life Cycles

Agile Project Management

EXTREME PROGRAMMING AGILE METHOD USED IN PROJECT MANAGEMENT

Aristotle in an Agile World. By Ben Allen

CSSE 372 Software Project Management: More Agile Project Management

Comparative Study of Agile Methods and Their Comparison with Heavyweight Methods in Indian Organizations

Agile on huge banking mainframe legacy systems. Is it possible?

Agile Project Management with Scrum

Development. Lecture 3

Agile and ITIL And how they integrate. enterprise.bcs.org

Bottlenecks in Agile Software Development Identified Using Theory of Constraints (TOC) Principles

Extreme Programming, an agile software development process

ITSM Agile Intro Feb 5, 2015

Agile with XP and Scrum

Agile to the Bone. Introduction to Agile by Pietari Kettunen

How To Understand The Limitations Of An Agile Software Development

Neglecting Agile Principles and Practices: A Case Study

Agile Software Development. Mohsen Afsharchi

Agile Fundamentals, ROI and Engineering Best Practices. Rich Mironov Principal, Mironov Consulting

Creating a High Maturity Agile Implementation

Agile Processes. -- Heinrich Heine

Extreme Programming, an agile software development process

Agile processes. Extreme Programming, an agile software development process

"Bezpieczny Projekt"

AGILE BUSINESS INTELLIGENCE

Agile Software Development

Agile Software Development Approaches and Their History. Volkan Günal

XP & Scrum. extreme Programming. XP Roles, cont!d. XP Roles. Functional Tests. project stays on course. about the stories

the team level and is characterized by self organizing, cross functional teams doing iterative development in what are called Sprints.

Software processes that are:

Mitigating Risk with Agile Development. Rich Mironov CMO, Enthiosys

Agile and PRINCE2 And how they integrate. enterprise.bcs.org

Abstract. Heavy vs Light Methodologies: Bulimic or Anorexic? Fernando Brito e Abreu FCT/UNL

Agile Projects 7. Agile Project Management 21


AGILE SOFTWARE DEVELOPMENT

Agile project management is a style of project management that focuses

PMBOK? You Can Have Both! June 10, Presented by:

Case Study on Critical Success Factors of Running Scrum *

26 May 2010 CQAA Lunch & Learn Paul I. Pazderski (CSM/CSP, OD-CM, CSQA) spcinc13@yahoo.com Cell: AGILE THROUGH SCRUM

Role of the Business Analyst in an Agile Project

How To Model In An Agile World

STATE OF MICHIGAN SUITE

SWEN - Software Engineering Network Donnerstag 06. Mai. 2010

Agile processes. Extreme Programming, an agile software development process. Extreme Programming. Risk: The Basic Problem

LEAN AGILE POCKET GUIDE

Introduction to Agile Scrum

Agile Project Management

Improving Software Productivity with Agile Methodologies

Outline. Agile Methods. Converse of Conway s Law. The Silver Bullet Fantasy (Brooks, 1986)

Agile user-centred design

Agile Methodologies. Venkat Subramaniam.

Transcription:

Skalierung von agilen Prozessen Ein Erfahrungsbericht OOP 2003 Jutta Eckstein Nicolai Josuttis This Talk is About Agility Large Experience Success Copyright 2003 by N. Josuttis and J. Eckstein 2 1

What Does Large Mean? Large in... scope time people money risks We focus on Large Teams which implies everything else Large is relative 1, 2, 10, 100, 2000 people Copyright 2003 by N. Josuttis and J. Eckstein 3 Why is Large an Issue? Aspects do not scale linearly new kinds of problems occur For example: Communication with 2 people you have to communicate with 10 people you can t discuss all aspects in one group with 100 people you can t have all people in one room with 1000 people you can t know all people Copyright 2003 by N. Josuttis and J. Eckstein 4 2

XP typical team size < 12 Large and Agile Methods Scrum Ken Schwaber reports from teams with 400 members Crystal different colors for different team sizes: clear: for teams < 10 orange: for teams < 40 red, blue,... (not defined yet) FDD teams are assembled for designing a feature Copyright 2003 by N. Josuttis and J. Eckstein 5 The Agile Manifesto developed in February 2001 by key people of the lightweight processes community: Kent Beck, Ward Cunningham, Martin Fowler Alistair Cockburn Jim Highsmith Dave Thomas, Andrew Hunt Ken Schwaber, Michael Beedle Steve Mellor see agilemanifesto.org Copyright 2003 by N. Josuttis and J. Eckstein 6 3

Values of the Agile Manifesto Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan Copyright 2003 by N. Josuttis and J. Eckstein 7 Deliver working software frequently Business people and developers work together Working software is the primary measure of progress Constant pace indefinitely Technical excellence and good design Copyright 2003 by N. Josuttis and J. Eckstein 8 4

Deliver working software frequently Business people and developers work together Working software is the primary measure of progress Constant pace indefinitely Technical Build excellence and good design projects around motivated individuals. Simplicity Give is essential them the environment and support they Self-organizing need, and teams trust them to get the job done. Copyright 2003 by N. Josuttis and J. Eckstein 9 Transparency Communication and transparency for developers QA controlling / revision customers Practices and values: shared ownership shared knowledge no head monopolies honesty Copyright 2003 by N. Josuttis and J. Eckstein 10 5

Wiki-Web Web Based Collaboration Platform shared vivid documentation of the project ideas, concepts, problems, tasks, questions, (write) access for all stakeholders developers, managers, customers, QA, controlling easy to use self-explaining, free, stable just a web server and standard browsers TWiki.org Copyright 2003 by N. Josuttis and J. Eckstein 11 Deliver working software frequently Business people and developers work together Working software is the primary measure of progress Constant pace indefinitely Technical The excellence most efficient and good and design effective method of conveying Simplicity information is essential to and within a development team is face-to-face conversation. Copyright 2003 by N. Josuttis and J. Eckstein 12 6

Communication Face-to-face communication is always preferred But: large teams have limitations feedback might be a problem Therefore: Communication channels must be a subject of change use different communication channels and switch them over time locate the project members as close together as possible change the locations ( floating desks ) Establish a (virtual) communication team Copyright 2003 by N. Josuttis and J. Eckstein 13 Deliver working software frequently Business people and developers work together Working software is the primary measure of progress Business people and developers must work Constant pace indefinitely together daily throughout the project. Technical excellence and good design Copyright 2003 by N. Josuttis and J. Eckstein 14 7

Customer Involvement Defined single customer is rare, more typical are: Large invisible customer base typical for standard software Community of customers often not homogenous, but competitive no accepted representative Therefore: Customer on-site office specifies and performs acceptance tests Customer surrogate designing for a single customer is the most effective way to satisfy a broad audience [Alan Cooper in The Inmates Are Running the Asylum] Copyright 2003 by N. Josuttis and J. Eckstein 15 Deliver working software frequently Business people and developers work together Working Deliver software working is the primary software measure frequently, of progress Constant from pace a indefinitely couple of weeks to a couple of months, Technical with excellence a preference and good to design the shorter timescale. Copyright 2003 by N. Josuttis and J. Eckstein 16 8

Development Cycles The larger the team, the shorter the development cycles We promote: 1 week iterations 1 month releases 3 month external releases Copyright 2003 by N. Josuttis and J. Eckstein 17 Agile processes promote sustainable Deliver working development. software frequently The sponsors, developers, and Business users people should and developers be able work to maintain together a constant Trust motivated pace indefinitely. individuals Working software is the primary measure of progress Constant pace indefinitely Technical excellence and good design Copyright 2003 by N. Josuttis and J. Eckstein 18 9

Time-Box Development Development cycles are fixed time boxes 1. plan amount of work for amount of time consider vacation and real time 2. develop 3. deliver 4. retrospective Fixed time limit result or reason for failure Advantages: teams concentrate on results teams learn to estimate their speed about 80% is a typical stable value allows early computing of remaining tasks Copyright 2003 by N. Josuttis and J. Eckstein 19 Deliver working software frequently Business people and developers work together Face-to-face Our conversation highest priority is to satisfy the customer Working through software is early the primary and continuous measure of progress delivery of Constant valuable pace indefinitely software. Technical excellence and good design Copyright 2003 by N. Josuttis and J. Eckstein 20 10

Planning Development Cycles Plan for accomplishing a feature often unusual for large teams they are used to develop and plan against milestones. Sometimes the iterations might be too short for a feature double check if the feature couldn t be further broke down allow that feature development will exceptionally cover more than one iteration Detailed planning only for the next steps Copyright 2003 by N. Josuttis and J. Eckstein 21 Deliver working software frequently Business people and developers work together Working Welcome software is changing the primary requirements, measure of progress even late in Constant development. pace indefinitelyagile processes harness change Technical for excellence the customer's and good competitive design advantage. Copyright 2003 by N. Josuttis and J. Eckstein 22 11

Architecture Architecture is always subject of change progress means change don t try to finalize the architecture before growing the team Domain teams will formulate the requirements the development level of the retrospectives enable to speak with one voice is influenced by team size avoid any kind of bottleneck (technical, structural, organizational) But: You might have to define the architecture as finalized Copyright 2003 by N. Josuttis and J. Eckstein 23 Deliver working software frequently Simplicity Business people and the developers art of maximizing work the together amount of work not done is essential. Working software is the primary measure of progress Constant pace indefinitely Technical excellence and good design Copyright 2003 by N. Josuttis and J. Eckstein 24 12

Simplicity KISS I built a lot of large systems, but I never built a complex system [Kerth, Meszaros, Doble, OOPSLA2000] Because simple systems are better maintainable don t require smart programmers Simplicity comes from conceptual integrity [David Parnas, XP2002] A system architect is the main step towards conceptual integrity Copyright 2003 by N. Josuttis and J. Eckstein 25 Deliver working Continuous software attention frequentlyto technical excellence Business and people good and design developers enhances work together agility. Working software is the primary measure of progress Constant pace indefinitely Technical excellence and good design Copyright 2003 by N. Josuttis and J. Eckstein 26 13

Refactoring Missing skills they don t know how, why, when and where to refactor unit tests are the safety net Code size and compile time matters for example: change an interface specification in a fundamental class Refactoring with global impact has to be done outside business hours weekend holidays Copyright 2003 by N. Josuttis and J. Eckstein 27 Welcome Working changing software requirements is the primary measure of Deliver working progress. software frequently Business people and developers work together Working software is the primary measure of progress Constant pace indefinitely Technical excellence and good design Copyright 2003 by N. Josuttis and J. Eckstein 28 14

Force Discipline Guidelines good practices (essence of experience) no code without test code Deprecated interfaces and getting rid of them Reviews and code inspection external internal (by developers and scripts) active marketing of concepts and interfaces Copyright 2003 by N. Josuttis and J. Eckstein 29 Integration Concepts Beware: integration is a bottleneck you can t avoid Two approaches: individual integrations one change after the other often: continuous integration collective integration multiple changes at once often: nightly builds Copyright 2003 by N. Josuttis and J. Eckstein 30 15

Integration Issues Problems of individual integrations: time limitations for integrating one team after the other for example: framework build: 2.5 hours domain build: 6 hours unit tests: 4 hours Problems of collective integration: error detection is more difficult it takes time to have nightly builds running (1-2 years) Copyright 2003 by N. Josuttis and J. Eckstein 31 Addressing Integration Problems Therefore: Plan resources at least 1/10 of developers for integration/build Use integration tools e.g. Cruise Control Establish integration & build team collects changes maintains progress measures project status provides scripts for build and integration Copyright 2003 by N. Josuttis and J. Eckstein 32 16

Deliver working software frequently Business people and developers work together Trust motivated At regular individuals intervals, the team reflects on how to Face-to-face become conversation more effective, then tunes and adjusts Working its software behavior is the accordingly. primary measure of progress Constant pace indefinitely Technical excellence and good design Copyright 2003 by N. Josuttis and J. Eckstein 33 Retrospectives Retrospectives cover two levels: development level: evolution of the software meta level: inspection of the process Attendance: team leads floating Copyright 2003 by N. Josuttis and J. Eckstein 34 17

Force Courage Errors are Part of the Process Do It Right the First Time sends the wrong message we can t be uncertain we can t experiment we can t learn from mistakes we can t deviate from plan Don t worry about getting it right the first time, get it right the last time [Jim Highsmith, OOPSLA 2000] Change people and roles many projects fail due to people in wrong positions Honesty bad news are good news Copyright 2003 by N. Josuttis and J. Eckstein 35 Deliver working software frequently Business people and developers work together The best architectures, requirements, and designs emerge from self-organizing teams. Working software is the primary measure of progress Constant pace indefinitely Technical excellence and good design Copyright 2003 by N. Josuttis and J. Eckstein 36 18

Responsibility Members of large teams are often not used to take up responsibility show confidence in their ability to bear responsibility because: Telling people what to do doesn't guarantee that they will learn enough to think for themselves in the future. Instead it may mean that they ll depend on you or their superiors even more and that they will stop taking chances, stop innovating, stop learning. [The Fast Company (http://www.fastcompany.com)] Copyright 2003 by N. Josuttis and J. Eckstein 37 People are different People and teams are different Let subteams decide each subteam defines its own process Don t over specify and overrule for example: no need to require pair programming Remember: Individuals and interactions over tools and processes Copyright 2003 by N. Josuttis and J. Eckstein 38 19

The Essence Communication is the key Force feedback Stability means death Be agile Break rules Force courage Common sense Use your brain (and feel/smell the problems) Copyright 2003 by N. Josuttis and J. Eckstein 39 Links agilemanifesto.org crystalmethodologies.org xprogramming.com adaptivesd.com www.controlchaos.com junit.org twiki.org cruisecontrol.sourceforge.net Copyright 2003 by N. Josuttis and J. Eckstein 40 20

Many Thanks! Nicolai M. Josuttis solutions@josuttis.com www.josuttis.com Jutta Eckstein jutta@jeckstein.com www.jeckstein.com Copyright 2003 by N. Josuttis and J. Eckstein 41 21