Agile Software Development In Theory and Practice Johannes Brodwall.

Slides:



Advertisements
Similar presentations
Program Management School Agile & ADDIE Add-Up (AAAU) Elliott Masies Learning 2012 October 21-24, 2012.
Advertisements

Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
SDLC – Beyond the Waterfall
PROC-1 3. Software Process. PROC-2 What’s a process? Set of activities in creating software It involves creativity –hard to automate –Requires human judgment.
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
AgileMan Consulting So what the heck is Agile? It came about as a response to the high failure rate of software projects (> 60%), where failure means late,
Alternate Software Development Methodologies
Clinton Keith CTO, High Moon Studios Agile Methodology in Game Development: Year 3.
Agile Project Management with Scrum
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.
Agile development By Sam Chamberlain. First a bit of history..
© ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua.
Agile
Agile Methods and Extreme Programming CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 23, 2007.
Agile Software Development Matt Rice November 27, 2006.
EXtreme Programming Quick Introduction Daniel Arraes Pereira Eduardo Lourenço Apolinário Ricardo de Oliveira Cavalcanti.
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.
An Agile View of Process
Introduction to Agile Methodologies and Concepts Roy Osherove Principal, Team Agile Blog : ISerializable.com.
An Overview of Agile L e a d i n g C h a n g e T h r o u g h C o l l a b o r a t i o n.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
AgileCamp Presents: Agile Software Development. Good luck in your presentation! This slide deck has been shared by AgileCamp Kit under the Creative Commons.
Agile Software Development What is Agile? And How are we implementing Agile?
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
CompSci 230 Software Design and Construction
Software Development Landscape
Agile Programming Principles.
The Agile Primer July 2008 © ThoughtWorks 2008.
Chapter 4 Agile Development
Chapter 5 Software Process Models. Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time.
Current Trends in Systems Develpment
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
AgileCamp Presents: Agile 101. Good luck in your presentation! This slide deck has been shared by AgileCamp Kit under the Creative Commons Attribution.
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 Programming Daniel Baranowski 3/29/06. What is Extreme Programming? An agile development methodology Created by Kent Beck in the mid 1990’s A.
Chapter 3 – Agile Software Development Pepper modification of Sommerville presentation & Colm O’hEocha – AgileInnovation Ltd presentation 1Chapter 3 Agile.
© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Agile Assessment Gadi Lifshitz, Ayelet Kroskin, Barak Yagour, Yael Dubinsky.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Agile
Copyright © 2015 Curt Hill Software Development Paradigms What do you need to know?
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.
CS5103 Software Engineering Lecture 02 More on Software Process Models.
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.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Extreme programming (XP) Variant of agile Takes commonsense practices to extreme levels © 2012 by Václav Rajlich1.
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Assignment 1 due tomorrow, 7pm. RAD due next Friday in your Wiki. Presentations week 6. Tomorrow’s lecture.
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)
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
1 Requirements Engineering for Agile Methods Lecture # 41.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Agile Gintarė Bernotaitytė © 2013.
Introducing an Agile Process to an Organization By Mike Cohn and Doris Ford IEEE Computer.
Chapter 3 Agile software development 1 Chapter 3 – Agile Software Development.
Embedded Systems Software Engineering
Agile Methods SENG 301.
Manifesto for Agile Software Development
Agile Training for Students
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Agile Software Development Brian Moseley.
Agile and XP Development
Agile and XP Development
Agile Development – a new way of software development?
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

Agile Software Development In Theory and Practice Johannes Brodwall

Copyright 2004 – Johannes Brodwall Slide 2 Who am I?

Copyright 2004 – Johannes Brodwall Slide 3 Johannes Brodwall

Copyright 2004 – Johannes Brodwall Slide 4 Board member, smidig.no

Copyright 2004 – Johannes Brodwall Slide 5 Organizer, Oslo XP Meetup Every first Monday of the month at Scuba bar (Grünerløkka)

Copyright 2004 – Johannes Brodwall Slide 6 Lead Software Architect

Copyright 2004 – Johannes Brodwall Slide 7 Sole developer Small chat solution

Copyright 2004 – Johannes Brodwall Slide 8 Who are you?

Copyright 2004 – Johannes Brodwall Slide 9 Who works on ”a large project”?

Copyright 2004 – Johannes Brodwall Slide 10 Who works on (what you feel is) ”a large project”?

Copyright 2004 – Johannes Brodwall Slide 11 Who release software infrequently?

Copyright 2004 – Johannes Brodwall Slide 12 (0)

Copyright 2004 – Johannes Brodwall Slide 13 Intro

Copyright 2004 – Johannes Brodwall Slide 14 Course in an agile method Extreme programming Scrum Lean Software Development DSDM

Copyright 2004 – Johannes Brodwall Slide 15 Course in an agile method Extreme programming Scrum Lean Software Development DSDM

Copyright 2004 – Johannes Brodwall Slide 16 History lesson Snowbird Agile Manifesto We value Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan

Copyright 2004 – Johannes Brodwall Slide 17 History lesson Snowbird Agile Manifesto We value Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan

Copyright 2004 – Johannes Brodwall Slide 18 Specific for Perl Test::More Devel::Refactor Jifty PerlActor Tinderbox

Copyright 2004 – Johannes Brodwall Slide 19 Specific for Perl Test::More Devel::Refactor Jifty PerlActor Tinderbox

Copyright 2004 – Johannes Brodwall Slide 20 Experience report on using agile techniques in small and large environments Continuous Integration Relentless Testing Frequent releases Collective Ownership Refactoring

Copyright 2004 – Johannes Brodwall Slide 21 Experience report on using agile techniques in small and large environments Continuous Integration Relentless Testing Frequent releases Collective Ownership Refactoring

Copyright 2004 – Johannes Brodwall Slide 22 (1)

Copyright 2004 – Johannes Brodwall Slide 23 The Problem

Copyright 2004 – Johannes Brodwall Slide 24 Projects in crisis

Copyright 2004 – Johannes Brodwall Slide 25 Failure to deliver value

Copyright 2004 – Johannes Brodwall Slide 26 Barry Boehm: ”Software Engineering Economics”, 1984

Copyright 2004 – Johannes Brodwall Slide 27 ”An infant engineering discipline”

Copyright 2004 – Johannes Brodwall Slide 28 (2)

Copyright 2004 – Johannes Brodwall Slide 29 The Response

Copyright 2004 – Johannes Brodwall Slide 30 ” ”Make sure the reqs are right before you do anything”

Copyright 2004 – Johannes Brodwall Slide 31 ” ”Make sure nobody changes the requirements”

Copyright 2004 – Johannes Brodwall Slide 32 ” ”Try Harder!”

Copyright 2004 – Johannes Brodwall Slide 33 BRUF

Copyright 2004 – Johannes Brodwall Slide 34 ” Big Requirements Up Front

Copyright 2004 – Johannes Brodwall Slide 35 (Picture: RUP analyst hard at work)

Copyright 2004 – Johannes Brodwall Slide 36 Trying to stuff everything into my small head! It hurts!

Copyright 2004 – Johannes Brodwall Slide 37 And then the world changes!

Copyright 2004 – Johannes Brodwall Slide 38 When I guessed wrong...

Copyright 2004 – Johannes Brodwall Slide my work is wasted

Copyright 2004 – Johannes Brodwall Slide it is even harder to change the system

Copyright 2004 – Johannes Brodwall Slide 41 Speculation breeds complexity

Copyright 2004 – Johannes Brodwall Slide 42 Complexity breeds complexity

Copyright 2004 – Johannes Brodwall Slide 43 And again my crystal ball is broken!!!

Copyright 2004 – Johannes Brodwall Slide 44 So I get a poorly divided, rigid design

Copyright 2004 – Johannes Brodwall Slide 45 Formality:

Copyright 2004 – Johannes Brodwall Slide 46 make decision ”correctly”

Copyright 2004 – Johannes Brodwall Slide 47 The right decision

Copyright 2004 – Johannes Brodwall Slide 48 Change control mechanism

Copyright 2004 – Johannes Brodwall Slide 49 Just-in-case requirement (”free” in the beginning)

Copyright 2004 – Johannes Brodwall Slide 50 Failure to deliver value

Copyright 2004 – Johannes Brodwall Slide 51 These ”solutions” are part of the problem

Copyright 2004 – Johannes Brodwall Slide 52 Fixed-price, fixed-scope contract bids

Copyright 2004 – Johannes Brodwall Slide 53 (3)

Copyright 2004 – Johannes Brodwall Slide 54 The Alternative

Copyright 2004 – Johannes Brodwall Slide 55 Instead of just-in-case...

Copyright 2004 – Johannes Brodwall Slide just-in-time

Copyright 2004 – Johannes Brodwall Slide 57 Boehm was wrong

Copyright 2004 – Johannes Brodwall Slide 58 (or at least Boehm’s phasist readers)

Copyright 2004 – Johannes Brodwall Slide 59

Copyright 2004 – Johannes Brodwall Slide 60

Copyright 2004 – Johannes Brodwall Slide 61 Harness the Power of Myopia

Copyright 2004 – Johannes Brodwall Slide

Copyright 2004 – Johannes Brodwall Slide Focus on short term

Copyright 2004 – Johannes Brodwall Slide 64 Requirements for current feature

Copyright 2004 – Johannes Brodwall Slide 65 Design for current requirement

Copyright 2004 – Johannes Brodwall Slide Deliver something

Copyright 2004 – Johannes Brodwall Slide 67 Ideal: Deliver working, tested features as often as you safely can

Copyright 2004 – Johannes Brodwall Slide Get feedback

Copyright 2004 – Johannes Brodwall Slide 69 (talk to people!)

Copyright 2004 – Johannes Brodwall Slide Adapt

Copyright 2004 – Johannes Brodwall Slide 71  Get Feedback  Avoid Speculation

Copyright 2004 – Johannes Brodwall Slide 72 The cost of speculation

Copyright 2004 – Johannes Brodwall Slide 73 Myopic requirements

Copyright 2004 – Johannes Brodwall Slide 74 Analyse the current release

Copyright 2004 – Johannes Brodwall Slide 75 Myopic development

Copyright 2004 – Johannes Brodwall Slide 76 Design for the current problem

Copyright 2004 – Johannes Brodwall Slide 77 Myopic programming

Copyright 2004 – Johannes Brodwall Slide 78 Write a test – make it pass – Remove duplication

Copyright 2004 – Johannes Brodwall Slide 79

Copyright 2004 – Johannes Brodwall Slide 80 (4)

Copyright 2004 – Johannes Brodwall Slide 81 Changing your minds

Copyright 2004 – Johannes Brodwall Slide is not always easy

Copyright 2004 – Johannes Brodwall Slide is not always safe

Copyright 2004 – Johannes Brodwall Slide 84 (painted into a corner)

Copyright 2004 – Johannes Brodwall Slide 85 (Experience: Sustainable myopia varies with org.)

Copyright 2004 – Johannes Brodwall Slide 86 Agile: Enabling safe myopia

Copyright 2004 – Johannes Brodwall Slide 87 Not technology

Copyright 2004 – Johannes Brodwall Slide 88 Practices, discipline, communication

Copyright 2004 – Johannes Brodwall Slide Prioritize requirements with a backlog

Copyright 2004 – Johannes Brodwall Slide 90 Prioritize requirements with a backlog

Copyright 2004 – Johannes Brodwall Slide 91 (NB: Software maintainance)

Copyright 2004 – Johannes Brodwall Slide 92 Too fully take advantage: Close communication with stakeholders

Copyright 2004 – Johannes Brodwall Slide Simple design: Goal and means

Copyright 2004 – Johannes Brodwall Slide 94 Avoid designs that make change expensive: Don’t Repeat Yourself!

Copyright 2004 – Johannes Brodwall Slide 95 For example: Jifty

Copyright 2004 – Johannes Brodwall Slide 96 Solve the current problem only

Copyright 2004 – Johannes Brodwall Slide Automated regression suite

Copyright 2004 – Johannes Brodwall Slide 98 Test::Simple Test::More (Schwern)

Copyright 2004 – Johannes Brodwall Slide Refactor all the time

Copyright 2004 – Johannes Brodwall Slide 100 Def: Refactor “To transform a program while preserving its behavior.”

Copyright 2004 – Johannes Brodwall Slide 101 Refactor to simple design

Copyright 2004 – Johannes Brodwall Slide Continuous Integration

Copyright 2004 – Johannes Brodwall Slide 103

Copyright 2004 – Johannes Brodwall Slide Collective Ownership

Copyright 2004 – Johannes Brodwall Slide 105 It’s not: ”Your code and mine code”

Copyright 2004 – Johannes Brodwall Slide 106 Refactor everything

Copyright 2004 – Johannes Brodwall Slide 107 Continous integration keeps you safe

Copyright 2004 – Johannes Brodwall Slide 108 (5)

Copyright 2004 – Johannes Brodwall Slide 109 Fine tuning your agile process

Copyright 2004 – Johannes Brodwall Slide 110 Deliveries

Copyright 2004 – Johannes Brodwall Slide 111 Large organization  Less frequent releases High risk  Less frequent releases

Copyright 2004 – Johannes Brodwall Slide 112 Staged (internal delivery)

Copyright 2004 – Johannes Brodwall Slide 113 Breaking it up

Copyright 2004 – Johannes Brodwall Slide 114 ”The smallest meaningful task”

Copyright 2004 – Johannes Brodwall Slide 115 Small releases: Penalizes half-work

Copyright 2004 – Johannes Brodwall Slide 116 One click deployment

Copyright 2004 – Johannes Brodwall Slide 117 Extreme: Deploy every feature

Copyright 2004 – Johannes Brodwall Slide 118 Mastering Testing

Copyright 2004 – Johannes Brodwall Slide 119 ”Only test what you want to work” -- Ron Jeffries

Copyright 2004 – Johannes Brodwall Slide 120 Many types of test Acceptance test Databases User interfaces Integration tests Unit test Performance/Load/Stress

Copyright 2004 – Johannes Brodwall Slide 121 All can be automated

Copyright 2004 – Johannes Brodwall Slide 122 Greatest value: Acceptance tests

Copyright 2004 – Johannes Brodwall Slide 123 Easiest to implement: Unit tests

Copyright 2004 – Johannes Brodwall Slide 124 Starting unit testing:

Copyright 2004 – Johannes Brodwall Slide 125 Don’t

Copyright 2004 – Johannes Brodwall Slide 126 Try to test everything in the beginning

Copyright 2004 – Johannes Brodwall Slide 127 Do:

Copyright 2004 – Johannes Brodwall Slide 128 Focus on ”bang for the buck”

Copyright 2004 – Johannes Brodwall Slide 129 Good: New features

Copyright 2004 – Johannes Brodwall Slide 130 Better: Bugs

Copyright 2004 – Johannes Brodwall Slide 131 Even better: Bug ridden code

Copyright 2004 – Johannes Brodwall Slide 132 Smoke test Def: ”A rudimentary form of testing; power is applied and the tester checks for sparks, smoke, or other dramatic signs of fundamental failure”

Copyright 2004 – Johannes Brodwall Slide 133 Perfecting unit tests

Copyright 2004 – Johannes Brodwall Slide 134 Remember: Test is a noun!

Copyright 2004 – Johannes Brodwall Slide 135 Tests as specification

Copyright 2004 – Johannes Brodwall Slide 136 Write tests first

Copyright 2004 – Johannes Brodwall Slide 137 Consider test brittleness

Copyright 2004 – Johannes Brodwall Slide 138 Consider unit test running time

Copyright 2004 – Johannes Brodwall Slide 139 Implementing Continuous Integation

Copyright 2004 – Johannes Brodwall Slide 140 Avoid sliding back

Copyright 2004 – Johannes Brodwall Slide 141 Not useful in small projects (1-3 people?)

Copyright 2004 – Johannes Brodwall Slide 142 Can at least scale to 50 people

Copyright 2004 – Johannes Brodwall Slide 143 Be prepared to pay the price

Copyright 2004 – Johannes Brodwall Slide 144 Continuous Integration will become critical to you org.

Copyright 2004 – Johannes Brodwall Slide 145 Has given us the ability to do enormous refactorings

Copyright 2004 – Johannes Brodwall Slide 146 Has enabled us to treat 500 KLOC as one code base

Copyright 2004 – Johannes Brodwall Slide 147 Communication

Copyright 2004 – Johannes Brodwall Slide 148 What is the biggest cost driver?

Copyright 2004 – Johannes Brodwall Slide 149 Misunderstandings

Copyright 2004 – Johannes Brodwall Slide 150 Misunderstood business needs

Copyright 2004 – Johannes Brodwall Slide 151 Misunderstood interface to integrate with

Copyright 2004 – Johannes Brodwall Slide 152 Misunderstanding your neighbours code

Copyright 2004 – Johannes Brodwall Slide 153 Not knowing that you neighbour is doing the same as you!

Copyright 2004 – Johannes Brodwall Slide 154 Techniques:

Copyright 2004 – Johannes Brodwall Slide 155 Keep your customer close

Copyright 2004 – Johannes Brodwall Slide 156 Obvious, difficult (But if the customer won’t be close, how important is the project, really?)

Copyright 2004 – Johannes Brodwall Slide 157 Pair programming

Copyright 2004 – Johannes Brodwall Slide 158 Fun, difficult, rewarding, exhausting Hard to sustain (but great if you can!)

Copyright 2004 – Johannes Brodwall Slide 159 Stand up meetings

Copyright 2004 – Johannes Brodwall Slide 160 ”What did you achieve since yesterday?” ”What do you plan on achiving today?” ”What is standing in your way?”

Copyright 2004 – Johannes Brodwall Slide 161 Keep it short!

Copyright 2004 – Johannes Brodwall Slide 162

Copyright 2004 – Johannes Brodwall Slide 163 Keep it short!

Copyright 2004 – Johannes Brodwall Slide 164 Fun, easy, rewarding Exhausting (if you don’t do it right!)

Copyright 2004 – Johannes Brodwall Slide 165 Reflection workshops

Copyright 2004 – Johannes Brodwall Slide 166

Copyright 2004 – Johannes Brodwall Slide 167 Fun, easy, rewarding Value decreases with time

Copyright 2004 – Johannes Brodwall Slide 168 (6)

Copyright 2004 – Johannes Brodwall Slide 169 Conclusion

Copyright 2004 – Johannes Brodwall Slide 170 Phasist development...

Copyright 2004 – Johannes Brodwall Slide 171 Forces us to guess Forces us to consider a too much at the same time

Copyright 2004 – Johannes Brodwall Slide leads to suffering

Copyright 2004 – Johannes Brodwall Slide 173 (and our poor reputation as professionals)

Copyright 2004 – Johannes Brodwall Slide 174 When I speculate, I’m usually wrong

Copyright 2004 – Johannes Brodwall Slide 175 So instead...

Copyright 2004 – Johannes Brodwall Slide Short-term decisions

Copyright 2004 – Johannes Brodwall Slide Deliver something

Copyright 2004 – Johannes Brodwall Slide Get feedback

Copyright 2004 – Johannes Brodwall Slide Adapt

Copyright 2004 – Johannes Brodwall Slide 180 (requires practices and tricks)

Copyright 2004 – Johannes Brodwall Slide 181 Summary of tricks

Copyright 2004 – Johannes Brodwall Slide 182 Prioritize with a backlog

Copyright 2004 – Johannes Brodwall Slide 183 Keep in touch with stand- up meetings

Copyright 2004 – Johannes Brodwall Slide 184 Just-in-time planning and requirements

Copyright 2004 – Johannes Brodwall Slide 185 Simple design

Copyright 2004 – Johannes Brodwall Slide 186 Test only what you want to work

Copyright 2004 – Johannes Brodwall Slide 187 Refactor mercilessly

Copyright 2004 – Johannes Brodwall Slide 188 Continuous Integration

Copyright 2004 – Johannes Brodwall Slide 189 Parting words

Copyright 2004 – Johannes Brodwall Slide 190 Software isn’t a canned good

Copyright 2004 – Johannes Brodwall Slide 191 It rots during storage

Copyright 2004 – Johannes Brodwall Slide 192 Good luck with your agile project!

Copyright 2004 – Johannes Brodwall Slide 193 Thank you for listening