How To Model In An Agile World



Similar documents
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

INF5120 Modellbasert Systemutvikling

Scrum and Agile methods The real world

PMP vs. Scrum Master

Agile Software Development with Scrum. Jeff Sutherland Gabrielle Benefield

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

Agile in Financial Services A Framework in Focus

Scrum for Managers, Zurich March 2010

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

Agile Project Management

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

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

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

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

D25-2. Agile and Scrum Introduction

Agile to the Bone. Introduction to Agile by Pietari Kettunen

Deep Agile Blending Scrum and Extreme Programming. Jeff Sutherland Ron Jeffries

SWEN - Software Engineering Network Donnerstag 06. Mai. 2010

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

USAGE OF KANBAN METHODOLOGY AT SOFTWARE DEVELOPMENT TEAMS

Agile Processes. -- Heinrich Heine

Agile project management is a style of project management that focuses

WHITEPAPER GET MORE WORK DONE: A MANAGER S GUIDE TO MIXING AGILE AND WATERFALL

Agile user-centred design

Risk Management. What is risk? Boehm s Top 10 Risks [P2] Welcome to Lecture 3 Risk management & Agile PM

Extreme Programming, an agile software development process

Agile Software Development in the Large

Agile Software Development

The Agile Manifesto August 2001

Agile Execution for and Beyond IT

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

Agile Testing and Extreme Programming

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

AGILE PRODUCTIVITY METRICS

Laboratório de Desenvolvimento de Software

Introduction to Software Engineering: Overview and Methodologies

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

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

EXTREME PROGRAMMING AGILE METHOD USED IN PROJECT MANAGEMENT

Manifesto for Agile Software Development

How To Plan A Project

Extreme Programming, an agile software development process

Software processes that are:

Agile processes. Extreme Programming, an agile software development process

Introduction to Agile Methods

Agile Project Management Mapping the PMBOK Guide to Agile Practices. Michele Sliger

The GAMP Guide s1 definition of the system

Developing acceptance tests specifically with Fit Fit for Developing Software Framework for Integrated Tests Rick Mugridge and Ward Cunningham.

STATE OF MICHIGAN SUITE

Best Practices Fusion: Lean Six Sigma and ITIL. By Gary A. Gack

Agile and Secure: Can We Be Both?

Agile Estimating: My DPS Dissertation

AGILE BUSINESS SERVICES. Guiding and supporting your business. at any stage of your agile journey

CSSE 372 Software Project Management: More Agile Project Management

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

That is, while there is value in the items on the right, we value the items on the left more.

MANAGEMENT S ROLE 1/16/ Copyright 2001, Net Objectives

AGILE SOFTWARE DEVELOPMENT

Software Development Methodologies

Agile, Rails, and the Cloud. Why your customer should care about Agile, Rails and the Cloud

Methodology: Agile development of safety critical systems Annex D1.1.d to deliverable D1.1

CSSE 372 Software Project Management: Managing Agile Projects

Software Process. Successful Software Production between Extreme Programming and Rational Unified Process Short Version

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

PENETRATION TESTING IN AGILE SOFTWARE DEVELOPMENT PROJECTS

Testing in an Agile Environment

Agile Software Development Methods, Comparison with Traditional Methods & Implementation in Software Firm

AGILE SOFTWARE DEVELOPMENT. BY Sysop Technology Aurangabad

The Agile Movement An introduction to agile software development

Development Methodologies. Types of Methodologies. Example Methodologies. Dr. James A. Bednar. Dr. David Robertson

Agile with XP and Scrum

Comparative Analysis of Agile Software Development Methodologies-A Review

TecEd White Paper User-Centered Design and the Agile Software Development Process: 7 Tips for Success

Software Specification and Testing

Comparing Agile Software Processes Based on the Software Development Project Requirements

Measuring the Impact of Scrum on Product Development at Adobe Systems

2. AGILE ADOPTION CASE STUDIES

Agile Software Project Management Methodologies

Developing in the MDA Object Management Group Page 1

Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda

Agile Planet. A Travel Guide to the Agile Universe Fabian Schiller. This book is for sale at

Agile and Enterprise Architecture

Moonzoo Kim CS Division of EECS Dept. KAIST

Who Doesn t Want to be Agile? By: Steve Dine President, Datasource Consulting, LLC 7/10/2008

Introduction to Agile Software Development Process. Software Development Life Cycles

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

PROJECT RISK MANAGEMENT MODEL BASED ON PRINCE2 AND SCRUM FRAMEWORKS

TDDC88 Lab 2 Unified Modeling Language (UML)

From Business World to Software World: Deriving Class Diagrams from Business Process Models

Transcription:

Modelling in an Agile World John Daniels Fastnloose Limited www.fastnloose.com John Daniels Co-founder of Fastnloose Ltd Software development by dispersed teams Co-author of UML Components & Designing Object Systems Co-creator of the Syntropy method Highly influential on UML (esp. OCL) Software designer and developer for 20 years 1

Agenda About agile Is UML the spawn of Satan? Where modelling can help About agile Agility is the ability to both create and respond to change in order to profit in a turbulent business environment Jim Highsmith, Agile Software Development Ecosystems Agile is the new Object agile is hip even Microsoft are in on the act 2

The Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick February 2001 Agility in practice What does it mean to follow those values? Acceptance and explicit incorporation of the things we all know, deep down: A skilled, motivated, enabled team can be extremely productive Every project is different The Devil s in the details It s hard to keep documentation up to date The customer often doesn t know what they want Detailed project plans going out more than a few weeks aren t usually worth the paper they are written on 3

Agile methods XP No big design up front, You ain t gonna need it SCRUM DSDM Crystal etc. Example practices (from XP) The planning game define stories, estimate, prioritise, schedule Continuous automated testing test-driven development Continuous integration Refactoring Collective ownership Pair programming 4

Is UML the spawn of Satan? Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan Is UML the spawn of Satan? Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan UML and its supporting tools are the cornerstone of my detailed and rigorous development process 5

Is UML the spawn of Satan? Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan UML and its supporting tools are the cornerstone of my detailed and rigorous development process With UML I can spend years documenting my software Is UML the spawn of Satan? Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan UML and its supporting tools are the cornerstone of my detailed and rigorous development process With UML I can spend years documenting my software UML lets me freeze the requirements early 6

Is UML the spawn of Satan? Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan UML and its supporting tools are the cornerstone of my detailed and rigorous development process With UML I can spend years documenting my software UML lets me freeze the requirements early Argh! I ll have to redraw all those nice UML diagrams UML it s just a language! UML is a language which can be used for many different purposes We all use UML profiles all the time, even if we don t realise it Different UML tools assume different purposes 7

Model perspectives The World The Specification The Software Built to understand Interpreted as statements of fact Built to specify Interpreted as constraints on behaviour Built to explain Interpreted as descriptions of behaviour Model of the world Conceptual model Abstract model of software systematic correspondence Specification model Model of software Implementation model So where can modelling help? Aiding customer collaboration Aiding interactions between developers Aiding the creation of working software 8

Aiding customer collaboration How do you get the stories straight? Models of the business, not the software Use of models to understand what the business does / should do Nothing to do (directly) with the software systems that support the business Models that specify the software scope Models that can expose conflicts or omissions How do you manage hundreds of separate stories? (esp. if they are written on index cards!) Need tools that can support abstract models Direct customer interaction Small-ish projects Developer acts as analyst-designer Any models are private to developer Pure XP Customer Fast Software Ltd stories Developer Software queries demonstrations of working software 9

Explicit requirements model Large-ish projects Analyst and designer roles separated Requirements model is explicit communication tool Customer stories Brilliant Software Ltd Analyst Requirements Model requirements Designer Software queries, animations, scenarios queries demonstrations of working software The Analysts Loop provides value only if if it it cleans up the requirements by raising questions about inconsistencies and gaps Brilliant Software Ltd stories requirements Requirements Model Analyst Designer Software Customer queries questions demonstrations of working software 10

Finding more use-cases: CRUD Inspect class diagrams; ask: what changes this association or attribute? what creates/deletes this object or association? Customer pocket: Money Supplier refund possessions 0..* Thing stock 0..* open close sale theft restock Finding more usecases: states Room check in Occupied check out Unoccupied clean Dirty build withdraw reinstate withdraw Maintenance 11

Use-cases and objects consistency what else do they do/ happens to them? -- CRUD; statecharts what happens? --tasks, jobs, use-cases Book * onloanto 0..1 Member Objects, attributes & associations Use cases Member borrow Book Library what objects are there? --things, concepts, relationships who/what is affected? -- write postconditions, look at terms used use case borrow(member, library, book) post book is on loan to member Aiding developer interactions Developer ideas understanding Design Design Model Design Model Model Developer abstractions Software Use of models to allow developers to visualise, share and discuss code design ideas, solutions Use of models to allow newcomers to see the big picture quickly Need tools that can move quickly and easily between code and diagrams 12

Aiding working software Generation of test cases from requirements (ie specification) models Understanding the good test cases Need tools that can generate tests From requirements to tests Running a test Set-up test scenario Execute test Check invariants and postconditions The structural constraints in a requirements model define the interesting edge and normal conditions, and hence informs the choice of test data A requirements model provides a catalogue of test points when testing is at the external event level A requirements model will define the structural invariants and the required results of stimuli 13

Tests as specification Traditional textual functional specification broad, covering all aspects of the problem lacking depth, precision big picture is often all you get Tests-as-specification precise where you have them but nothing where you don t hard to see the big picture Models can bridge this gap Agility and the MDA Model Driven Architecture A complete MDA specification consists of a definitive platformindependent base UML model (PIM), plus one or more platformspecific models (PSM) and interface definition sets, each describing how the base model is implemented on a different middleware platform. OMG web site! Assuming MDA can be made to work, it is compatible with a high level of agility The modelling language becomes the programming language, but the same principles apply 14

Summary Modelling is compatible with agile methods Models can help: manage complex requirements improve communication between developers with the creation of good tests 15