Agile Methods: So What? This talk by Ed Gehringer based on notes by Roy W. Miller RoleModel Software, Inc. Copyright © 2002 by RoleModel Software, Inc.,

Slides:



Advertisements
Similar presentations
© University of Glamorgan1 Extreme Programming and its effect on project management Second Computing Project Management Workshop 13 September 02, University.
Advertisements

Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
An Introduction to eXtreme Programming Michael L. Collard, Ph.D. Department of Computer Science Kent State University.
E X treme Programming & Agile Modeling Copyright © 2003 Patrick McDermott UC Berkeley Extension
ITEC 370 Lecture 25 Lifecycles. Review Questions? F give prototype demonstration –Testing plan for your software Life cycles –Scrum (Roles, Meetings,
BTS530: Major Project Planning and Design Iterative Development References: Agile & Iterative Development, by Craig Larman, 2004, Addison Wesley. Agile.
NAUG NAUG Knowledge Evening – th February 2007.
Agile Process Models. Prescriptive models don’t work It is unrealistic to not have changes. Why? The Agile Manifesto: Individuals and interactions over.
© ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua.
Agile Methods and Extreme Programming CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 23, 2007.
Extreme Programming: Practices and Strategies Extreme Programming Practices and Strategies Mohammad Alshayeb Information and Computer.
EXtreme Programming By: Aaron Flocke, Leena Paulose, Geetha Krishna (Team 6)
Extreme Programming Mark Steverson. What Is Extreme Programming? ● Extreme Programming (XP) is a lightweight, agile methodology developed by Kent Beck.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Transitioning to XP or The Fanciful Opinions of Don Wells.
Agile Software Development
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Software Engineering Modern Approaches
Chapter 5 Software Process Models. Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - Presented to CS 611 at GVSU, 4/6/2005.
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
Extreme Programming Daniel Baranowski 3/29/06. What is Extreme Programming? An agile development methodology Created by Kent Beck in the mid 1990’s A.
Extreme Programming Sylvain Giroux October 3 rd, 2000.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
XP (not Microsoft) e X treme P rogramming Can KOMAR
XP – Extreme Programming
Agile
Page 1 Copyright © 1999, RoleModel Software, Inc. An Introduction to Extreme Programming Ken Auer
1 김 수 동 Dept. of Computer Science Soongsil University Tel Fax
DAVID STOTTS DEPT. OF COMPUTER SCIENCE UNIV. OF NORTH CAROLINA AT CHAPEL HILL Extreme Programming.
Copyright © 2015 Curt Hill Software Development Paradigms What do you need to know?
CS3100 Software Project Management Agile Approaches.
Copyright 2002 by RoleModel Software, Inc. Agile Methods: So What? This talk by Ed Gehringer based on notes by Roy W. Miller RoleModel Software, Inc.
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.
IS3320 Developing and Using Management Information Systems Lecture 20: Project Management Rob Gleasure
Extreme programming (XP) Variant of agile Takes commonsense practices to extreme levels © 2012 by Václav Rajlich1.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix B Agile Methodologies B.1.
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
Copyright 2002 by RoleModel Software, Inc. Extreme Programming: So What? Roy W. Miller RoleModel Software, Inc.
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)
1 Introduction to eXtreme Programming Remko Popma Azzurri Ltd.
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Project Management Software development models & methodologies
Chapter 3 Agile software development 1 Chapter 3 – Agile Software Development.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Agile Methods: So What? This talk by Ed Gehringer based on notes by
Agile Project Management and the yin & yang of
Software Development.
Appendix B Agile Methodologies
Extreme Programming: So What?
What do you need to know about XP?
Agile and XP Development
Agile Methods: So What? This talk by Ed Gehringer based on notes by
Agile and XP Development
Chapter 3 – Agile Software Development
Chapter 3: Agile Software Processes
Coming up: What is Agile?
Refactoring.
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

Agile Methods: So What? This talk by Ed Gehringer based on notes by Roy W. Miller RoleModel Software, Inc. Copyright © 2002 by RoleModel Software, Inc., © 2015 Edward F. Gehringer

Why Agile Methods? Be more valuable than your peers. Be more productive. Make you happier. Your experience with Agile …Agile

The Real Project Lifecycle Dream Plan Capture requirements Design a lot, code a little, test if there’s time Limp to the finish Create a comprehensive plan, stick to it at all costs, kill change, hope you survive Copyright © 2002 by RoleModel Software, Inc., © 2015 Edward F. Gehringer

The Results Junk Late For a lot of money Data from 2000 CHAOS Report, Standish Group Copyright © 2002 by RoleModel Software, Inc., © 2015 Edward F. Gehringer

Chaos report 2012 Look up the controversy over this report, and submit observations here. See here The rise and fall of the Chaos report figures, IEEE Software, Jan. 2010The rise and fall of the Chaos report figures The Chaos Manifesto, 2013 Copyright © 2002 by RoleModel Software, Inc., © 2015 Edward F. Gehringer

The Source: Taylorism Frederick Winslow Taylor, Principles of Scientific Management (1911) Accepted wisdom by 1950s Software began in 1950s Software “production” ~= industrial production Exercise: Find an interesting fact about Taylorism. Submit here.here Making software is like a factory – an efficiency optimization problem “[I]n each…trade there is always one method and one implement which is quicker and better than any of the rest. And this one best method and best implement can only be discovered or developed through a scientific study and analysis of all of the methods and implements in use, together with accurate, minute, motion and time study. “ Copyright © 2002 by RoleModel Software, Inc., © 2015 Edward F. Gehringer

Software Is Different Problem always different Solution always different Can’t optimize Change is constant Can’t predict accurately Traditional view…Reality… Software is emergent Problem always the same Solution always the same Optimize process Change is disruptive Increase predictability Software like industrial production Software like predicting the weather Copyright © 2002 by RoleModel Software, Inc., © 2015 Edward F. Gehringer Scrum: A Pocket GuideScrum: A Pocket Guide, Gunther Verheyen Name one wayName one way that producing software is different.

Growing Software Need a solution that… Allows us not to know Allows us to explore Gives feedback to direct us Creates the right conditions, lets software emerge Lets us produce the right software at the END Agile creates the right conditions for emergent software Copyright © 2002 by RoleModel Software, Inc., © 2015 Edward F. Gehringer Discipline vs. agilityDiscipline vs. agility, Expertiza wiki

Agile In a Nutshell 4 core values: Simplicity, Communication, Feedback, Courage 19 practices 1 team 3 roles: Customer, Manager, Programmer What is the simplest thing we can do and still make great software? Copyright © 2002 by RoleModel Software, Inc., © 2015 Edward F. Gehringer

The Practices Joint –Common Vocabulary –Iterations –Open Workspace –Retrospectives Development –Test-First Development –Pair Programming –Refactoring –Collective Ownership –Continuous Integration –Just-In-Time Design Management –Accepted Responsibility –Air Cover –Quarterly Review –Mirror –Sustainable Pace Customer –Storytelling –Release Planning –Acceptance Tests –Frequent Releases Agile is about more than programming Copyright © 2002 by RoleModel Software, Inc., © 2015 Edward F. Gehringer

Joint Practices Create an environment where “ one team ” can exist and thrive Common Vocabulary Formerly “metaphor” – shared understandingmetaphor Iterations Steering – frequent, regular checkpoints so we can get lots of concrete feedback Open Workspace Easy to communicate and learncommunicate and learn Retrospectives Being “Reflective Practitioners” (Donald Schon), learn as we go Exercise: Look up one of these practices (your row number mod 4), and find an interesting fact about it. Submit here.here Copyright © 2002 by RoleModel Software, Inc., © 2015 Edward F. Gehringer

Customer Practices “ Drive ” the entire process Storytelling Describe each system feature in a small chunk that fits in an iteration Release Planning Tell programmers which features come first Customer Tests Also “acceptance tests” or “functional tests” – tell programmers when they’re done Frequent Releases Get software to users so the team can get feedback to steer with Exercise: Look up one of these practices (your row number mod 4), and find an interesting fact about it. Submit here.here Copyright © 2002 by RoleModel Software, Inc., © 2015 Edward F. Gehringer

Management Practices Educate, facilitate, stay out of the way Accepted Responsibility Say what needs to be done, let the team decide who does it and how Quarterly Review Make sure the team knows what it needs to; make sure management knows what it needs to Air Cover Soften up the defenses to make room for the infantry Sustainable Pace Help people avoid burnout Mirror Point out problems, suggest, advise, encourage Exercise: Look up one of these practices (your row number mod 5), and find an interesting fact about it. Submit here.here Copyright © 2002 by RoleModel Software, Inc., © 2015 Edward F. Gehringer

Development Practices Test-First Development No code without a failing programmer test Pair Programming All code gets two pairs of eyes Refactoring Remove “smells” Collective Ownership Everyone owns all of the code Continuous Integration Integrate many times each day Just-In-Time Design Keep design simple Copyright © 2002 by RoleModel Software, Inc., © 2015 Edward F. Gehringer

Test-First Development Write tests before you write code – Write just enough code to get each test to pass All about confidence Programmer tests tell you when the code “works” Programmer tests must pass 100% all the time Test anything you need to be sure it works Complete test coverage, simplest code that could possibly work, clear intent Copyright © 2002 by RoleModel Software, Inc., © 2015 Edward F. Gehringer

Pair Programming 2 developers, 1 computer, solving problems together One person “drives,” the other “navigates” Not Driver/Passenger Not Pair Watching Pairs should rotate Love your pair Continuous code review, more efficient learning, lower project risk Copyright © 2002 by RoleModel Software, Inc., © 2015 Edward F. Gehringer

Refactoring Changing the design of existing code without changing function – All about speed Refactor when code “smells” –Methods, classes that are too long. –Duplicate code (or “almost” duplicate code). –Switch statements (instead of polymorphism). –“Struct” classes—getters & setters but little else. Refactor before adding a feature, and after Keep code simple, build learning in Copyright © 2002 by RoleModel Software, Inc., © 2015 Edward F. Gehringer

Collective Ownership Any developer can change any code anytime Programmer tests and customer tests tell you if you broke something You break it, you fix it Convert “ my code ” to “ our code ” to lower risk Exercise: Is this a good idea? Look up points pro and con. Submit here.here Copyright © 2002 by RoleModel Software, Inc., © 2015 Edward F. Gehringer

Continuous Integration Integrate changes multiple times each day One failing Programmer Test = no integration Daily is not enough No “Big Bang” Maintain speed and spread risk by integrating many times per day Exercise: Is this a good idea? Look up points pro and con. Submit here.here Copyright © 2002 by RoleModel Software, Inc., © 2015 Edward F. Gehringer

Just-In-Time Design Only design for what you’re building Always keep the design as simple as possible (OAOO) Simplicity allows for change Change is constant Simple design: passes all tests, has no duplication, expresses intent, has least amount of code Exercise: Is this a good idea? Look up points pro and con. Submit here.here Copyright © 2002 by RoleModel Software, Inc., © 2015 Edward F. Gehringer

All Or Nothing? Some practices can stand alone – Refactoring, Test- First Development, Pair Programming All is better, some often better than none All doesn’t mean starting all at once The closer you get to all, the better off you are Copyright © 2002 by RoleModel Software, Inc., © 2015 Edward F. Gehringer

Project Success Revisited Source: Dr. Dobbs, 2010Dr. Dobbs, 2010 Ad-hoc projects: 49% are successful, 37% are challenged, and 14% are failures. Traditional projects: 47% are successful, 36% are challenged, and 17% are failures. Iterative projects: 61% are successful, 28% are challenged, and 11% are failures. Agile projects: 60% are successful, 28% are challenged, and 12% are failures. Copyright © 2002 by RoleModel Software, Inc., © 2015 Edward F. Gehringer

So What? XP reflects the true nature of the problem (complex) XP is change-tolerant XP is realistic XP has the potential to facilitate organizational change XP increases likelihood for success XP doesn ’ t matter – results do Copyright © 2002 by RoleModel Software, Inc., © 2015 Edward F. Gehringer

Resources (Ron Jeffries) (JUnit testing framework) Addison Wesley XP Series: Extreme Programming Explained: Embrace Change, Beck Extreme Programming Installed, Jeffries, Hendrickson, Anderson Planning Extreme Programming, Fowler and Beck Extreme Programming Applied: Playing to Win, Auer and Miller Refactoring, Fowler IBM developerWorks XP Column, starting in August ( Growing Software (working title), Addison Wesley, Copyright © 2002 by RoleModel Software, Inc., © 2015 Edward F. Gehringer