Overview Agile Methods

Post on 18-Feb-2017

7.663 views 0 download

Transcript of Overview Agile Methods

DO MOREw w w . r i s e . c o m . b r

05/01/23 2

An Overview about Agile Methods

Advisor: Silvio Romero de Lemos MeiraCo-Advisor: Eduardo Santana de Almeida

Speaker: Ivonei Freitas da Silva

05/01/23 3

Summary

• Introduction (History)• Agile• Agile Methods – overview• Problem, Suggestion, Researches• References

Introduction (History)

Agile, Iterative and Incremental Development (IID)• 1930s (Larman & Basili, 2003)

– Walter Shewhart, short cycles for quality improvement• Plan-do-study-act (PDSA)

• 1940s (Larman & Basili, 2003)

– W. Edwards Deming, began promoting PDSA• 1950s (Larman & Basili, 2003)

– X-15 hypersonic jet, IDD was considered a major contribution to the X-15’s success

Introduction (History)

• 1960s (Larman & Basili, 2003)

– X-15 seeded NASA and IBM Federal Systems Division Project Mercury

• Project Mercury, applied test-first development, planning and writing tests before each micro-increment

• 1970s (Larman & Basili, 2003)

– Winston Royce (Managing the Development of Large Software Systems)

• 30-month project might have a 10-month pilot model• He was ALWAYS a proponent of iterative, incremental,

evolutionary development within the context of the 60s/70s

Discussing pre-launch (simulated) training....http://www.chessin.com/paul/pmerc.html

Introduction (History)

• 1970s (Larman & Basili, 2003)

– IBM: Trident submarine, 1 million lines of code, “integration engineering”, awarded an IBM Outstanding Contribution Award for the work

– TRW: Winston Royce, Barry Boehm (chief scientist)– Vic Basili and Joe Turner, paper about IDD– Tom Gilb published (Software Metrics), introduced the

terms “evolution” and “evolutionary” to the process

Introduction (History)

• 1980s (evolutionary prototyping) (Larman & Basili, 2003)

– Weinberg, (Adaptive Programming: The New Religion)– Grady Booch, (Software Engineering with Ada)– Tom Gilb, (Evolutionary Delivery versus the Waterfall

Model), frequent delivery– Bary Boehm, (A Spiral Model of Software Development

and Enhancement)– Frederick Brooks, (No Silver Bullet)

Introduction (History)

• 1980s (Larman & Basili, 2003)

– David Parnas and Paul Clements (A Rational Design Process: How and Why to Fake It)

– DoD was experiencing significant failure based on waterfall model (75% failed)

– Dod changed to allow IID (1987/1988), DoD-Std 2167A– Tom Gilb, (Principles of Software Engineering

Management), chapters dedicated to IID

Introduction (History)

• 1990s (stronger evolutionary) (Larman & Basili, 2003)

– Success in Canadian Automated Air Traffic Control System (CAATS)

– DoD Mil-Std-498 replaced 2167A– Jeff Sutherland and Ken Schwaber, employed time-boxed

30-day iterations• Inspiration from Japanese IID approach (1980), shashimi

(slices or iterations); and version of Scrum in 1986• 1999 article described refinements to Scrum

– Methods• Dynamic Systems Development Method (DSDM); Rational

Unified Process, XP practices, Feature-Driven Development (FDD)

Introduction (History)

• Standish Group CHAOS reported, 1998, to adopt IID

• 2000s (Larman & Basili, 2003)

– Agile– DoD replaced Mil-Srd-498 to DoD-5000.2– Meeting, Utah, 2001, promoting IID

• Agile Alliance• Agile methods

• 2000s to the present – Lean, Evo, Crystal family, Open Rup, MSF XP2, …

Agile - Fundamentals

• Definition– Ability to adapt quickly and flexiblity to changes in

process, product and environment (Aoyama, 1998)

• Characterization – Adaptability, incrementally, iteratively, collaboratively,

cooperation, orientation to people, leanness, restriction of time (Miller, 2001) (Abrantes & Travassos, 2007)

– Knowledge is Tacit, Comunication is Informal, Customer’s Role is Critical, Control is People Centric, Desired Organizational Form/Structure is Organic (flexible and participative encouraging cooperative social action) (Nerur et al., 2005)

Agile - Fundamentals

• Manifesto for Agile Software Development (Agile Manifesto, 2001)

– Individuals and interactions over processes and tools 

– Working software over comprehensive documentation 

– Customer collaboration over contract negotiation – Responding to change over following a plan 

Agile - Fundamentals

• Principles behind the Agile Manifesto(Principles Agile Manifesto, 2001)

– Highest priority is to satisfy the customerthrough early and continuous deliveryof valuable software.

– Best architectures, requirements, and designs emerge from self-organizing teams

– Welcome changing requirements– Deliver working software frequently, from a 

couple of weeks to a couple of months, with a preference to the shorter timescale.

– Build projects around motivated individuals. – Most efficient and effective method of 

conveying information to and within a development team is face-to-face conversation.

Agile - Fundamentals

• Principles behind the Agile Manifesto– At regular intervals, the team reflects on how 

to become more effective, then tunes and adjusts its behavior accordingly

– Simplicity--the art of maximizing the amount of work not done--is essential

– Agile processes promote sustainable development The sponsors, developers, and users should be able to maintain a constant pace indefinitely

– Working software is the primary measure of progress– Business people and developers must work 

together daily throughout the project– Continuous attention to technical excellence 

and good design enhances agility

Agile – Why? (http://www.standishgroup.com/)

Agile – Why? (http://www.standishgroup.com/)

51%34%

15%

Com problemassucesso

falham

Agile – Why?(Beck & Fowler, 2001)

Software development isn’t previsibleSoftware development needs constantly making little corrections

Agile – Why?

Agile - Culture

(O’Reilly et al, 1991) (Tolfo & Wazlawick, 2008)

• Characteristics

– Innovation and Risk– Detail Orientation– Outcome Orientation– Team Orientation– Aggressiveness– Stability– People Orientation

Agile - Culture

• Innovation and Risk– Agile requires observing developer’s disposition to

innovate and shoulder risks• Detail Orientation

– Agile requires code been simple, test , understand the customer, continuous integrations, …

• Outcome Orientation– Agile requires balance among profitability, minimization

of costs, and other values, such as concern with employees’ work conditions and software quality

Agile - Culture

• Team Orientation– In Agile teamwork is extremely valued, and it becomes

feasible through communication, feedback, common vocabulary and preference for more direct forms of communication

• Aggressiveness– In Agile by means of collaboration, developers may teach

and guide inexperienced colleagues• Stability

– Agile is a considerable change for any company• People Orientation

– In Agile the way software is developed depends essentially on people

The Satir Model (Satir, 1991) (Smith, 2009)

Agile – Framework

• 4-DAT (4-dimensional analytical tool) – Framework that assesses degrees of agility– Selection or adoption of an agile method or agile method

fragments• 4-DAT Dimensions

– Method scope (size, environment, culture,…)– Agility characterization (flexibility, speed, leanness, …)– Characterization of agile values (manifesto values,

keeping the process agile, keeping the process cost effective)

– Software process characterization (development process, project management process, process management process, …)

(Qumer & Henderson-Sellers, 2008)

Agile – Framework

Few organizations are able, psychologically or technically to adopt agile approaches over a short period

• How to adopt and improve agile methods?

(Qumer & Henderson-Sellers, 2008)

Agile – Framework

• ASSF (Agile Software Solution Framework) – assist managers– 4-DAT– Knowledge– Governance– Business-Agile Alignment Bridge– …

• AAIM (Agile Adoption and Improvement Model)• ASOP (Agile Service Oriented Process)

(Qumer & Henderson-Sellers, 2007)

Agile – Framework(Q

umer &

Henderson-S

ellers, 2008)

AGILE METHODSScrum, DSDM, Crystal, FDD, Lean, XP, ASD

Agile Methods – Scrum

• Jeff Suttherland– http://jeffsutherland.com

• Ken Schwaber– http://www.controlchaos.com

• Conferences– OOPSLA 96, PLoP 98

• Inspiration– Incremental and Iterative Development in companies (Japan &

EUA – 80)– Takeuchi, Hirotaka and Nonaka, Ikujiro. New Product

Development Game. Harvard Business Review. Jan/Feb 1986– DeGrace, P. and Hulet-Stahl, L. Wicked Problems, Righteous

Solutions. Yourdon Press, 1990

Scrum relies on self-commitment, self-organization, and emergence rather than authoritarian measuresKen Schwaber

Agile Methods – Scrum (http://www.controlchaos.com/about/)

Agile Methods – DSDM

• Dynamic Systems Development Method – DSDM– Principles1. Active user involvement is imperative2. The team must be empowered to make decisions3. The focus is on frequent delivery of products4. Fitness for business purpose is the essential

criterion for acceptance of deliverables5. Iterative and incremental delivery is necessary

to converge on accurate business solution6. All changes during development are reversible7. Requirements are baselined at a high level8. Testing is integrated throughout the lifecycle9. Collaboration and co-operation between all stakeholders is essential

(Highsmith, 2002)

Agile Methods – DSDM

DSDM Process(Highsmith, 2002) (www.dsdm.org)

FeasibilityStudy

Functional ModelIteration (x3)

Agree Plan

CreateFunctionalPrototype

Review Prototype

IdentifyFunctionalPrototype

Design & BuildIteration (x3)

Identify DesignPrototypes

AgreePlan

Create DesignPrototype

ReviewDesign

Prototype

Implementation

Implement

TrainUsers

User Approval& Guidelines

ReviewBusiness

Business Study

Pre-project

Post-project

Agile Methods – DSDM

• At the heart of DSDM are• Facilitated Workshops• Prioritisation• Timeboxing• Prototyping

• As well as others, for example• Risk Management• Configuration Management• Modelling

(www.dsdm.org)

Agile Methods – DSDM

• Project Level Roles• Executive Sponsor• Visionary• DSDM Project Manager• Technical Co-ordinator

• Core Team Roles• DSDM Team Leader• Developer• Ambassador User• Tester • Scribe

• Other Roles• Advisor User, Facilitator, Specialists

• One person many roles• One role many people• Substitute

responsibilities• But cover them alle.g. Ambassador User Input to business requirements Provide detail business scenarios Communicate with other users Provide input to prototyping sessions Review documentation Review and accept delivered

software User training / user documentation Organise and control user testing

(Highsmith, 2002) (www.dsdm.org)

Agile Methods – Crystal Family

Focusing on skills, communications, and community allows the project to be more effective and more agile than focusing on processes and plans

Alistair Cockburn(http://alistair.cockburn.us/crystal)

• Crystal: clear, yellow, orange, orange-web, red

Agile Methods – Crystal Family(http://alistair.cockburn.us/crystal)

Agile Methods – Crystal Family

• Principles - summary– The team can reduce intermediate work products as it

produces running code more frequently, as it uses richer communication channels between people.

– Every project is slightly different and evolves over time, so the methodology, the set of conventions the team adopts, must be tuned and evolve

(http://alistair.cockburn.us/crystal)

Agile Methods – Crystal Family

• Elements of Crystal Clear– Roles

• sponsor, senior designer-programmer, designer-programmer, and user

– Work products• release plan, schedule of reviews, low-ceremony use cases

(or equivalent), design sketches, running code, common object model, test cases, and user manual

– Policy standards• incremental delivery every two to three months, some

automated testing, direct user involvement, two user reviews per release, and methodology tuning workshops

(http://alistair.cockburn.us/crystal)

Agile Methods – FDD

• FDD – Feature-Driven Development– The system is the Project– Managers must first learn to see, hear, and think about

human systems before they can hope to control them– Software projects are human systems

• Feature Naming Template– <action> the <result> <by|for|of|to> a(n) <object>– Calculate the total amount of a Sale

(http://www.featuredrivendevelopment.com/)

Agile Methods – FDD

(http://www.featuredrivendevelopment.com/)

Agile Methods – FDD

(http://www.featuredrivendevelopment.com/)

Agile Methods – FDD

(http://www.featuredrivendevelopment.com/)

Agile Methods – Lean Development

• book by Mary Poppendieck and Tom Poppendieck• Principles (inspired in Toyota Production System)

– Eliminate Waste– Amplify learning– Decide as late as possible– Deliver as fast as possible– Empower the team– Build integrity in– See the whole– * Domain, not point, solutions– ….

Businesses are discovering that while their markets change rapidly, their software systems do not.Bob Charette, Foundations of Lean Development

(http://www.poppendieck.com/people.htm)

(Highsmith, 2002)

Agile Methods – Lean Development

• One facet of Lean is a focus on business domains– Software is built for certain domains that make high-

level reusability possible

• The process side of Lean– Scrum, DSDM

(Highsmith, 2002)

Agile Methods - XP

Always be doing the most important thing you can be working onKent Beck (XP Immersion workshop)

• XP – Extreme Programming– OOPSLA’2000– Coach, tracker, ....

• Values– Comunication– Feedback– Courage– Simplicity– Respect

(www.extremeprogramming.org/rules.html)

( http://www.xprogramming.com/)

Agile Methods - XP

• Principles– Humanity– Economy– Diversity– Improvement– Reflection– Baby Steps– …

(www.extremeprogramming.org/rules.html)

( http://www.agile2008.org/)

( http://www.oopsla.org/)

( http://martinfowler.com/)( http://www.xprogramming.com/)

( http://www.testing.com/)( http://c2.com/cgi/wiki?ExtremeProgramming)

(www.agilcoop.org.br)

Agile Methods - XP

Agile Methods - ASD

• ASD – Adaptative Software Development• more than 100 projects using these practices

– Ken Orr and Sam Bayer• 1994, paper on experiences

– Bayer, Sam, and Jim Highsmith. "RADical Software Development." American Programmer 7, no.6 (June 1994): 35–42

Collaboration is difficult, especially when it involves other peopleKen Orr

Agile Methods - ASD

• Characteristics– Mission focused– Feature based– Iterative– Time-boxed– Risk driven– Change tolerant

(Highsmith, 2002)

Agile Methods - ASD

(Highsmith, 2002)

AGILE WORLD, AGILE METHODS

Evaluation, Tendency, Problem, Suggestions, Researches

Criteria XP Scrum FDD ASD DSDM CrystalScope

Project size Small, medium

Small, medium, and scalable for large

Small, medium, and large (business projects/applications)

Large and Complex projects

Small and large projects (Business Applications)

Small and medium

Team size <10<10 and multiple teams*

No limit – scalable from small to large teams

Not mentioned

Minimum 2 and Maximum 6 (Multiple teams)

Single team in crystal clear with maximum 6 people in a team. Multiple teams with maximum 40 persons in orange and 80 persons in red methodology

Development style Iterative, rapid Iterative,

rapidIterative design and construction

Iterative and rapid development – distributed development

Iterative, rapid development and cooperative

Iterative and rapid development

Agile Methods – Evaluation(Qumer & Henderson-Sellers, 2007)

Criteria XP Scrum FDD ASD DSDM CrystalCode style Clean and

simpleNot specified

Not specified

Not mentioned

Not mentioned Not mentioned

Technology environment

Quick feedback required

Not specified

Not specified

Not mentioned

Not mentioned Not mentioned

Physical environment

Co-located teams and distributed teams (limited-interaction)

Not specified

Not specified

Co-located and distributed teams

Not mentioned

Co-located team – no support for distributed development

Business culture

Collaborative and cooperative

Not specified

Not specified

Not specified

Collaborative and cooperative

Not mentioned

Abstraction mechanism Object-oriented Object-

orientedObject-oriented

Object-oriented/Component-oriented

Object-oriented/Component-oriented

Object-oriented

Agile Methods – Evaluation(Qumer & Henderson-Sellers, 2007)

Agile Methods – Evaluation(Qumer & Henderson-Sellers, 2007)

Agile Methods – Evaluation(Qumer & Henderson-Sellers, 2007)

Agile Methods - VersionOne

• Which Agile methodology do you Now is the Time follow most closely?– 49% Scrum; – 22,3% XP/Scrum hybrid– 8% XP– 2,1% FDD– 1, 9% Lean– 1,4% DSDM– 0,5% Crystal

Agile Development: A Manager’s Roadmap for Success White Paper, 2008

Agile Methods - VersionOne

• What was the MOST IMPORTANT reason for adopting Agile within your team or organization?– Accelerate Time-to-Market 22%– Enhance Ability to Manage Changing Priorities 21%– Increase Productivity 12%– Enhance Software Quality 10%– Improve Alignment Between IT and Business 9%– Improve Project Visibility 6%– Reduce Risk 6%– Simplify Development Process 4%– Other 3%– Improved/Increased Engineering Discipline 2%– Reduce Cost 2%– Enhance Software Maintainability/Extensibility 2%– Improved Team Morale 1%

Agile Development: A Manager’s Roadmap for Success White Paper, 2008

Agile Methods - VersionOne

• Which of the following specific tools do you currently use?– 36,4% Excel– 24,4% MS Project– 8% Bugzilla– 7,06% Rational– 4,56% Xplanner

Agile Development: A Manager’s Roadmap for Success White Paper, 2008

Agile – Case,Tools (large distributed agile team) (Cannizzo et al., 2008)

Agile Methods – Tendency

• Tendency (Sutherland, 2006) (Rao and Trapa, 2006) (Kolovos et al., 2005)– the future of scrum is still scrum, just faster, better, and cooler– Join from methods – Tools

• FireScrum (www.firescrum.com)• ScrumWorks (http://scrumworks.com/)• Mingle (http://studios.thoughtworks.com/mingle-agile-project-

management)• T3 - Tool for Monitoring Agile Development• COMDD (Code-Oriented Model-Driven Methodology)• ECGF (Extensible Code Generation Framework)• DSDM provides guidance on tools to assist people in choosing their

own tool set

Agile - Problems

• Agile is nothing new• Lack of focus on architecture• Little scientific support• Practices are rarely applicable• Agile is suitable for small teams• +/- 73% agile project dealt with employees who are

beginners

(Dyba & Dingsøyr , 2008)

Agile Methods - Criticize

• XP• Limited project perspective • Limited business focus• Limited Scalability• Too Extreme, informal for many organisations

• DSDM• Theoretical• Lacking in detail for developers• Lack of scientific studies

• Scrum• Only Focus on management• Lack of scientific studies

• Lean, Crystal, FDD, ASD• Lack of scientific studies

Agile Methods – Suggestions/Researches• DSDM and XP (others methods)

– DSDM v4.2 – (www.dsdm.org)• DSDM and UML, RUP (white papers, www.dsdm.org)

– tools• XP and Scrum

– Management and Development• Some practices

– Pair programming, daily meeting, Workshops, …

Agile Methods – Suggestions/Researches

• Balancing Discipline and Agility– Future trends are toward fusion of agile with plan-driven– Where is the silver bullets??

• people, values, communications, expectations management

– Some Balanced Methods are emerging• Crystal Orange, Code Science, DSDM, FDD, Lean, lighter

versions of the RUP

(Boehm, Turner, 2003)

Agile Methods – Suggestions/Researches

• Scrum– Ethnomethodological approaches/ conversation analysis

• Tools for understanding practices and sociological methods

• DSDM– theory needs some practice

• To explore qualitative studies (mature teams)

(Bates & Yates, 2008)

References

• (Abrantes & Travassos, 2007) ABRANTES,J.F.,TRAVASSOS, G.H., 2007, "Caracterização de Métodos Ágeis de Desenvolvimento de Software", Proceedings of Workshop de Desenvolvimento Rápido de Aplicações do Simpósio Brasileiro de Qualidade de Software (WDRA - SBQS 2007), Porto de Galinhas-PE, Brazil.

• (Agile Manifesto, 2001) Agile Manifesto, 2001. Manifesto for Agile Software Development. < http://agilemanifesto.org/>

• (Aoyama, 1998) Aoyama, Mikio. Agile Software Process and its Experience. ICSE, 1998.

• (Bates & Yates, 2008) Bates, C. D. and Yates, S. 2008. Scrum down: a software engineer and a sociologist explore the implementation of an agile method. In Proceedings of the 2008 international Workshop on Cooperative and Human Aspects of Software Engineering (Leipzig, Germany, May 13 - 13, 2008). CHASE '08. ACM, New York, NY, 13-16. DOI= http://doi.acm.org/10.1145/1370114.1370118

References

• (Beck & Fowler, 2001) Beck, Kent & Fowler, Martin. Planning Extreme Programming. Addison Wesley, 2001.

• (Boehm, Turner, 2003) Barry Boehm, Richard Turner. Observations on Balancing Discipline and Agility. 2003.

• (Cannizzo et al., 2008) Cannizzo, Fabrizio and Marcionetti, Gabriela and Moser, Paul. Evolution of the Tools and Practices of a Large Distributed Agile Team. Agile Conference, 2008.

• (Chow & Cao, 2007) Tsun Chow, Dac-Buu Cao. A survey study of critical success factors in agile software projects. 2007.

• (Dyba & Dingsøyr , 2008) Tore Dyba˚ *, Torgeir Dingsøyr. Empirical studies of agile software development: A systematic review. 2008.

References

• (Highsmith, 2002) Highsmith, Jim. Agile Software Development Ecosystems. Addison Wesley, 2002.

• (Kolovos et al., 2005) Kolovos, Dimitrios S. ; Paige, Richard F. and Polack, Fiona. An Agile and Extensible Code Generation Framework. Extreme Programming and Agile Processes in Software Engineering, 6th International Conference, XP 2005, Sheffield, UK, June 18-23, 2005. Springer. Lecture Notes in Computer Science.

• (Larman & Basili, 2003) Craig Larman,Victor R. Basili. Maryland Iterative and Incremental Development: A Brief History. 2003.

• (Miller, 2001) Miller, Granville G.. The Characteristics of Agile Software Processes. Proceedings of the 39th Int’l Conf. and Exhibition on Technology of Object-Oriented Languages and Systems (TOOLS’01).

References

• (Muthig et al., 2004) Mikael Lindvall, Dirk Muthig, Aldo Dagnino, Christina Wallin, Michael Stupperich, David Kiefer, John May, Tuomo Kähkönen. Agile Software Development in Large Organizations. 2004.

• (Nerur et al., 2005) Nerur, Sridhar; Mahapatra, RadhaKanta; Mangalaraj, George.Challenges of Migrating to Agile Methodologies. Communications of the ACM, Vol. 48, no. 5, 2005.

• (O’Reilly, 1991) O’Reilly, C.A., Chatman, J., Caldwell, D.F.. People and Organizational Culture: a profile comparison approach to assessing person organization fit. In: Academy of management Journal, pp. 487–516. 1991.

• (Principles Agile Manifesto, 2001) Principles Agile Manifesto, 2001. Manifesto for Agile Software Development. <http://agilemanifesto.org/principles.html>

References

• (Qumer & Henderson-Sellers, 2007) A. Qumer, B. Henderson-Sellers. An evaluation of the degree of agility in six agile methods and its applicability for method engineering. 2007.

• (Qumer & Henderson-Sellers, 2008) A. Qumer, B. Henderson-Sellers . A framework to support the evaluation, adoption and improvement of agile methods in practice. 2008.

• (Rao and Trapa, 2006) Rao, Santhpur and Trapa, Valerie. T3 - Tool for Monitoring Agile Development. IEEE. Proceedings of AGILE 2006 Conference (AGILE'06)

• (Satir, 1991) Satir, Virginia, et. al., The Satir Model: Family Therapy and Beyond, ISBN 0831400781, Science and Behavior Books, 1991.

• (Sato et al., 2006) Danilo Sato, Dairton Bassi, Mariana Bravo, Alfredo Goldman & Fabio Kon. Experiences Tracking Agile Projects: an Empirical Study, 2006.

References

• (Smith, 2009) Steven M Smith <http://www.stevenmsmith.com/my-articles/article/the-satir-change-model.html>

• (Sutherland, 2006) Sutherland, J.   Future of scrum: parallel pipelining of sprints in complex projects . Agile Conference, 2005. Proceedings. Patientkeeper, Inc., Brighton, MA, USA; IEEE Explore, 2006.

• (Tolfo & Wazlawick, 2008) Cristiano Tolfo, Raul Sidnei Wazlawick. The influence of organizational culture on the adoption of extreme programming, 2008.