SlideShare ist ein Scribd-Unternehmen logo
1 von 26
1 Extreme Programming How Agile Practices can make the difference AniruddhaChakrabarti Sr. Solution Architect
2 Agenda Agile Methodology Agile Manifesto & Agile Philosophy Different Agile methodologies Extreme Programming/XP Brief History of XP XP Values, Principles and Practices Core XP Values XP Principles Different XP Practices
3 Agile Methodology Definition of Agile: Characterized by quickness, lightness, and ease of movement; nimble.  Mentally quick or alert: an agile mind. Agile Methodology promotes:  Project management process that encourages frequent inspection and adaptation;  Leadership philosophy that encourages team work, self-organization and accountability;  Set of engineering best practices that allow for rapid delivery of high-quality software;  Business approach that aligns development with customer needs and company goals.
4 Agile Philosophy: Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactionsoverprocesses and tools Working softwareovercomprehensive documentation Customer collaborationover contract negotiation Responding to changeoverfollowing a plan That is, while there is value in the items on the right, we value the items on the left more. Kent Beck 	      	   Mike Beedle 	       Arie van Bennekum 	Alistair Cockburn Ward Cunningham         Martin Fowler 	       James Grenning 		Jim Highsmith Andrew Hunt 	   Ron Jeffries 	       Jon Kern 		Brian Marick Robert C. Martin 	   Steve Mellor 	       Ken Schwaber 		Jeff Sutherland Dave Thomas www.AgileManifesto.org, http://AgileManifesto.org/history.html
5 Agile Philosophy Individuals and interactions over processes and tools Software without documentation is a disaster. Code is not the ideal medium for communicating the rationale and structure of a system However, too much documentation is worse than too little. Huge software documents take a great deal of time to produce, and even more time to keep in sync with the code. Working software over comprehensive documentation Software without documentation is a disaster. Code is not the ideal medium for communicating the rationale and structure of a system However, too much documentation is worse than too little. Huge software documents take a great deal of time to produce, and even more time to keep in sync with the code. Customer collaboration over contract negotiation Responding to change over following a plan
6 Different Agile Methodologies Extreme Programming / XP (Kent Beck, Ward Cunningham, Martin Fowler, Ron Jeffries) Scrum (Ken Schwaber, Jeff Sutherland) Crystal (Alistair Cockburn) DSDM Lean Software Development Feature Driven Development / FDD (Peter Coad) XBreed Adaptive Software Development / ASD (Jim Highsmith)
7 What is Extreme Programming (XP) XP is actually a deliberate and disciplined approach to software development. Discipline of software development based on Values of simplicity, communication, feedback, and courage.  Works by -  Bringing the whole team together in the presence of simple practices Enough feedback to enable the team to see where they are and to tune the practices to their unique situation.  Proven at companies like Bayerische Landesbank, Credit Swiss Life, DaimlerChrysler, First Union National Bank, Ford Motor Company and UBS. Empowers developers to confidently respond to changing customer requirements, even late in life cycle.
8 Agile & XP: A bit of History Agile software development evolved in mid-90s as part of a reaction against "heavyweight" methods. Initially they were called "lightweight methods”. In 2001, prominent members of the community met at Snowbird, Utah, and adopted the name "agile methods". Root of XP lies in Smalltalk community Early 90s: Kent Beck and Ward Cunningham came up with an approach to software development that made every thing simple and more efficient. Mar 96: Kent started Chrysler Comprehensive Compensation/C3) at DaimlerChrysler using new concepts in software development. The result was Extreme Programming (XP) methodology.
9 XP Values, Principles & Practices ,[object Object],Values Practices Principles ,[object Object]
Short Release
Continuous Integration
Simple Design
Pair Programming
…
Communication
Simplicity
Feedback
…
Humanity
Improvement
Quality
Accepted Responsibility
…,[object Object]
11 Basic Fundamental Principles Rapid Feedback Assume Simplicity Make Incremental Change Embracing Change Quality Work www.AgileManifesto.org/principles.html http://en.csharp-online.net/Introducing_XP%E2%80%94Fifteen_XP_Principles
12 Further Principles Teach Learning  Make a Small Initial Investment  Play to Win – do what is required to succeed   Concrete Experiments – use proper reports  Open, honest Communication  Work with people's instincts - not against them  Accepted Responsibility  Local Adaptation / Accept as Necessary Travel Light Honest Measurement
13 XP Practices (Rules) ,[object Object]

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

12 principles for Agile Development
12 principles for Agile Development 12 principles for Agile Development
12 principles for Agile Development
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Scrum and the agile development process
Scrum and the agile development processScrum and the agile development process
Scrum and the agile development process
 
Agile Scrum Overview
Agile  Scrum  OverviewAgile  Scrum  Overview
Agile Scrum Overview
 
What is Agile Methodology?
What is Agile Methodology?What is Agile Methodology?
What is Agile Methodology?
 
The Values and Principles of Agile Software Development
The Values and Principles of Agile Software DevelopmentThe Values and Principles of Agile Software Development
The Values and Principles of Agile Software Development
 
Agile-Scrum Methodology-An Introduction
Agile-Scrum Methodology-An IntroductionAgile-Scrum Methodology-An Introduction
Agile-Scrum Methodology-An Introduction
 
Agile software development methodology
Agile software development methodologyAgile software development methodology
Agile software development methodology
 
Scrum 101
Scrum 101 Scrum 101
Scrum 101
 
Agile Process models
Agile Process modelsAgile Process models
Agile Process models
 
Scrum In Ten Slides
Scrum In Ten SlidesScrum In Ten Slides
Scrum In Ten Slides
 
Agile 101
Agile 101Agile 101
Agile 101
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
 
Introduction to Agile Software Development
Introduction to Agile Software DevelopmentIntroduction to Agile Software Development
Introduction to Agile Software Development
 
Agile Process Introduction
Agile Process IntroductionAgile Process Introduction
Agile Process Introduction
 
Agile methodology
Agile methodologyAgile methodology
Agile methodology
 
Scrum 101: Introduction to Scrum
Scrum 101: Introduction to ScrumScrum 101: Introduction to Scrum
Scrum 101: Introduction to Scrum
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
What is Scrum? SlideShare
What is Scrum? SlideShareWhat is Scrum? SlideShare
What is Scrum? SlideShare
 
Scrum
ScrumScrum
Scrum
 

Ähnlich wie Agile Practices - eXtreme Programming

Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
Svetlin Nakov
 
eXtreme programming
eXtreme programmingeXtreme programming
eXtreme programming
Jean Pаoli
 
Flavours of agile software engineering
Flavours of agile software engineeringFlavours of agile software engineering
Flavours of agile software engineering
Zeeshan Masood S
 
Unit_1_Agile development.pdf about the script of software
Unit_1_Agile development.pdf about the script of softwareUnit_1_Agile development.pdf about the script of software
Unit_1_Agile development.pdf about the script of software
zeelp3114
 
Agile Injection, Varberg
Agile Injection, VarbergAgile Injection, Varberg
Agile Injection, Varberg
Fredrik Wendt
 

Ähnlich wie Agile Practices - eXtreme Programming (20)

An Agile Development Primer
An Agile Development PrimerAn Agile Development Primer
An Agile Development Primer
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentation
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
 
A littlebook about agile
A littlebook about agileA littlebook about agile
A littlebook about agile
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
 
SE chapter 4
SE chapter 4SE chapter 4
SE chapter 4
 
Agile Engineering Practices
Agile Engineering PracticesAgile Engineering Practices
Agile Engineering Practices
 
XP vs Lean vs FDD
XP vs Lean vs FDDXP vs Lean vs FDD
XP vs Lean vs FDD
 
Periodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and PracticesPeriodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and Practices
 
3685807
36858073685807
3685807
 
Software Development in the Brave New world
Software Development in the Brave New worldSoftware Development in the Brave New world
Software Development in the Brave New world
 
Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !
 
eXtreme programming
eXtreme programmingeXtreme programming
eXtreme programming
 
SE18_Lec 05_Agile Software Development
SE18_Lec 05_Agile Software DevelopmentSE18_Lec 05_Agile Software Development
SE18_Lec 05_Agile Software Development
 
Flavours of agile software engineering
Flavours of agile software engineeringFlavours of agile software engineering
Flavours of agile software engineering
 
Flavours of agile software engineering
Flavours of agile software engineeringFlavours of agile software engineering
Flavours of agile software engineering
 
Unit_1_Agile development.pdf about the script of software
Unit_1_Agile development.pdf about the script of softwareUnit_1_Agile development.pdf about the script of software
Unit_1_Agile development.pdf about the script of software
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
 
Agile Values, Principles and Practices
Agile Values, Principles and PracticesAgile Values, Principles and Practices
Agile Values, Principles and Practices
 
Agile Injection, Varberg
Agile Injection, VarbergAgile Injection, Varberg
Agile Injection, Varberg
 

Mehr von Aniruddha Chakrabarti

Mphasis Digital POV - Emerging Open Standard Protocol stack for IoT
Mphasis Digital POV - Emerging Open Standard Protocol stack for IoTMphasis Digital POV - Emerging Open Standard Protocol stack for IoT
Mphasis Digital POV - Emerging Open Standard Protocol stack for IoT
Aniruddha Chakrabarti
 

Mehr von Aniruddha Chakrabarti (20)

Pinecone Vector Database.pdf
Pinecone Vector Database.pdfPinecone Vector Database.pdf
Pinecone Vector Database.pdf
 
Mphasis-Annual-Report-2018.pdf
Mphasis-Annual-Report-2018.pdfMphasis-Annual-Report-2018.pdf
Mphasis-Annual-Report-2018.pdf
 
Thomas Cook and Accenture expand relationship with 10 year technology consult...
Thomas Cook and Accenture expand relationship with 10 year technology consult...Thomas Cook and Accenture expand relationship with 10 year technology consult...
Thomas Cook and Accenture expand relationship with 10 year technology consult...
 
NLP using JavaScript Natural Library
NLP using JavaScript Natural LibraryNLP using JavaScript Natural Library
NLP using JavaScript Natural Library
 
Dart programming language
Dart programming languageDart programming language
Dart programming language
 
Third era of computing
Third era of computingThird era of computing
Third era of computing
 
Golang - Overview of Go (golang) Language
Golang - Overview of Go (golang) LanguageGolang - Overview of Go (golang) Language
Golang - Overview of Go (golang) Language
 
Amazon alexa - building custom skills
Amazon alexa - building custom skillsAmazon alexa - building custom skills
Amazon alexa - building custom skills
 
Using Node-RED for building IoT workflows
Using Node-RED for building IoT workflowsUsing Node-RED for building IoT workflows
Using Node-RED for building IoT workflows
 
Mphasis Digital - Use Go (gloang) for system programming, distributed systems...
Mphasis Digital - Use Go (gloang) for system programming, distributed systems...Mphasis Digital - Use Go (gloang) for system programming, distributed systems...
Mphasis Digital - Use Go (gloang) for system programming, distributed systems...
 
Using Swift for all Apple platforms (iOS, watchOS, tvOS and OS X)
Using Swift for all Apple platforms (iOS, watchOS, tvOS and OS X)Using Swift for all Apple platforms (iOS, watchOS, tvOS and OS X)
Using Swift for all Apple platforms (iOS, watchOS, tvOS and OS X)
 
Future of .NET - .NET on Non Windows Platforms
Future of .NET - .NET on Non Windows PlatformsFuture of .NET - .NET on Non Windows Platforms
Future of .NET - .NET on Non Windows Platforms
 
CoAP - Web Protocol for IoT
CoAP - Web Protocol for IoTCoAP - Web Protocol for IoT
CoAP - Web Protocol for IoT
 
Groovy Programming Language
Groovy Programming LanguageGroovy Programming Language
Groovy Programming Language
 
Mphasis Digital POV - Emerging Open Standard Protocol stack for IoT
Mphasis Digital POV - Emerging Open Standard Protocol stack for IoTMphasis Digital POV - Emerging Open Standard Protocol stack for IoT
Mphasis Digital POV - Emerging Open Standard Protocol stack for IoT
 
Level DB - Quick Cheat Sheet
Level DB - Quick Cheat SheetLevel DB - Quick Cheat Sheet
Level DB - Quick Cheat Sheet
 
Lisp
LispLisp
Lisp
 
Overview of CoffeeScript
Overview of CoffeeScriptOverview of CoffeeScript
Overview of CoffeeScript
 
memcached Distributed Cache
memcached Distributed Cachememcached Distributed Cache
memcached Distributed Cache
 
Redis and it's data types
Redis and it's data typesRedis and it's data types
Redis and it's data types
 

Kürzlich hochgeladen

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Kürzlich hochgeladen (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 

Agile Practices - eXtreme Programming

  • 1. 1 Extreme Programming How Agile Practices can make the difference AniruddhaChakrabarti Sr. Solution Architect
  • 2. 2 Agenda Agile Methodology Agile Manifesto & Agile Philosophy Different Agile methodologies Extreme Programming/XP Brief History of XP XP Values, Principles and Practices Core XP Values XP Principles Different XP Practices
  • 3. 3 Agile Methodology Definition of Agile: Characterized by quickness, lightness, and ease of movement; nimble. Mentally quick or alert: an agile mind. Agile Methodology promotes: Project management process that encourages frequent inspection and adaptation; Leadership philosophy that encourages team work, self-organization and accountability; Set of engineering best practices that allow for rapid delivery of high-quality software; Business approach that aligns development with customer needs and company goals.
  • 4. 4 Agile Philosophy: Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactionsoverprocesses and tools Working softwareovercomprehensive documentation Customer collaborationover contract negotiation Responding to changeoverfollowing a plan That is, while there is value in the items on the right, we value the items on the left more. Kent Beck Mike Beedle Arie van Bennekum Alistair Cockburn Ward Cunningham Martin Fowler James Grenning Jim Highsmith Andrew Hunt Ron Jeffries Jon Kern Brian Marick Robert C. Martin Steve Mellor Ken Schwaber Jeff Sutherland Dave Thomas www.AgileManifesto.org, http://AgileManifesto.org/history.html
  • 5. 5 Agile Philosophy Individuals and interactions over processes and tools Software without documentation is a disaster. Code is not the ideal medium for communicating the rationale and structure of a system However, too much documentation is worse than too little. Huge software documents take a great deal of time to produce, and even more time to keep in sync with the code. Working software over comprehensive documentation Software without documentation is a disaster. Code is not the ideal medium for communicating the rationale and structure of a system However, too much documentation is worse than too little. Huge software documents take a great deal of time to produce, and even more time to keep in sync with the code. Customer collaboration over contract negotiation Responding to change over following a plan
  • 6. 6 Different Agile Methodologies Extreme Programming / XP (Kent Beck, Ward Cunningham, Martin Fowler, Ron Jeffries) Scrum (Ken Schwaber, Jeff Sutherland) Crystal (Alistair Cockburn) DSDM Lean Software Development Feature Driven Development / FDD (Peter Coad) XBreed Adaptive Software Development / ASD (Jim Highsmith)
  • 7. 7 What is Extreme Programming (XP) XP is actually a deliberate and disciplined approach to software development. Discipline of software development based on Values of simplicity, communication, feedback, and courage. Works by - Bringing the whole team together in the presence of simple practices Enough feedback to enable the team to see where they are and to tune the practices to their unique situation. Proven at companies like Bayerische Landesbank, Credit Swiss Life, DaimlerChrysler, First Union National Bank, Ford Motor Company and UBS. Empowers developers to confidently respond to changing customer requirements, even late in life cycle.
  • 8. 8 Agile & XP: A bit of History Agile software development evolved in mid-90s as part of a reaction against "heavyweight" methods. Initially they were called "lightweight methods”. In 2001, prominent members of the community met at Snowbird, Utah, and adopted the name "agile methods". Root of XP lies in Smalltalk community Early 90s: Kent Beck and Ward Cunningham came up with an approach to software development that made every thing simple and more efficient. Mar 96: Kent started Chrysler Comprehensive Compensation/C3) at DaimlerChrysler using new concepts in software development. The result was Extreme Programming (XP) methodology.
  • 9.
  • 14.
  • 18.
  • 23.
  • 24. 11 Basic Fundamental Principles Rapid Feedback Assume Simplicity Make Incremental Change Embracing Change Quality Work www.AgileManifesto.org/principles.html http://en.csharp-online.net/Introducing_XP%E2%80%94Fifteen_XP_Principles
  • 25. 12 Further Principles Teach Learning Make a Small Initial Investment Play to Win – do what is required to succeed Concrete Experiments – use proper reports Open, honest Communication Work with people's instincts - not against them Accepted Responsibility Local Adaptation / Accept as Necessary Travel Light Honest Measurement
  • 26.
  • 31. 14 XP Practices: Planning User Stories Functionalities of the system are described using stories, short descriptions of customer-visible functionalities Planning Game/Release Planning Small & Short Releases Every release should be as small as possible, containing the most valuable business requirements. It is far better to plan a month or two at a time than six months or a year at a time Iterative Development Daily Standup meeting
  • 32.
  • 33. Software development is always an evolving dialog between the possible and the desirable.
  • 35. Scope
  • 43.
  • 44. 17 Daily Standup Meeting (Cont’d) Everyone answers three questions – What did I accomplish yesterday? What will I do today? What obstacles are impeding my progress? Focus on the Backlog Same Place, Same Time Who attends the daily stand-up? – All Hands Time-box the meeting Last Arrival Speaks First
  • 45. 18 XP Practices: Designing Simple Design (avoid YAGNI) System Metaphor CRC Cards: Class, Responsibility, Collaborator Spike Solutions No functionality is added early Design Improvement / Refactoring Related Article: Is Design Dead? – Martin Fowler
  • 46. 19 Simple Design Misconception about XP: XP advices to avoid design Truth: XP advices Avoid too much Up Front Design / extra design at early phase, as requirement is not clear – Evolutionary Approach Simple and elegant design Runs all the tests. Has no duplicated logic. Be wary of hidden duplication like parallel class hierarchies. States every intention important to the programmers. Has the fewest possible classes and methods. Avoid over design Avoid design that would not be required: YAGNI
  • 47. 20 CRC Cards Used to identify Classes, Responsibilities and Collaborations between objects. Created from index cards with these info - Class name Its Super and Sub classes (if applicable) Responsibilities of the class. Names of other classes with which the class will collaborate to fulfill its responsibilities. Author Related Article: http://c2.com/doc/oopsla89/paper.html Using CRC cards – Alistair Cockburn http://www.extremeprogramming.org/rules/crccards.html
  • 48. 21 XP Practices: Coding/Release Onsite Customer: Customer is always available Coding Standards Test Driven Development (TDD): code unit tests first Pair Programming Continuous Integration (CI) Ten-minute build Daily Deployment Collective Code Ownership Sustainable Pace: 40-hour week
  • 49. 22 Continuous Integration (CI) Maintain a single source repository Automate the build Make your build self-testing Everyone commits every day Every commit should build the mainline on an Integration machine Keep the build fast Test in a clone of the production environment Make it easy for anyone to get the latest executable Everyone can see what's happening Automate deployment Related Article: Continuous Integration – Martin Fowler
  • 50. Steps to do for CI with a Source Control 23 Dev begins by taking a copy of current integrated source onto local dev machine: Check out from Source Control Dev makes the necessary changes - It consist of both altering the code, and also adding or changing automated tests. Dev carries out an automated build on dev machine - takes source code in working copy, compiles and runs the automated tests. Update working copy with changes in Source Control and rebuild. If other’s changes clash with dev’s changes dev will fix this and repeat until he can build a working copy that is properly synchronized with the mainline. Once dev have made his own build of a properly synchronized working copy he can finally commit changes into the mainline Build again, but this time on an integration machine based on the mainline code. Only when this build succeeds can we say that my changes are done
  • 51. 24 XP Practices: Testing All code should have Unit Tests All code must pass all unit tests before it can be released. When a bug is found tests are created. Unit Tests and Acceptance tests are run often and the score is published.
  • 52. 25 XP Practices: Team & Human Seat together Whole team approach Informative workspace Energized Work Pair Programming Team Continuity
  • 53. 26 Resources Extreme Programming Explained: Embrace Change – Kent Beck (Ver 1 and 2) Apress Pro .NET 2.0 Extreme Programming ebook Refactoring: Improving the Design of Existing Code - Matrin Fowler, Kent Beck … Agile Project Management with Scrum - Ken Schwaber  www.ExtremeProgramming.org www.AgileManifesto.org http://www.xprogramming.com