Overview Agile Methods
-
Upload
unioesteufpe-informatics -
Category
Technology
-
view
7.662 -
download
0
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.