1 Evolutionary Development T. Gilb. The Agile Alliance A group of writers, developers and consultants, mostly from the OO (object- oriented community)

Slides:



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

Agile Software Development کاری از : مهدی هوشان استاد راهنما : استاد آدابی.
IAD Agile development and Extreme Programming. Evolution of Development Process Models ‘Software Engineering’ (1969) Waterfall model – classic linear.
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..
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 By: Aaron Flocke, Leena Paulose, Geetha Krishna (Team 6)
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.
ISD 3 Lecture 6 Agile development and Extreme Programming.
Agile Software Development
The Agile Alliance By Mark Rucker. The Agile Alliance What is the Agile Alliance? History of the Agile Alliance What is the Agile Alliance today? The.
An Agile View of Process
Introduction to Agile Methodologies and Concepts Roy Osherove Principal, Team Agile Blog : ISerializable.com.
Introduction to Agile.
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.
Agile Software Development What is Agile? And How are we implementing Agile?
Software Engineering Modern Approaches
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.
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.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
XP – Extreme Programming
THE AGILE MENTALITY CHAPTER Topics  Why Use Agile and Scrum?  Agile Development –Manifesto for Agile Software Development  Scrum Methodology.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
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.
Agile Methodology Paul Mohrbacher. Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through.
Agile Software Development By Kshitij Limaye CSC 532.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix B Agile Methodologies B.1.
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)
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
Steve Lundquist, PMP, M.Sc..  As a PMP certified program manager, there are numerous tools, processes, methodologies, and tricks that are available to.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
By Manish Shrotriya CSE MS 4 Point Agile Manifesto 1.Individuals and interactions over processes and tools 2.Working software over comprehensive.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Project Management Software development models & methodologies
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Chapter 5 Agile Development Moonzoo Kim KAIST
Appendix B Agile Methodologies
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Extreme Programming.
روش‌های سريع الانتقال (چابک) توسعه نرم افزار
What do you need to know about XP?
Agile and XP Development
Agile and XP Development
Agile and XP Development
Chapter 3: Agile Software Processes
Coming up: What is Agile?
Introduction to XP.
Agile Development – a new way of software development?
Appendix B Agile Methodologies
Agile software development
Chapter 5: New and Emerging Process Methodologies
SD5953 Successful Project Management AGILE SOFTWARE DEVELOPMENT
Presentation transcript:

1 Evolutionary Development T. Gilb

The Agile Alliance A group of writers, developers and consultants, mostly from the OO (object- oriented community) Martin Fowler – ex data analyst with the NHS – ‘UML Distilled’, ‘Analysis Patterns’ Ken Beck and Ward Cunningham – Smalltalk gurus – CRC cards Steven Mellor – Real time systems

Agile manifesto - Values Individuals and interactions –Over processes and tools Working Software –Over comprehensive documentation Customer collaboration –Over contract negotiation Responding to change –Over following a plan

Keyword- ‘Developer’ No analyst / programmer distinction Distinction is caused by the waterfall model Distinction causes need for documents which have no long-term value and limit change Distinction not viable in the long-term – analysts get out of touch with rapidly- changing technology

5 The Generic Agile Life cycle

6 XP Pitched as: Addressing “the specific needs of software development conducted by small teams in the face of vague or changing requirements” Key Name: Kent Beck. Where invented: USA Year first used: Pre-2000 First used on: C3 project Chrysler; 8 developers. Now used on: All over the place by different groups/people.

7 Small Cross-Functional Teams ConceptXPScrumCrystal OrangeDSDM Number of teams1 team per project1 – 4 or moreVariable; up to 40 people so probably 1 – 10 or so. 1 – 6 Team size3 – 165 – 94 – 82 – 6 Team Members / Roles Customer, Programmer, Tester, Tracker, Coach Scrum master, Experienced Engineer, Junior Engineer, [QA Tester], [Writer] Business Analyst- Designer, Designer- Programmer, UI Designer, [Tester ] Team Leader, Ambassador User, [Advisor User], Senior Developer, Developer, Scribe Project RolesBig BossProject Manager/ Scrum master, Product Owner Sponsor, Project Manager, Architect, Technical Facilitator, Design Mentor Visionary, Executive Sponsor, Project Manager, Technical Co-ordinator, Facilitator

Extreme Programming (XP) Best known example of an agile method Developed by Kent Beck and others (Fowler, Jefferies) using internet discussion board – a wiki A disciplined method despite the ‘anarchist’ tag Customer requirements focus Role specialisations – release manager, coach … as required

XP Values Simplicity Communication Feedback Courage

12 elements Small releases The planning game Continuous integration Test-driven Development Sustainable Pace Whole team Metaphor Pair programming Design improvement Simple Design Collective Code Ownership Coding standards

Small releases Agile and XP methods are refinements of iterative methods Plan to release a functional system to the users about every month Release an iteration to the customer for customer tests every week Integrate to get a working system several times a day!

The Planning game Accurate prediction at the start of a project is too difficult So STEER the project, little by little Start with a collection of ‘user stories’, tasks or units of functionality – developers estimate, together allocate to a release Make plan visible – task cards on a wall

Continuous integration Integration of multiple software components, hardware, networks is a very troublesome phase So do it frequently –Only small problems appear and can be fixed –There is always a working system to test, use and as a common code base

Test Driven development Write the tests for a function first. Then write the code to meet those tests – and no more! Don’t anticipate future requirements (see Simple Design) Automate the testing, so that the tests can be rerun frequently Developers write the tests Customer also writes tests for a release

Sustainable Pace (40hr week) Developers forced to work long overtime hours to meet unrealistic deadlines make more mistakes, and can actually cost time rather than save it So work hard, but keep to working week Recognises the whole developer, and her needs for rest, recreation and her life outside work

Whole Team (on-site customer) Project is steered by a dedicated, full time customer who works with the team Customer develops user stories – broader than use cases – a scenario of use of the system, which delivers useable functionality Stand-up meeting every morning – 15 minutes reporting briefly on progress yesterday, plan for today, issues

Metaphor A common vision of what the system is doing Common vocabulary to provide a jargon for the whole team e.g. a system requiring matching would be a ‘dating agency’

Pair Programming All programming done in pairs – one is the driver – at the keyboard, the other is the coach, critic, support Roles switch Pairs switched about to spread knowledge of technology, XP and the application Novice/experienced programmer combination develops team learning

Simple Design Do the simplest thing possible to pass the tests Don’t anticipate future requirements ‘Spike’ – a simple end-to-end implementation to prove basic idea/technology

Design improvement Keeping the design simple requires constant improvement – spotting common code and re- factoring (generalising and normalizing)into one place. Re-testing checks improvement hasn’t broken the code Good general structures emerge from the continuous work, doesn’t need up-front investment in design (which often turns out to be wasted)

Collective Code Ownership cf. Gerry Weinberg and egoless programming (1971) All code belongs to the team Any member can fix code No waiting because writer is busy or ill

Coding Standards Standards make code more shareable Standards avoid personal styles e.g. bracket placement, indenting Good variable and method naming is preferable to comments

23 Predictive v Adaptive Some Key Issues Scope – breadth & depth of organisational effect Size – time, HR, number of functions, transaction volumes Complexity – systemic/organisational, deterministic/algorithmic Nature – of project, organisation, environment Volatility – requirements, markets, technologies

24 Predictive V Adaptive Adaptive –Uncertain or volatile requirements –Responsible, talented and motivated developers –Customer who understands and is willing to commit to the success of the project Predictive –A large development team (say 100+) –A fixed price, fixed scope contract Martin Fowler, The New Methodology, Found at