1 Extreme Programming & New Theory of Programming.

Slides:



Advertisements
Similar presentations
Agile Software Development کاری از : مهدی هوشان استاد راهنما : استاد آدابی.
Advertisements

A little Software Engineering: Agile Software Development C Sc 335 Rick Mercer.
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.
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.
Agile development By Sam Chamberlain. First a bit of history..
Agile Requirements Methods CSSE 371 Software Requirements and Specification Mark Ardis, Rose-Hulman Institute October 26, 2004.
Extreme Programming: Practices and Strategies Extreme Programming Practices and Strategies Mohammad Alshayeb Information and Computer.
Agile Software Development Matt Rice November 27, 2006.
Extreme Programming Team Members Gowri Devi Yalamanchi Sandhya Ravi.
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.
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.
Extreme Programming--a “New” Process Model Extreme Programming-- a “New” Process Model.
Chapter 3 – Agile Software Development Lecture 1 1Chapter 3 Agile software development.
Introduction to Agile Methodologies and Concepts Roy Osherove Principal, Team Agile Blog : ISerializable.com.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Roles Managers Technical Team Leaders Programmers Customers Database Administrators Instructors.
AgileCamp Presents: Agile Software Development. Good luck in your presentation! This slide deck has been shared by AgileCamp Kit under the Creative Commons.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Software Development Landscape
Chapter 4 Agile Development
Agile Software Development Brian Link
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.
Current Trends in Systems Develpment
Extreme Programming(XP)
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
Extreme programming overview Agenda  Extreme programming goals  Extreme programming values  Extreme programming practices  The Extreme programming.
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.
Embracing change with Extreme Programming Method Engineering Erik ten Brinke
Chapter 3 – Agile Software Development Pepper modification of Sommerville presentation & Colm O’hEocha – AgileInnovation Ltd presentation 1Chapter 3 Agile.
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.
1 Software Process Models-ii Presented By; Mehwish Shafiq.
Planning Game in Artifacts Tracker (AT) Project Michal Pilawski.
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.
Agile
1/7/2004CSG - Project Delivery at UT Austin1 Making a Model Perform Adopting a methodology to your environment.
THE AGILE MENTALITY CHAPTER Topics  Why Use Agile and Scrum?  Agile Development –Manifesto for Agile Software Development  Scrum Methodology.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 16, Methodologies Extreme Programming.
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
Test Driven Development Daniel Brown dxb17u. Introduction Originates from Extreme Programming (XP) Proposed by Kent Beck in Test Driven Development.
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.
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)
SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 1 eXtreme Programming – one of the Agile Software Development Methodologies.
Planning Extreme programming
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
1 Introduction to eXtreme Programming Remko Popma Azzurri Ltd.
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Agile Center of Excellence. Richard K Cheng Agile is just a high level concept.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
CS223: Software Engineering
Extreme Programming.
Extreme Programming (and Pair Programming)
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

1 Extreme Programming & New Theory of Programming

2 Recap Time is important Time estimation via features Quality: linear burn curve

3 XP The most famous agile methodology First XP project: Chrysler’s C3 system (1997) Notable figures: Kent Beck, Ron Jeffries Toyota production system –Low latency: Unimplemented idea pile up (stock) –Stop the line: Detect a Defect as soon as it is introduced

4 XP’s Basic Idea A fixed scope is a loose-loose situation –Customer wants to maximize scope –Developers want to minimize scope Instead, decide on fixed time intervals –Periodically, re-negotiate scope The software is always working –Short cycles of break-repair Customer can always provide feedback Project cannot take a wrong path for more than a week

5 The Scope Equation Scope = Time x Quality You can only fix two of the variables: –Scope, time => Quality –Time, Quality => Scope –Scope, Quality => Time

6 XP: Values Communication Simplicity Feedback Courage Respect

7 Simplicity Passes all tests Reveals intentions No duplication/Locality Minimal number of classes and methods

8 Locality Structure the code so changes have local consequences

9 Stories and Tasks Story: a short description of customer visible functionality Task: Breakdown of a task into code-level additions/changes It is often that story == task

10 Iteration Cycle Define scope (stories) –Planning game For each story: Implement smallest delta needed to realize the story –“minimal thing that could possibly work” (YAGNI) –May trigger refactoring –Incremental steps Reflection – what have been doing? –Everyone can see where the project is standing –Customer can see what is still missing –Learning: enhance the process

11 The Planning Game Negotiate scope with customer –Customer: chooses stories –Developers: What can be completed Output: a set of prioritized task Deciding what can be completed –Esitmate task/story using points –Esitmate task/story using hours –Compare to previous week * Total capacity: “Yesterday’s weather”: Same as last weeks Re-plan if completed early

12 XP: Practices Negotiated Scope Contract Incremental Design Shared Code + Single Code Base Intensive testing (easiest via TDD) –Ten-Minute Build –Continuous Integration –Daily Deployment * Customer can check the system on a daily basis => Can define the scope for the next iteration

13 Iteration-0 At each iteration, the program evolves –By adding new functionality to the prev. iteration Q: What happens at the very first iteration? A: Develop a skeleton –Most of the parts –Degenerated functionality

14 Informative Workspace AKA: –“Information Radiators” –“talking walls” Continues Integration Status Burn up Stories: Waiting, In progress, Completed

15 Human Factor Pairs Standup meetings Sense of accomplishment –Working software –Constant customer feedback TDD keeps developer focused Working software –No frustration over the weekend Stories on real index card –Can be sorted, shuffled, grouped, passed, posted to a wall –Many people say they are better than s/w tools

16 XP: Larger Scale Decompose into several smaller projects –Along the “natural fracture lines” Release Planning –Quarterly –Choose themes – build a bank of stories

17 Technical Debt A quick and dirty solution induces a technical debt –similar to a financial debt –Incurs interest payments: Extra effort due to the dirty design We can choose to continue pay the interest Or, we can pay down the principal –Refactor the dirty design into a clean one Sometimes, quick and dirty is sensible –Taking a loan to take advantage of a business opportunity –Going into technical debt to meet a deadline

18 Costs Past –cost = Tdevelop Present –cost = Tplan + Tdevelop + Ttest + Tdeploy Maintenance: Tplan includes time needed for understanding the existing system XP –I have tests -> Code can adapt -> No need for sophisticated planning (other than choosing the iteration’s scope) –Tplan: Low UML process –I carefully planned -> I have good code -> no need to adapt –(Planning requires foresight) –Tplan: high

19 Axioms Super-linearity Instability Uncertainty Non-traceability

20 Instability Existing code will need to change Code should adapt Testing

21 Uncertainty The more accurate the specification, the more error prone it is Precise planning of the full system is a waste of time XP: Roughly plan the current iteration

22 Non-traceability It is impossible to estimate the full effect of a change Instead of inventing a design, discover it as you go along

23 Super Linearity A large task is relatively (and absolutely) more expensive than a small task

24 Program Breakdown Two ways to decompose a software project Feature by feature –Many small tasks Subsystem by subsystem –Few large tasks Essentially same amount of code Feature by feature is less work –If we accept the super-linearity axiom