T H E U N I V E R S I T Y O F B R I T I S H C O L U M B I A 1 Copyright © 2007 by Philippe Kruchten Of software value, cost, & architecture, with agile.

Slides:



Advertisements
Similar presentations
Metrics and Databases for Agile Software Development Projects David I. Heimann IEEE Boston Reliability Society April 14, 2010.
Advertisements

Armstrong Process Group, Inc. Copyright © , Armstrong Process Group, Inc., and others All rights reserved Armstrong Process.
Prescriptive Process models
E X treme Programming & Agile Modeling Copyright © 2003 Patrick McDermott UC Berkeley Extension
SOFTWARE DEVELOPMENT METHODOLOGIES Methodologies Waterfall Prototype model Incremental Iterative V-Model Spiral Scrum Cleanroom RAD DSDM RUP.
A little Software Engineering: Agile Software Development C Sc 335 Rick Mercer.
What is Agile? Agile is a software methodology based on iterative and incremental development, where requirements and solutions evolve through collaboration.
Alternate Software Development Methodologies
SCRUM John Drew. SCRUM - overview Scrum is a project management discipline that has evolved since the early 1990s to deliver software that meets business.
Dept. of Computer Science & Engineering, The Chinese University of Hong Kong Agile Software Development CHEN Xinyu
NAUG NAUG Knowledge Evening – th February 2007.
An Introduction to Agile Project Management CHAPTER SEVENTEEN PowerPoint Presentation by Charlie Cook Copyright © 2014 McGraw-Hill Education. All Rights.
Agile development By Sam Chamberlain. First a bit of history..
Agile
1 CMSC 132: Object-Oriented Programming II Software Development I Department of Computer Science University of Maryland, College Park.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Introduction to Agile.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Software Development Process
Agile Software Development Brian Link
Chapter 5 Software Process Models. Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time.
What is Scrum Process? Where is it used? How is it better?
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
Presentation copyright © AccuRev, Inc. May be used with permission only. Contact for permission. Damon Poole – CTO, AccuRev.
Agile Software Development Chapter 3 – Lecture 1 Adrián Susinos.
By Saravanan Bala. General Report 31 % of Software projects are cancelled 75 % of the software projects are considered failures by the people who initiated.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
1 Software Process Models-ii Presented By; Mehwish Shafiq.
Planning Game in Artifacts Tracker (AT) Project Michal Pilawski.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
CS3100 Software Project Management Agile Approaches.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Extreme Programming Based on and
Lecture 4 – XP and Agile 17/9/15. Plan-driven and agile development Plan-driven development A plan-driven approach to software engineering is based around.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Virtually Agile Astro Sabre (Matt Ganis) IBM, Senior Technical Staff Member Hawthorne, NY - September 20, 2007.
Agile Metrics It’s Not All That Complicated. © 2011 VersionOne 2 Welcome – About your Trainer, Katia Sullivan VersionOne Product Trainer and Agile Coach.
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
Agile. Processes Waterfall Traditional With prototyping Sprial Agile Dynamic Systems Development Method (DSDM) Scrum Crystal eXtreme Programming (XP)
SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 1 eXtreme Programming – one of the Agile Software Development Methodologies.
SOFTWARE PROCESS MODELING Benjamin Dixon U
Intelligence and Information Systems 1 3/17/2004 © 2004 Raytheon Company USC/CSE Executive Workshop on Agile Experiences March 17, 2004 A Raytheon Agile.
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
CS 4500: Software Development Software Process. Materials Sommmerville Chapters 1, 2 and 3 Software Cycle and Models:
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
Introducing an Agile Process to an Organization By Mike Cohn and Doris Ford IEEE Computer.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Agile Project Management and the yin & yang of
AGILE SCRUM METHODOLOGY
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Appendix B Agile Methodologies
Software Development methodologies
Introduction to Software Engineering
Scrum MODULE 3 – Part 3.
Burn Down charts for Project Management
روش‌های سريع الانتقال (چابک) توسعه نرم افزار
Johanna Rothman Agile Team Measurements Chapter 12
How to Successfully Implement an Agile Project
Teaching slides Chapter 1.
Summarizing Our Models to Date
Agile Development – a new way of software development?
Appendix B Agile Methodologies
Extreme Programming.
Agile software development
Scrum in Action.
Agile Development.
Presentation transcript:

T H E U N I V E R S I T Y O F B R I T I S H C O L U M B I A 1 Copyright © 2007 by Philippe Kruchten Of software value, cost, & architecture, with agile and lean approaches Philippe Kruchten Workshop on Integrating Systems and Software Engineering USC, Los Angeles, October 29, 2007

2 Philippe Kruchten, Ph.D., P.Eng., CSDP Professor of Software Engineering Department of Electrical and Computer Engineering University of British Columbia Vancouver, BC Canada Founder and president Kruchten Engineering Services Ltd Vancouver, BC Canada

3 Outline  A story  Agile processes and software/system architecture  Value and cost Cost Value  Value and cost of architecture  A proposed strategy to put value on architecture

4 Story of a failure  Large re-engineering of a complex distributed world-wide system; 2 millions LOC in C, C++, Cobol and VB  Multiple sites, dozens of data repositories, hundreds of users, 24 hours operation, mission- critical ($billions)  xP+Scrum, 1-week iterations, 30 then up to 50 developers  Rapid progress, early success, features are demo-able  Direct access to “customer”, etc.  A poster project for scalable agile development Synthetic example from 2 projects (finance, aerospace)

5 Hitting the wall  After 4 ½ months, difficulties to keep with the 1-week iterations  Refactoring takes longer than one iteration  Scrap and rework ratio increases dramatically  No externally visible progress anymore  Iterations stretched to 3 weeks  Staff turn-over increases; Project comes to a halt  Lots of code, no clear architecture, no obvious way forward

6 Agile Processes & Architecture  No BUFD (no Big Up-Front Design)  Incrementally develop (& deliver) value  xP: Metaphor  FDD: Features  Earned-value system -> burn-down charts  Very short iterations (a.k.a. sprints)  Refactoring  Gradual emergence of the design… Agile Alliance 2001

7 Context does Matter  For medium to large software-intensive systems, or in novel systems, an architecture will NOT gradually emerge as the result of constant refactoring.  The Wall  Architecture lacks sex appeal Kruchten 2007

8 Value and Cost  Value: to the business (the users, the customers, the public, etc.)  Cost: to design, develop, manufacture, deploy, maintain  Simple system, stable architecture, many small features: statistically value aligns to cost  Large, complex, novel systems ?

9 Cost  The old: Function points, SLOC => time => $$$  The “new”: Story points, ideal days, velocity Backlog (Scrum) used to drive increment content Self-tuning process

10 Cost: the classical view Size Effort Staff Duration Cost productivity F.P. SLOC SLOC/person-month person-month

11 Cost: the agile view Size Effort Staff Duration Cost productivity velocity Ideal days Story points Actual days Story point per ideal day Cohn 2006

12 Value ?  Traditionally in dollars  Decomposition, interdependencies  Priorities (used in XP’s planning game)  Not very successful  Earned Value System muddies the water even more Are we speaking about value? Cost? Both?  What is the value of architecture? About nil Seen only as an additional cost Beck 2001

13 A Proposed Strategy  Cost in points  Value in units  Get valuation done in relative units (what a unit mean is irrelevant)  Try to break-down big value elements  Keep value independent from any notion of cost  Relate to: 100-point method, Karl Wiegers’ prioritization scheme, …. AHP, Theory W (?) Leffingwell 2003, Wiegers 1999, Saaty 1990, Boehm 1989

14 (cont.) Valuing architectural design  Value architecture by taking units from top level, user-visible features, and flowing them down to non-visible development elements  How? The “revenue taxation” model: 12 % across The “head tax” model: collect fixed amount of units The “pay-per-use” model: pay a percentage only if it makes use of it The “auction” model ??

15 (cont.) Flowing-down value  Need a rich dialog between Developers Architecture, design Dependencies between design “chunks” Costing development in points Business representatives Features, prioritization Valuation in units … during early phases to jointly “flow down” value to development elements ICM: valuation and architecting phases (Please, make it 2 sets of activities in a single phase, plus updating activities in other phases) Boehm & Lane 2007

16 Points (cost) and Units (value)

17 Points (cost) and Units (value)

18 Points (cost) and Units (value)

19 Points (cost) and Units (value)

20 Points (cost) and Units (value)

21 Points (cost) and Units (value)

22 Points (cost) and Units (value)

23 Points (cost) and Units (value)

24 Points (cost) and Units (value)

25 Some rules for the game  Total value is constant, through flowdown, hence throughout architectural design  Adding requirements adds value (using relative units to evaluate)  Total cost evolves with architectural design (it should go down, or maybe not)  Costs re-evaluated as development progress (agile concept of velocity)  Value cannot be changed after implementation to change priorities  Keep costs and values well separated  Can’t deliver architectural bits without user visible bits (and vice versa)  MMF

26 Key points  Value often not correlated to cost  Express value in relative terms, not absolute $$$  Proceed to architectural design  Re-allocate some of the user-visible value to non-visible element, with constant sum  MMF = minimum marketable features  Schedule iteration sequence based on fully valued development elements + dependencies  Better fit to a revised Earned-Value System  Many benefits in the dialog itself (value is in the journey)

27 Value (units), Costs (points), and real $$$   Dev. $$$  points Rev. $$$  units Time Denne 2004

28 Questions?

29 References 1.Agile Alliance (2001) Manifesto for Agile Software Development. 2.Beck, K., & Fowler, M. (2001). Planning Extreme Programming. Boston: Addison- Wesley. 3.Boehm, B. and Lane, J.A. (2007) Using the incremental commitment model to integrate system acquisition, system engineering, and software engineering, University of Southern California, Los Angeles, September Boehm, B. & Ross, R. (1989) "Theory-W Software Project Management: Principles and Examples." IEEE Transactions on Software Engineering 15 (4) Cohn, M. (2006) Agile Estimating and Planning. Upper Saddle River, N.J.: Prentice-Hall, 6.Denne, M., & Cleland-Huang, J. (2004). Software by Numbers: Low-Risk, High- Return Development, Prentice Hall. 7.Karlsson, J. & Ryan, K. (1997). A Cost-Value Approach for Prioritizing Requirements, IEEE Software, 14 (5) Kruchten, P. (2007). Voyage in the Agile Memeplex: Agility, Agilese, Agilitis, Agilology. ACM Queue, 5(5), Leffingwell, D. & Widrig, D. (2003) Managing Software Requirements: A Use Case Approach, 2nd ed. Boston, MA: Addison-Wesley. 10.Maier, M.W. (2006) System and software architecture reconciliation. Systems Engineering, 9 (2) Wiegers, K. (1999). First Things First: Prioritizing Requirements. Software Development Magazine, 7(9),