Extreme Programming and Systems Engineering Similarities and Synergy (based on talk given to INCOSE New England Chapter) Joseph (Yossi) Weihs Sept 10 th,

Slides:



Advertisements
Similar presentations
Unified process(UP) UP is an OO system development methodology offered by Rational(Rational Rose) s/w, now a part of IBM Developed by Booach,Rambaugh,Jacobson--
Advertisements

Agile Software Development کاری از : مهدی هوشان استاد راهنما : استاد آدابی.
OXFORD SOFTWARE ENGINEERING Software Engineering Services & Consultancy Slide 1.1 eXtreme Programming experiences with a new approach to software development.
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
A little Software Engineering: Agile Software Development C Sc 335 Rick Mercer.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall B.1.
NAUG NAUG Knowledge Evening – th February 2007.
Software Life Cycles ECE 417/617: Elements of Software Engineering
Agile
XP – eXtreme Programming A gentle introduction. Cleviton Vinícius Jobson Ronan Thiago Rodrigues.
Extreme Programming Collaboration in Software Development Process.
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.
Management 421 Computer Science 350. Overview Project Roles Software Development Process Extreme Programming Management/Developer Interaction in Extreme.
Extreme Programming--a “New” Process Model Extreme Programming-- a “New” Process Model.
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.
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.
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.
Extreme programming overview Agenda  Extreme programming goals  Extreme programming values  Extreme programming practices  The Extreme programming.
Embracing change with Extreme Programming Method Engineering Erik ten Brinke
EXtreme Programming: An Introduction Presentation by: Jon Banta.
Extreme Programming Sylvain Giroux October 3 rd, 2000.
E X treme P rogramming Angelo Corsaro (modified by G. Blank, with notes from Extreme Programming FAQ and Mike Rogers, BrainLoaf.com ) Extreme Programming.
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.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
EXtreme Programming Development Adrian Williamson People, Technology and People and Technology Consultant.
Extreme Programming David Li CTO, DigitalSesame. Problem in Developing Software The Basic Problem - Risk –Schedule slips –Project canceled –System goes.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
XP Overview Short Life cycle Risky / Dynamic Requirements Increase developer productivity.
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.
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.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix B Agile Methodologies B.1.
Agile Methods Presentation By: Jason Abbett. Definition A process to rapidly develop software Many kinds of agile methods but few are practiced.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
EXtreme Programming and Open Source engineering paradigm A comparison
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.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
Introduction to Software Engineering Muhammad Nasir Agile Software Development(2)
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
Presented By : Prima Business Solutions. Agile Software Development Process.
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
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Appendix B Agile Methodologies
Planning User stories are written.
Alexander Kanavin Lappeenranta University of Technology
Extreme Programming.
روش‌های سريع الانتقال (چابک) توسعه نرم افزار
What do you need to know about XP?
Agile and XP Development
Agile and XP Development
Coming up: What is Agile?
Refactoring.
Sylvain Giroux October 3rd, 2000
Appendix B Agile Methodologies
Agile software development
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

Extreme Programming and Systems Engineering Similarities and Synergy (based on talk given to INCOSE New England Chapter) Joseph (Yossi) Weihs Sept 10 th, 2004

2 Abstract XP is one of the popular ‘Agile’ software development disciplines Systems engineers may have to deal with software teams practicing XP What should you look out for, and what can you exploit when working with an XP oriented team?

3 Contents Overview – what is XP Overview – what is XP Why use XP Why use XP Overlap with SE Overlap with SE Key differences Key differences Integrated methods Integrated methods Summary / Take Home Summary / Take Home

4 Agile Methods Formality - from lightweight to ‘heavy’: ScrumXP Crystal Orange DSDM

5 Overview Extreme Programming is a software development methodology that originated about seven years ago Extreme Programming is a software development methodology that originated about seven years ago XP is winning recognition in large organizations XP is winning recognition in large organizations XP is bunched together with Lean development and Agile processes XP is bunched together with Lean development and Agile processes

6 Must have a flow chart

7 History of XP Started out as a one man’s quest Kent Beck Started out as a one man’s quest Kent Beck Defined four values in 1996: Defined four values in 1996: –Communication Communication –Simplicity Simplicity –Feedback Feedback –Courage Courage

8 History of XP (continued) Since 1999 it has been publicly evangelized. Numerous publications have sprung up Since 1999 it has been publicly evangelized. Numerous publications have sprung up 2004 – XP is in use in many organizations, large and small 2004 – XP is in use in many organizations, large and small

9 Why XP? The approach works best when: Project has numerous requirement changes Project has numerous requirement changes Project has numerous requirement changes Project has numerous requirement changes High risk development High risk development Applied to small (30<) teams Applied to small (30<) teams Testability is a requirement (V&V!) Testability is a requirement (V&V!) Use XP only with whole software team buy-in!

10 XP Cost of Change Steve Hayes

11 XP and Risk

12 Core XP Principles Incremental change Incremental change Assume simplicity Assume simplicity Rapid feedback Rapid feedback Embracing the change Embracing the change Quality work Quality work

13 Core XP Practices Broken down to four domains: Planning Designing Coding Testing

14 Planning –User stories –Release planning / release plan –Make frequent small releases –Project velocity –Iterative development –Iteration planning –Move people around –Daily stand up meeting –Fix XP when it breaks

15 Designing –Simplicity is the key –Choose a system metaphor –CRC cards –Spike solution –Never add functionality early –Re-factor mercilessly –YAGNI = You Ain’t Gonna Need It

16 Coding –On site customer –Coding standard –Code unit then test –Pair programming –Sequential integration –Integrate often –Collective code ownership –Optimize last –40 hours a week

17 Testing –Unit tests –When a bug is found… –Acceptance tests

18 XP Life Cycle Exploration phase Exploration phase Planning phase Planning phase Iterations to release Iterations to release Productionizing Productionizing Death phase Death phase

19 XP Team Members Programmers Programmers Customers Customers Testers Testers Trackers Trackers Coach Coach Consultants Consultants Manager Manager

20 XP roles an SE plays Customer – the SE is requirements advocate and validation tester Customer – the SE is requirements advocate and validation tester Tracker – SE may act as project manager, including risk mitigation Tracker – SE may act as project manager, including risk mitigation Tester – SE may facilitate some tests Tester – SE may facilitate some tests Coach – SE’s as discipline leader Coach – SE’s as discipline leader Manager – SE as boss in large project Manager – SE as boss in large project

21 XP & SE – Overlap XP Systems Engineering Planning Development plan, risk management Testing Validation & verification Coach Systems engineer Collective ownership System integration

22 XP Iterations and SE XP: Assume customer does not have clear definition of system at any point SE: Maximize planning, scenario building risk assessment before starting work Collision? Sometimes, but SE can still manage process: trickle feed XP’rs requirements disguised as customer stories, according to SE requirement rankings

23 XP Customer and SE XP: Customer Rep available at all times for iterations: Requirements, risks, priorities, validation SE: Customer signs off on SOW, gets briefed on progress and accepts product at milestones Collision? Sometimes – when working with XP teams, use their power throughout project initiation, and transition more structured disciplines as project matures

24 Additional XP & SE issues XP’s short iterations and local focus fit concept exploration phase XP’s short iterations and local focus fit concept exploration phase XP is the least formalistic of the Agile methods : On-Site Customer XP is the least formalistic of the Agile methods : On-Site CustomerAgile methods Agile methods Pair Programming can cause cultural problems Pair Programming can cause cultural problems

25 Integrated Approaches Small XP teams within larger projects Small XP teams within larger projects Software – part heavyweight, part XP Software – part heavyweight, part XP Extreme / Agile Project Management Extreme / Agile Project Management Extreme applied to other engineering disciplines Extreme applied to other engineering disciplines

26 Summary / Take Home Works well for smaller software projects / proof of concept Works well for smaller software projects / proof of concept Works with CMMI / UML (to a point) Works with CMMI / UML (to a point) No fixed cookbook – tailor it to your project No fixed cookbook – tailor it to your project Spill over to project management and general engineering management Spill over to project management and general engineering management

27 References Extreme Programming Explained, Kent Beck, Addison Wesley 1999 Extreme Programming Explained, Kent Beck, Addison Wesley 1999 Re-factoring: Improving the Design of Existing Code, Martin Fowler, Addison Wesley 1999 Re-factoring: Improving the Design of Existing Code, Martin Fowler, Addison Wesley 1999 Many web sites Many web sites

28 Links /xpm_apm.asp /xpm_apm.asp /xpm_apm.asp /xpm_apm.asp ardinia.PDF ardinia.PDF ardinia.PDF ardinia.PDF ogy.html ogy.html ogy.html ogy.html

29 Extra Slides

30 XP - The Four Core Values Communication. Communication. Simplicity. Simplicity. Feedback. Feedback. Courage. Courage.

31 Communication Often problem that arise in SW project can be tracked back to lack of communication. Often problem that arise in SW project can be tracked back to lack of communication. XP enforces the Communication Value by employing many practice that could not be carried without communicating (e.g. pair programming, unit testing etc.). XP enforces the Communication Value by employing many practice that could not be carried without communicating (e.g. pair programming, unit testing etc.). XP employs a Coach whose job is that of noticing when people are not communicating and reintroduce them. XP employs a Coach whose job is that of noticing when people are not communicating and reintroduce them.

32 Simplicity XP embrace the principle of “Make it Simple” XP embrace the principle of “Make it Simple” XP is betting that it is better to do a simple thing today and pay a little more tomorrow to change it, if it needs to be changed, than building a more complicate system that has feature that will never be used. XP is betting that it is better to do a simple thing today and pay a little more tomorrow to change it, if it needs to be changed, than building a more complicate system that has feature that will never be used. Simplicity and Communication support each other mutually. Simplicity and Communication support each other mutually.

33 Feedback Feedback works in XP at different time scales. Feedback works in XP at different time scales. Programmers have feedback on a minutes time scale on the status of the system thanks to unit tests. Programmers have feedback on a minutes time scale on the status of the system thanks to unit tests. When customers write new stories the programmers estimate those immediately to give prompt feedback to the customer about the quality of the stories. When customers write new stories the programmers estimate those immediately to give prompt feedback to the customer about the quality of the stories. The customer review the scheduler every 2- 3 weeks and provide prompt feedback to the developer. The customer review the scheduler every 2- 3 weeks and provide prompt feedback to the developer.

34 Courage XP team should have the courage of throwing code away. XP team should have the courage of throwing code away. XP team should have the courage of mainly refactor the architecture of the system, if architectural flaw are detected. XP team should have the courage of mainly refactor the architecture of the system, if architectural flaw are detected. Courage has in XP the same role that mutation has in genetic algorithms. Takes you out of local maximum/minimum. Courage has in XP the same role that mutation has in genetic algorithms. Takes you out of local maximum/minimum.