Blue Theme Orange Theme Green Theme Red Theme
 
Home | Forums | ASP.NET 2.0 Tutorials | Web Services | How Do I...? | Class Browser | WPF Quick Starts | Advertise with Us
 | Consulting  
Submit an Article Submit a Blog 
 Jump to
Skip Navigation Links
TechnologyExpand Technology
WebsiteExpand Website
6 Months Free & No Setup Fees ASP.NET Hosting!
Search :       Advanced Search »
Home » Enterprise Development » Extreme Programming (XP) – An Overview

Extreme Programming (XP) – An Overview

Extreme Programming is new development technique getting adopted in the software development and the key strength of this methodology is simplicity, team work, quality and testing.

Page Views : 1504
Downloads : 0
Rating :
 Rate it
Level : Beginner
   Print Read/Post comments Post a comment  Similar Articles  
   Email to a friend  Bookmark  Author's other articles  
 
6 Months Free & No Setup Fees ASP.NET Hosting!
Become a Sponsor
 Tag Cloud
 Latest Jobs
More ... 
 Latest Interview Questions
More ... 

Extreme Programming is new development technique getting adopted in the software development and the key strength of this methodology is simplicity, team work, quality and testing.

XP suggests having very simple and clean design, which means almost every developer can understand the system better. So, XP development approach will suite with new product development where the complete product visibility is not clear or the system is not very complicated.

Teamwork, it encourages developers working closely with customer, ideally customer or product manager will work along with developers to have constant discussion whenever required. Other development hardly gets a chance to interact with customer which may lead to wrong development.

Very often complicated system design will have more difficulty if the customer comes up with changes, but XP can adopt changes very easily because of its simple design. Also, this gives more flexibility for our customer to freely change their requirement. Let's have quick overview on entire development life cycle:

  1. Planning
      1.1. Stories
      1.2. Release Plan
      1.3. Iteration Plan
      1.4. Stand-up Meeting

  2. Design
      2.1. Simplicity
      2.2. Spike Solution
      2.3. Re-factor 


  3. Coding
      3.1. Customer Availability
      3.2. Coding Standards
      3.3. Unit Testing
      3.4. Pair Programmed
      3.5. Integrate Often
      3.6. Optimization 


  4. Testing
      4.1. Unit Test
      4.2. Acceptance Test

1. Planning

Planning phase we have to decide on our development strategy like finalizing requirement, release plan, iteration plan & developer meetings.

1.1. Stories

Stories are nothing but a simple use case in a system without having any visual representation. For example a typical story would look like this,

"I would like to see the list active customers in a tabular format with their contact numbers, and by clicking the number I should be able to make a call the respective customer"

The above one is a simple story explains the end user or customer need given in plain English. The story need not have complete description about the requirement, and the product manager or customer will give us detailed description about the requirement at the time of development.

The stories are created to have estimates, release plan, iteration duration etc. Typically a story should be implemented in two weeks of time.

1.2. Release Plan

After finalizing the list of stories the release plan meeting happens with technical team as well as product team. Typically technical team will be revealing the required effort & complication of stories and product manager or customer will evaluate the same and priorities the stories. Finally the system release plan & release date will be finalized.

1.3. Iteration Plan

Iterative development breaks whole requirement into small set of iteration and with fixed length of duration. Typically iteration is a small release with set of sorties or functionalities.

Iteration planning meeting happens at the beginning of iteration to generate Iteration plan with list of new development stories from the release plan. Iteration duration can be 1-2 weeks; mostly it will be a story complete execution period.

As part of each story completion, the developer has to complete acceptance & unit testing. Each completed stories will be singed off by customer. Failed stories, acceptance test will be analyzed in iteration plan meeting and new stories will be created to complete the same.

1.4. Stand-up Meeting

Stand-up meeting enables communication with everyday developer, managers. Every team members will be brief their yesterday task, today plan and they will be discussing technical problems, solutions and any other information useful to entire team.
This helps each to developer aware of new problems, solutions and helps everyone to get their issues clarified.

2. Design

2.1 Simplicity

Simple design is very easy implement and takes less time to complete than the complex one. XP development model recommends having simple and clean design, and break any complicated design into simple design if possible.

2.2 Spike Solution

Every design problems or technical complexity has to be addressed before staring the iteration to reduce the risk. The spike solutions are developed to solve or explore critical problems and it need to follow all the regular development procedures.

Ideally those programs will be thrown away once every developer gets clear idea about the problem.

2.3 Re-factor

Extreme programming recommends to refractor or review, confirming coding standard etc. Continuous re-factoring saves developer time and increase quality, the major motivation of re-factoring is to keep the code clean, re-use, extent and easy to maintain.

3. Coding

3.1. Customer Availability

Customer should be available all the time not only to help developers also part the project member. It's better to have face- face meeting with customer whenever to get any issues clarified before starting development with assumption.

Customer will be validating user completed stories and they will confirm the desired requirements.

3.2. Coding Standard

It's not new to XP but development strategy includes customer coding standard or common standard to keep the code consistency to have better maintainability and clarity.

3.3. Unit Testing

In XP modeling we have to create the test first with story and confirm the code later with test. Developing test helps to understand the requirement better and coding will be much faster than normal development. Also, we should create a test to cover the complete code written, which means changing single line of code has to make one of the test failed.

3.4. Paired Programming

It's little unusual than normal development model, but it really helps to improve the developer productivity. Paired development makes the developer to share their ideas to find quick solution for the given problem and it enables them to deliver the code quickly.

3.5. Integrate Often

We have to integrate our code very often to code repository or version control system. The version control system should confirm the entire acceptance tests to make sure that delivered source code has no impact on exiting functionalities, otherwise the deliverables are considered to be rejected.

3.6. Optimization

There is no optimization required till the end of the development, and it's recommended to make it work first and make it fast at last.

4. Testing

4.1. Unit Test

Every piece of code we develop should have Unit test to confirm the functionality. It should happen immediately after completing development of each story. Code will be delivered along with unit test and every one code delivery should make sure that exiting test is succeeding.

4.2. Acceptance Test

Acceptance test are created based on user stories to make sure the component or system is returning expected result. Usually customer gives a scenario (use case) and expected output of the system.

The developer will be creating the test scripts to capture the actual result from the system & and confirms with expected static data given by customer.

Each delivery customer will verify correctness of the expected result, and it should make sure that exiting tests are succeeding prior to current delivery to accept the deliverables.

Comment Request!
Thank you for reading this post. Please post your feedback, question, or comments about this post Here.
Login to add your contents and source code to this article
 [Top] Rate this article
 
 About the author
 
sakthivel.arumugam
Looking for C# Consulting?
C# Consulting is founded in 2002 by the founders of C# Corner. Unlike a traditional consulting company, our consultants are well-known experts in .NET and many of them are MVPs, authors, and trainers. We specialize in Microsoft .NET development and utilize Agile Development and Extreme Programming practices to provide fast pace quick turnaround results. Our software development model is a mix of Agile Development, traditional SDLC, and Waterfall models.
Click here to learn more about C# Consulting.
 
Introducing MaxV - one click. infinite control. Hyper-V Hosting from MaximumASP.
Finally – a virtual platform that delivers next-generation Windows Server 2008 Hyper-V virtualization technology from a managed hosting partner you can truly depend on. Visit www.maximumasp.com/max for a FREE 30 day trial. Hurry offer ends soon. Climb aboard the MaxV platform and take advantage of High Availability, Intelligent Monitoring, Recurrent Backups, and Scalability – with no hassle or hidden fees. As a managed hosting partner focused solely on Microsoft technologies since 2000, MaximumASP is uniquely qualified to provide the superior support that our business is built on. Unparalleled expertise with Microsoft technologies lead to working directly with Microsoft as first to offer IIS 7 and SQL 2008 betas in a hosted environment; partnering in the Go Live Program for Hyper-V; and product co-launches built on WS 2008 with Hyper-V technology.
Dynamic PDF
ceTE software specializes in components for dynamic PDF generation and manipulation. The DynamicPDF™ product line allows you to dynamically generate PDF documents, merge PDF documents and new content to existing PDF documents from within your applications.
Nevron Chart for .NET 2010.1 Now Available
The leading .NET charting control now features PDF, Flash and Silverlight export, visualization of large datasets and more. Deliver true charting functionality to your BI, Scorecard, Presentation or Scientific apps. Download evaluation now.
ASP.NET 4 Hosting
Get 2 Months Free of ASP.NET Hosting for Only $4.95/month! Receive FREE MS SQL and MySQL Databases Including ASP.NET 4/3.5, MVC 3.0, Silverlight 4, Windows 2008/IIS 7.0 Plus FREE IIS 7 Modules. Host UNLIMITED ASP.NET Web Sites – Click Here!
 
 Post a Feedback, Comment, or Question about this article
Subject:
Comment:
Team Foundation Server Hosting
Become a Sponsor
 Comments
6 Months Free & No Setup Fees ASP.NET Hosting!
 © 2012  contents copyright of their authors. Rest everything copyright Mindcracker. All rights reserved.