SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 1 eXtreme Programming – one of the Agile Software Development Methodologies.

Slides:



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

A little Software Engineering: Agile Software Development C Sc 335 Rick Mercer.
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
Alternate Software Development Methodologies
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall B.1.
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.
1 March Extreme programming. Presentations Tuesday Campus Tour Sami Says Hawks Thursday Read2Me UNCSET Oral Lab NetVis If helpful, invite your client.
Agile Requirements Methods CSSE 371 Software Requirements and Specification Mark Ardis, Rose-Hulman Institute October 26, 2004.
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.
Introduction to XP “When the tests all run, you’re done”
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.
Extreme Programming--a “New” Process Model Extreme Programming-- a “New” Process Model.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
ITEC XP Object Mentor, Inc. Copyright  by Object Mentor, Inc All Rights Reserved Portions of this material are Copyright © 1998, by Addison.
An Agile View of Process
Chapter 3 – Agile Software Development Lecture 1 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.
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
One XP Experience: Introducing Agile (XP) Software Development into a Culture that is Willing but not Ready Joe Bergin * Fred Grossman * David Leip **
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.
Extreme Programming Sylvain Giroux October 3 rd, 2000.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Planning Game in Artifacts Tracker (AT) Project Michal Pilawski.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
XP – Extreme Programming
Implementing XP at PUT Copyright, 2000 © Jerzy R. Nawrocki Quality Management.
Extreme Programming David Li CTO, DigitalSesame. Problem in Developing Software The Basic Problem - Risk –Schedule slips –Project canceled –System goes.
1 김 수 동 Dept. of Computer Science Soongsil University Tel Fax
Extreme Programming and Systems Engineering Similarities and Synergy (based on talk given to INCOSE New England Chapter) Joseph (Yossi) Weihs Sept 10 th,
CS3100 Software Project Management Agile Approaches.
Extreme Programming (XP) XP is an agile methodology: –aims to be responsive to change Theme running through XP is the importance of communication –amongst.
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
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.
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.
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.
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
Requirements Engineering Lecture 4
Appendix B Agile Methodologies
Extreme Programming.
روش‌های سريع الانتقال (چابک) توسعه نرم افزار
Agile and XP Development
eXtreme Programming (XP) and eXtreme Modeling (XM)
Agile and XP Development
Chapter 3: Agile Software Processes
Coming up: What is Agile?
Sylvain Giroux October 3rd, 2000
Agile Development – a new way of software development?
Appendix B Agile Methodologies
Agile software development
Extreme Programming (and Pair Programming)
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 1 eXtreme Programming – one of the Agile Software Development Methodologies T Jari Vanhanen

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 2 Agile Methodologies  eXtreme Programming  SCRUM  Dynamic Systems Development Method  Feature Driven Development  Crystal Methodologies / Adaptive Systems Development  Iterative and incremental in nature  Package existing software engineering practices  Some starting points for the interested:   cles/newMethodology.html cles/newMethodology.html

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 3 From Waterfall to XP Time Analysis Design Implementation Test WaterfallIterativeXP Reference: Beck Kent, “Embracing Change with Extreme Programming”, IEEE Computer, Vol. 32, No. 10, 1999, pp

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 4 Introduction to eXtreme Programming (XP)  XP is an extreme attempt to dramatically simplify the software development process  XP focuses on what delivers value  requirements and working code  minimize the intermediate work products  tacit knowledge, face-to-face communication  Most famous of the agile processes  Kent Beck, C3 project at Chrysler 1996  A set of common sense principles and practices taken to extreme levels  testing, reviews, simplicity,...

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 5 Focus  When to use XP  small (2-10), co-located teams  however, well-structured 10 person team can solve a larger problem than much bigger team with heavier methodology  vague or rapidly changing requirements  aiming to high productivity  When not to use XP  large team  long time is needed to gain feedback of the system  slow builds, infrequent releases, lack of customer collaboration  automated, quick testing of the software is impossible  technology with an inherently exponential cost curve

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 6 Characteristics  Incremental planning  feedback from short cycles  flexible scheduling  Evolutionary design process lasts as long as the system lasts  Automated tests  unit tests  acceptance tests  Oral communication, tests, and code to communicate system structure and intent  Close collaboration of programmers  High-discipline  activity intensive  coach required

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 7 Focus on Controlling the Scope  Four variables in a project  cost, time, quality and scope  all can’t be fixed  cost is the most constrained  quality must usually be good  more time means lack of feedback  being able to adjust the scope gives best control

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 8 Flattened Change Cost Curve  What does cost of change actually mean?  detection, implementation, deployment?  during an iteration, release, project, the whole life-cycle?  Technical premise of XP  steep change cost curve makes XP impossible  What makes flattening possible  object technology  simple design  automated tests  lots of practice in modifying the design  Or is it still there?  XP’s practices just provide feedback early time cost of change time cost of change

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 9

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 10 Values, Principles and Practices  Values  short-term individual goals vs. long-term social goals  common values required  Principles  more concrete  considered when making decisions  Practices  concrete ways of work

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 11 Values (1/2)  Communication  lack of it is the reason for most problems  punishment from bad news kills it  XP employs practices that keep programmers, customers and managers communicating  Simplicity  What is the simplest thing that could possibly work?  general vs. simple design  anticipatory design assumes more work today saves later  YAGNI  low rate of changes  anticipatory design  high rate of changes  refactoring and continuous design  helps understanding

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 12 Values (2/2)  Feedback  concrete feedback about the state of the system  scale of minutes or days  unit tests, quality of stories (requirements), progress of tasks  scale of weeks or months  func. tests, schedule, system in production  Courage  changing the system  throwing code away  pair programming

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 13 Principles  Fundamental principles  rapid feedback  critical for learning  assume simplicity  treat every problem as if it can be solved with simplicity  incremental change  series of smallest changes that make a difference  embracing change  best strategy preserves most options while actually solving your most pressing problem  quality work  excellent quality  nobody likes doing a bad job  Secondary principles  teach learning  small initial investment  play to win  concrete experiments  open, honest communication  work with people’s instincts, not against them  accepted responsibility  local adaptation  travel light  honest measurement

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 14 Practices - Overview  Simple, well-known practices  How could XP work?  practices support each other’s weaknesses  exponential change cost is collapsed (simple design, tests, refactoring)  Practices  Planning game  Small releases  Testing  Continuous integration  Metaphor  Simple design  Refactoring  Pair programming  Collective ownership  Coding standard  On-site customer  40-hour week

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 15 Practices - Process  On-site customer  sitting with the team  customer and user views  Testing  functional (acceptance) tests for stories  criteria for readiness  unit tests for all methods that could possibly break  100% must pass all the time  write tests before code  Small releases  as small as possible  most valuable business requirements  Planning game  release planning  iteration planning

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 16 Practices – Process - Planning Game  Release planning  customer decides  scope, priority and dates  programmer team decides  estimates, consequences, process, detailed scheduling  exploration phase  customer writes stories  team estimates stories  planning phase  team estimates velocity  customer selects and prioritizes stories   Iteration planning  exploration phase  team brainstorms tasks  commitment phase  programmers accept and estimate a set of tasks  personal speed  steering phase  implement a task  record progress  recovery (if needed)  verify story

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 17

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 18 Practices – Team Practices  Pair programming  for all production code  dynamic pairing  Collective ownership  everyone responsible of the whole system  a pair should immediately revise any overly complex code they see  Continuous integration  several times a day  unit tests must run 100%  Coding standard  improved communication  Metaphor  high-level architecture  common language between business and technical folks  40-hour week  overtime is a symptom of a serious problem

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 19 Practices - Programming  Simple design  best design for today  runs the tests  no duplicated logic  code states intention to programmers  Refactoring  make design simpler, while still running all of the tests  Testing  Coding standard

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 20 Roles and Responsibilities  Customer  write and select stories  continuous discussion with programmers  write functional tests  Manager  form the team  resources  interface to outside parties  Coach  keep discipline in place  indirect intervention preferred  Programmer  test, code, refactor  Tester  help the customer specify functional tests  run the tests regularly  Tracker  collect effort data  face-to-face  give programmers feedback on accuracy of estimates

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 21 Critique  Architecture design?  spikes, metaphor  first iteration should contain stories that force to create a skeleton of the whole architecture  if requirements are predictable discarding them in the design throws away valuable information  refactoring  works better with small systems and local optimizations  architectural discontinuities (performance, security) cause large costs with big systems

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 22 Critique  Making documents?  team practices  shared knowledge  minimal documents  document more, if customer is willing to pay for it  What if the team must be replaced?  Documents?  requirements, functional spec.  user stories, acceptance tests  architecture spec.  short technical overview  technical specification  code, unit tests  project plan  release plans, iteration plans

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 23 Critique  On-site customer?  is the project important, if the customer is not willing to assign one person to it  still difficult in practice  Flattened change cost curve  What does this really mean?  When is it valid?  XP requires highly skilled, motivated, and disciplined developers. The number of such developers is limited.

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 24 References  Beck. Embracing Change with Extreme Programming, IEEE Computer, Vol. 32, No. 10, 1999, pp  Beck. Extreme Programming Explained. Boston, Addison- Wesley,  Beck, Fowler. Planning Extreme Programming. Boston, Addison-Wesley,  Wake. Extreme Programming Explored. Boston, Addison- Wesley,  