Agile Software Development

Slide 1 Robert Heim Agile Software Development 17.01.2013 I assume: Audience has heard the term „Agile Software Development“ and has heard of prac...
1 downloads 1 Views 1MB Size
Slide 1

Robert Heim

Agile Software Development

17.01.2013

I assume: Audience has heard the term „Agile Software Development“ and has heard of practices like „Pair programming“, „Test-Driven-Development“, „Prototyping“, … I will: be abstract on the methods itself (one can easily look them up if further info needed), but be detailed on how to rate methods

Slide 2

Content  

Motivation Agile Methods ◦ ◦ ◦ ◦

 

Current movements: Programs of Agile Alliance Discussion of Adoption ◦ ◦ ◦ ◦



Attributes – What is „Agile“? Problems Evaluation criteria Examples + differences

Software Process Improvement Standards Example: British Telecom Empirical studies

Conclusion & Recommendations ◦ Agile Framework (process) ◦ Architecture Framework for Agile Processes (software)

 

Resources Notes on some methods and additional slides for further explanations 17.01.2013

Slide 3

Motivation 

Problems: Delivery on time, QM, late changes, etc.



Rapidly growing: internet and mobile apps



Need: lighter, faster, more flexible software development process

17.01.2013

1/22

Slide 4

Content  

Motivation Agile Methods ◦ ◦ ◦ ◦

 

Current movements: Programs of Agile Alliance Discussion of Adoption ◦ ◦ ◦ ◦



Attributes – What is „Agile“? Problems Evaluation criteria Examples + differences

Software Process Improvement Standards Example: British Telecom Empirical studies

Conclusion & Recommendations ◦ Agile Framework (process) ◦ Architecture Framework for Agile Processes (software)

 

Resources Notes on some methods and additional slides for further explanations 17.01.2013

Slide 5

Agile Software Development 

„Late 1990 several methodologies began to get increasing public attention. Each had a different combination of old ideas, new ideas, and transmuted old ideas. But they all emphasized close collaboration between the programmer team and business experts; face-to-face communication (as more efficient than written documentation); frequent delivery of new deployable business value; tight, self-organizing teams; and ways to craft the code and the team such that the inevitable requirements churn was not a crisis.” – Agile Alliance4 17.01.2013

deployable business value = less documentation

2/22

Slide 6

For more see: http://agilemanifesto.org/principles.html

Agile Methods - Attributes Incremental (max. 3 month16) rapid dev. cycle cooperative close customer straightforward easy to learn / flexible methods adaptive last minute changes 17.01.2013

3/22

A cycle is e.g.: 1. Functionality needed immediately, 2. Fast implementation 3. Collect feedback 4. react rapidly to business + technology changes [16] Lichter, reference models, SWC department

Slide 7

Agile Methods - Problems 

E.g. Agile Alliance

◦ 2000+ papers since 2002 21 ◦ Agile Conference1 2012: ~200 talks



But still: lack of scientific studies and empirical evidence²



People not aware of approaches/suitability for real-life situations 2, 14, …

?

 How

to rate, choose and benefit from specific agile methods? 17.01.2013

4/22

[2] Technical research center of Finland Abrahamsson… New Directions on Agile Methods : A Comparative Analysis. Science. 2003 [14] Austrian study

Slide 8

Agile Methods – Evaluation Criteria² Software dev. life-cycle  Project management support  Abstract concrete  Universally situational  Empirical evidence 

17.01.2013

Abstract / concrete: principles concrete guidance Universally = fit per se in all agile dev. situations

5/22

Slide 9

Agile Methods – Examples and Differences²

17.01.2013

Inception = project begin/founding of project ASD = Adaptive Software Development AM = Agile Modeling DSDM = Dynamic Systems Development Method FDD = Feature Driven Development ISD = Internet Speed Development PP = Pragmatic Programming

6/22

Slide 10

Agile Methods - Choosing Cannot answer the questions with ease: „Should I use ASD in my upcoming project? And which methods are suitable?“ 



NO STANDARD, yet (even if some ASDs are well known by many people, e.g. XP, Scrum)

17.01.2013

7/22

Slide 11

Content  

Motivation Agile Methods ◦ ◦ ◦ ◦

 

Current movements: Programs of Agile Alliance Discussion of Adoption ◦ ◦ ◦ ◦



Attributes – What is „Agile“? Problems Evaluation criteria Examples + differences

Software Process Improvement Standards Example: British Telecom Empirical studies

Conclusion & Recommendations ◦ Agile Framework (process) ◦ Architecture Framework for Agile Processes (software)

 

Resources Notes on some methods and additional slides for further explanations 17.01.2013

Slide 12

Agile Alliance – Current Programs1 

”Supporting Agile Adoption: It’s about Change”  organizational change (compare Lichter16 )



In 2012: ◦ Characteristics of agile organizations18 ◦ AWG – A sustainable Engine for Enterprise Agile Adoption19 ◦ Project Studies Program: longitudinal studies1 17.01.2013

8/22

Agile Alliance: a nonprofit organization with global membership, committed to advancing Agile development principles and practices Compare: my seminar 10/11 on improvement models: business has to address the culture of the organization AWG = Agile Working Group = Scrum team, with product: enterprise implementation of Agile, evidence of management support

Slide 13

Content  

Motivation Agile Methods ◦ ◦ ◦ ◦

 

Current movements: Programs of Agile Alliance Discussion of Adoption ◦ ◦ ◦ ◦



Attributes – What is „Agile“? Problems Evaluation criteria Examples + differences

Software Process Improvement Standards Example: British Telecom Empirical studies

Conclusion & Recommendations ◦ Agile Framework (process) ◦ Architecture Framework for Agile Processes (software)

 

Resources Notes on some methods and additional slides for further explanations 17.01.2013

Slide 14

Agility and Software Process Improvement (SPI)16 

See [7, 12]

Success factors ◦ People, technology, process ◦ Team needs skills + tools required to apply process



„Never apply process models for their own sake!“16



Fitting Portfolio of Process Models (PM)



Monitor process, to see if it still fits ( Quality Management e.g. software metrics12) 17.01.2013

9/22

Portfolio = Organization choose the mix of old (like CMMI) and new (like XP) models PM Selection criteria: Organization-culture, developer-team, project-constraints, business-goals Needs to be accepted from all involved people (that it supports their daily-work) (compare [14] Austria study) [16] = Lichter Software Processes in an Agile World. Department did many research on Software-Process-Improvement Models, Seminar WS10/11 SCRUM in large organizations works [ 7] = study from Pakistan, Agile Software Development : Impact on Productivity and Quality [12] = software metrics for ASD, University of Magdeburg, Germany

Slide 15

Standards 

2003: XP connectable with current ISO “software life cycle process”11 ◦ Main idea: „working software over comprehensive documentation“ ◦ practical evidence missing?! ◦ Conclusion: project specific standards



Agile Alliance Program (2012): Costs of IT Projects in coop. FASB (founded 1973):

Agile Accounting Standard

◦ “define and standardize internal IT development costs […] ◦ […] for organizations that use an […] agile software development methodology”5



But: no standard for ASD it self  17.01.2013

10/22

Projects often need to fit ISO standard (due to organization, management, regulation) 11: Standards and Agile Software Development.  abstract, XP and ISO norm for "software life cycle" integration, but only abstract. To fit to docu-standards-requirements: in XP as system requirement FASB (financial accounting standards board: develop generally accepted accounting principles (GAAP) within the United States in the public's interest

Slide 16

Example – British Telecom15 

Environment: ◦ 2006, ~8000 IT professionals ◦ Before: waterfall with CMMI, 2 years later: DSDM + Scrum ◦ Aim/Focus: Delivering Business Value



Problems / Risks: ◦ Architecture of IT-Organization + mindsets of people have to be changed ◦ Complexity ◦ Outsourced parts of code, where no tests exists



Practice: ◦ ◦ ◦ ◦ ◦



Before: 12month + cycles Now: 90 days cycle First 3 days cross-functional teams exploring one business problem At day 90 want deployable, fully-tested solution within that 90days use internal agile methods (like 2-4week cycles).

Result: challenging, but early success and they would not turn back 17.01.2013

11/22

CMMI = Capability Maturity Model Integration DSDM = Dynamic systems development method High risk = program has business commitments to make and little scope to take extra risk of adopting new practices  Deliver business value or close program if it fails to deliver value over some cycles

Slide 17

Results of (good) empirical study14  

Austria 2008 Interviewed developer and manager (but answers did not differ as much as expected)

100 companies, 42% acceptance-rate  40,5% large organizations (>250)  Focus: XP, especially Pair-Programming  Results: 

◦ Most know XP (~40%) and Scrum (~30%) ◦ General awareness of ASD exists ◦ But lack of knowledge of concrete practices 17.01.2013

12/22

Slide 18

Results of (good) empirical study14 

Results

◦ People are main obstacle to practical application of ASD, Most important:  Lack of knowledge and time  refusal of management



Concrete Reality: Agile methods used on demand  Test-first:  75% rarely use it (only when needed)

 Pair-programming:  32% only for complex tasks  7,1% for tutoring (or on demand)



 No really systematic approach towards agile development in practice (2008) 17.01.2013

Bad Mindset: “Adoption of some practices is enough for agile dev.” Lack of knowledge (but only 1/3 wanted more information)

13/22

Slide 19

Results of quantitative analysis7 (to be understood carefully) 2010 Pakistan  Online survey, 200 requests, 42 responses (21%), Focus: Impact on Productivity  Results: 

◦ Mainly Scrum, MSF and XP known/used ◦ Fewer but competent/experienced developers deliver outputs in lesser time and better quality ◦ Train people to be up to date with tools and technologies 17.01.2013

MSF = Microsoft Solutions Framework

14/22

Slide 20

Results of quantitative analysis7 (to be understood carefully)  

100% do knowledge sharing as an essential constituent of agile methodologies Techniques used:

17.01.2013

15/22

Regression test = test to ensure that a new change has not spawn new bugs. CI: small incremental changes, developer often commit, each commit = build hole system + ideally tests TDD a little controversial to other study, cause they say test-FIRST rarely used

Slide 21

Results of quantitative analysis7 (to be understood carefully) Increase in productivity / quality

17.01.2013

16/22

Slide 22

Content  

Motivation Agile Methods ◦ ◦ ◦ ◦

 

Current movements: Programs of Agile Alliance Discussion of Adoption ◦ ◦ ◦ ◦



Attributes – What is „Agile“? Problems Evaluation criteria Examples + differences

Software Process Improvement Standards Example: British Telecom Empirical studies

Conclusion & Recommendations ◦ Agile Framework (process) ◦ Architecture Framework for Agile Processes (software)

 

Resources Notes on some methods and additional slides for further explanations 17.01.2013

Slide 23

Conclusion 

Pro‘s

◦ Fast delivery in praxis ◦ Easy to learn (compared to other SPI-methods) ◦ Early success/results in most companies could been shown



Con‘s

◦ Missing evidence  difficult method-decision ◦ Self-organizing teams not always best22 ◦ Customer‘s role stressful and not sustainable over long periods10 ◦ May fail in large organizations 10 (controversial)  High commitment 17.01.2013

17/22

Self-organizing not best: in complex, non-linear problem-solving situations Controversy: experienced developer tend to adopt ASD better, risk higher, see British Telcom [10 ] = 2005 What do we know about Agile Software Development?

Slide 24

Conclusion – State of Research 

2008 - Roadmap for empirical research: Scientific research and experimental evidence needed 22, 10 ◦ Done: XP, Scrum23, especially Pair-Programming ◦ Test-driven: productivity increase less obvious and as seen rarely used in reality



Research should concentrate on: Include criteria of other fields / theories experienced ASD teams and organizations  longitudinal studies  Prioritize management-oriented approaches  



If interested: see problem definition and some practical results (mostly Scrum): 2007 - Exploratory study from Microsoft Research calling for further studies 23 17.01.2013

18/22

Other fields: problem: SE references only SE research, but what is with not directly related to agile methods, e.g. task-technology-fit, social and organizational learning theory, knowledgebased theory of firm, … Longitudinal studies: to see effects on other components of business [22] = 2008, A Preliminary Roadmap for Empirical Research on Agile Software Development [10] = 2009, What do we know about ASD, Frauenhofer Center for Experimental SE [23] = promising Exploratory Study from Microsoft

Slide 25

Conclusion – State of Research 

2008 and Goal for 2015 22

17.01.2013

19/22

Most important: Expertise = competence Research methodology Evidence / impact on industry Cohesiveness = how established ASD is [22] = 2008, A Preliminary Roadmap for Empirical Research on Agile Software Development Additional slide for explanation at end

Slide 26

See [10] for further practical & realistic results

Conclusion - Reality 

Adoption / choosing methods: ◦ ASD needs to be accepted by all participants ◦ Study characteristics of    

Project Organization structure & culture 18, 19 Regulations compare to methods‘ characteristics to find matches

◦ Train people (best in University20)

17.01.2013

20/22

Participants: developers, managers, customers, etc. [10] = 2009, What do we know about ASD, Frauenhofer Center for Experimental SE [18] = 2012 Agile Alliance - Characteristics of Agile Organizations. 2012, [19] = 2012 Agile Alliance - AWG (Agile Working Group) A sustainable Engine for Enterprise Agile Adoption [20] = 2009 Weaving Agile Software Development Techniques into a Traditional Computer Science Curriculum

Slide 27

Content  

Motivation Agile Methods ◦ ◦ ◦ ◦

 

Current movements: Programs of Agile Alliance Discussion of Adoption ◦ ◦ ◦ ◦



Attributes – What is „Agile“? Problems Evaluation criteria Examples + differences

Software Process Improvement Standards Example: British Telecom Empirical studies

Conclusion & Recommendations ◦ Agile Framework (process) ◦ Architecture Framework for Agile Processes (software)

 

Resources Notes on some methods and additional slides for further explanations 17.01.2013

Slide 28

Recommended Agile Framework7 (2010) 

Refactoring to change internal code without affecting external functionality



See [7] for more details

17.01.2013

emphasis flexible design, to be able to integrate late changes

21/22

Slide 29

Recommended Software Architecture for Agile Business Process13 (2010) 

Problem: „ASD is an excuse for developers to implement as they like, coding away without proper planning or design […] and consequently causing suboptimal design decisions.“ 13



Approach 2010 Architecture Framework for Agile processes (AFA) 13



Idea: Decoupling Components:

◦ ◦ ◦ ◦ 

Simple APIs of internet addressable containers Layers with different responsibilities Pro‘s: allowing changes in architecture with minimal effects on other components  less testing  better time-to-market Con‘s/Feature work: benchmark/performance because additional layers

Compare [6] (2010) for more detailed and practical scenarios and decision making, including freezing the architecture and how to decide when to do it, calling for more research 17.01.2013

22/22

Container = collection of entries accessible via basic API [13] = guys from Vienna University of Technology, Austria Coordination: e.g.: Fifo instead of Lifo can be changed, without touching algorithms for data computation [6] = Agility and Architecture: Can they Coexist? 2010.

Slide 30

Literature / Resources   

   

     

[1] Agile Conference 2012 - http://agile2012.agilealliance.org/program/ [2] Abrahamsson P, Warsta J, Siponen MT, Ronkainen J. New Directions on Agile Methods : A Comparative Analysis. Science. 2003. [3] Agile Manifesto - http://agilemanifesto.org/principles.html [4] Agile Alliance - „What is Agile Software Development?“ http://www.agilealliance.org/the-alliance/what-is-agile/ [5] Agile Alliance - „ Agile Accounting Standard Program“ www.agilealliance.org/programs/agile-accounting-standard-program [6] Abrahamsson, Pekka; Babarr, Muhammad Ali; Kruchten P. Agility and Architecture: Can they Coexist? 2010. [7] Ahmed A, Ahmad S, Ehsan N, Mirza E, Sarwar SZ. Agile Software Development : Impact on Productivity and Quality. Development. 2010:287-291. [8] Begel A. Usage and Perceptions of Agile Software Development in an Industrial Context : An Exploratory Study. Time. 2007:255-264. [9] Dingsøyr T, Dybå T, Abrahamsson P. Agile 2008 Conference A Preliminary Roadmap for Empirical Research on Agile Software Development. Most. 2008:83-94. [10] Dybå T, Dingsøyr T. What do we know about Agile Software Development? Small. 2005:0-3. [11] Kourie DG, Watson BW. Standards and Agile Software Development. Computer. 2003:1-11. [12] Kunz M, Dumke RR, Zenker N. Software Metrics for Agile Software Development. Work. 2008:673-678. [13] Mordinyi R, K E, Schatten A. Towards an Architectural Framework for Agile Software Development. 2010;(section IV).

17.01.2013

L1

Slide 31

Literature / Resources 

[14] Schindler C. Agile Software Development Methods and Practices in Austrian IT-Industry : Results of an Empirical Study. Technology. 2008:321-326.



[15] Agile Delivery at British Telecom 2006 http://www.methodsandtools.com/archive/archive.php?id=43



[16] Lichter H. Software Processes in an Agile World. 2012;6(November)



[17] Agile Alliance - Resources http://www.agilealliance.org/resources



[18] Arell R, Coldewey J, Gat I, Hesselberg J. Characteristics of Agile Organizations. Methods. 2012.



[19] Arell R, Coldewey J, Gat I, Hesselberg J. A Sustainable Engine for Enterprise Agile Adoption. 2012.



[20] Maher P, Avenue EL, Louis S. Weaving Agile Software Development Techniques into a Traditional Computer Science Curriculum. 2009:0-1.



[21] Agile Alliance - Conference Papers - http://conferences.agilealliance.org/sessions



[22] 1. Dingsøyr T, Dybå T, Abrahamsson P. A Preliminary Roadmap for Empirical Research on Agile Software Development. Most. 2008:83-94.



[23] Begel A. Usage and Perceptions of Agile Software Development in an Industrial Context : An Exploratory Study. Time. 2007:255-264.

Fee-based 

[24] IGI Global - 2005 - Agile Modeling, Agile Software Development, and Extreme Programming: The State of Research, http://www.igiglobal.com/article/journal-database-management-jdm/3343



[25] AIS - Association for Information Systems - 2011 - Overview and Guidance on Agile Development in Large Organizations http://aisel.aisnet.org/cais/vol29/iss1/2/ 17.01.2013 L2

Slide 32

APPENDIX

17.01.2013

Slide 33

(E)Xtreme Programming (XP) Developed at Chrysler ~1996 – 2000  Collection of concrete best practices  E.g. 

◦ ◦ ◦ ◦ ◦

Short iterations Pair programming Rapid feedback / close customer Communication Continuous refactoring + integration + testing ◦… 17.01.2013

A1

Slide 34

Scrum ~1995  Manage Software development process  Empirical base, focus on 

◦ ◦ ◦ ◦ ◦

Flexibility Adaptability Productivity Frequent management activities + Sprints Developer chooses specific techniques/practices for implementation 17.01.2013

A2

Slide 35

Adaptive Software Development (ASD) ~2000  Adaptive/incremental paradigm instead of waterfall  Constant prototyping  Framework for guidance to prevent chaos, but not suppressing emergence and creativity 

17.01.2013

A3

Slide 36

Agile Modeling (AM) ~2002  Focus: modeling and cultural principles  Modeling using agile philosophy  Advanced models  Aim: amount of models and documentation as low as possible 

17.01.2013

A4

Slide 37

Crystal Family ~1998  Different methods  Select best fitting based on „color-rating“ (size and criticality)  Tailoring methods to fit needs  Integrate other agile methods like XP/Scrum 

17.01.2013

A5

Slide 38

Dynamic Systems Development Method (DSDM) One of the first truly agile methods (~1994)  Normally: fixed functionality + adjust time/resources Here: fix time/resources and adjust functionality 

17.01.2013

A6

Slide 39

Feature Driven Development (FDD) ~2002  Process oriented for business systems  Design and building phases  Iterative  Quality aspects in process  monitoring of progress 

17.01.2013

A7

Slide 40

Internet Speed Development (ISD) ~2001  Need: Fast releases in a chaotic fast moving process  Descriptive, management-oriented framework to handle fast iterations: 

◦ Time-drivers ◦ quality dependencies ◦ good people = less process

17.01.2013

A8

Slide 41

Pragmatic Programming (PP) ~2000  Collection of best practices  ~70 so called „tips“ focusing day-to-day problems  Incremental, iterative development, testing, user-centered design 

17.01.2013

A9

Slide 42

Description of current status and suggested goal for 2015 22

17.01.2013

A10

Suggest Documents