Comparison of XP, RUP and DSDM

Posted by FunAllTime On Monday, 1 July 2013 0 comments
Abstract
Number of Information System development methods are in practice, when any organization going for IS development they will be looking for the IS development method that is most complete and/or significant and to fulfil their requirements and give them a complete solution. The purpose of this paper is to compare the three most practiced methods and analyze them on different aspects and to find which of them is the most complete and or significant.







Introduction
In the last two and half decades a number of IS development methods have been introduced and some of them have been practiced more and some are less, all of these methods have their own pros and cons and, like as we know that the software development is one of  the volatile field. New Technologies and concepts are taking place very rapidly and that’s why as the time passing the methods which was developed early they are seemed to be incomplete and not fulfilling the requirement of the up-to-date technologies and there for new methods are taking place most of them are based on the old method with some amendments and some additions, some might be new concepts (Pekka et al. 2002).  
So in this paper three of the most popular IS development methods (XP, RUP, and DSDM) which are in practice nowadays in the market are discussed and compared with respect to different aspects, like process of the methods, practices, and pros and cons are discussed on the basses of this discussion I put my conclusion that which one of these methods is complete and or significant.
The paper is organized as each of the methods are defined and discussed consequently and then on the base of the discussion the significant method as is selected, discussed why it’s been selected, then conclusion and at the end references are listed.  










Extreme Programming:
Extreme Programming is disciplined way of software development which simplify the project, insets on communication, give quick feedback and that’s why bring courage to the team. It combines the whole team to the presence of simple practice, where they getting enough feedback and they can find it what level they are and how they can get the target (Ron Jeffries. 11/08/2001).

 Extreme Programming came in to being due to some problems arisen by traditional methods lengthy development cycle. It is simply the way to get the work done (Pekka et al. 2002).
Life cycle of XP Process:
Extreme programming life cycle consist on the following phases which are discussed according to (Pekka et al. 2002).
   Figure show the life cycle of XP process


This figure is taken form agile software development methods, Review and analysis. By  (Pekka et al. 2002).

Exploration Phase:
          In this phase the customer write down the stories which are actually the requirements of the system, so customer put these stories on stories cards and in the mean while the development team practice there tools and technology which they are using in this project. So the technologies are tested and system get visualise by building the prototype of the system. Depending on the size of the project this phase may take a few weeks to a few months, depend on the situation of the project and technology (Pekka et al. 2002).
Planning Phase:
          As in the exploration phase the user write down the requirement stories these stories are then prioritized according to the requirement of the system and the contents of the initial release are prepared. Then the developer’s team estimate the requirement and work for the first release and mange the time and resources schedule. This phase take a couple of days and the first release are coming out in round about two months (Pekka et al. 2002).

Iterations to Release phase:
          In this phase the schedule which was planed are divided to multiple iterations. And in the first iteration the architecture of the system is created, and this will be the result of the selected stories that focuses the developers on the structure of the required system. The customer decide which stories to be include in every iteration and the necessary tests which the customer wants are developed and applied on code after each iteration. Each iteration take approximately 3-4 weeks to implement, and the system will be ready to use at the end of last iteration (Pekka et al. 2002).

Product ionizing Phase:
          As in this phase the system is ready for the first release but before release it is tested for extra performance and functionality, may be some new amendment are also decided if they are the part of the first release. Some new ideas and suggestions may be arisen so they are recorded and might be implemented later, because this phase is the one to be completed in short time from one to three weeks (Pekka et al. 2002).

Maintenance Phase:
          In this phase as the system is release to the customer so the XP team will be working on both sides on the customer support side as well as on new iteration, this can reduce the speed of the developers and may be some new people are introduced to the XP team and the team will be restructured.             

Death Phase:
          In this phase system is completed, customer is satisfied from the performance of the system and customer requirements are finished. All work is documented and design, architecture, and code are finalized. The death phase also occurs if the desired outcomes are not fulfilled or if the system is going to be too expensive to afford.   


XP Practices:
XP practices are described according to (Pekka et al. 2002).

Planning game: The customer and developer have closed communication, the developer estimate the way how to satisfy the customer requirements and the customer determined the extent and time scale for the releases.   

Small releases: XP team release a simple system as soon as possible and then release updated versions periodically from a day to month.

Metaphor: Metaphor is just a common rule for both customer and developer which show that how the system works.

Simple design: keep the design simple; remove all the compound and unwanted code. 

Testing: XP is a test driven development as the programmer write a code it must pass the functional test written by the customer.

Refactoring: Simply to remove the duplications, increase functionality, and decrease the lines of code.

Pair Programming: A pair of developers will be writing code on one computer at a time.

Collective ownership: as the code is stored on central repository, and any member can change any part of it.

Continues Integration: whenever new part of the code get ready it is added to the system and then tests are run on the system so system is continuously integrated.

40-hour week:  to keep the programmer fresh and functional only 40 hours per week work are allowed.

On-Site Customer: as customer as a part of the team so will be with the developer team all the time.

Coding standards: coding fallow a standard, which are easy for each programmer to read and understand.

Open workspace: The whole team working together in a large room.

Just rule: XP team create some rules according to the situation and they can amend any rule at any time as they need (Pekka et al. 2002).         






XP pros and cons:
Pros
Cons
·        XP is an iterative development method
·        Trusts the developer
·        Customer makes business decisions.
·        Continual process improvement.
·        Not tied to expensive tools.
·        Development makes technical decisions.
·        Lightweight on process side.
·        Dose not specify artefact.
·        A lot of customer involvement.
·        Perceptions that it is organized hacking.
·        Does not have a lot of tools


(Diane. 2007).




Rational Unified Process:
          One of Information system development method RUP also known as Rational Unified Process introduced by “Philippe Kruchten, Ivar Jacobsen and others at Rational Corporation” based on UML. It is an iterative method for Object Oriented systems, use case are used to model requirements and build foundation of the system (Pekka et al. 2002).

Process of RUP:
          The life cycle of RUP is divided in to four phases: Inception, Elaboration, Construction, and Transition. And each phase is then further divided into iterations. Each iteration have a purpose to produces an integral part of the software. Time required for each iteration may be two weeks as long as 26 weeks (Pekka et al. 2002).


RUP phases diagram
This diagram is taken from agile software development methods analysis and review by (Pekka et al. 2002).


RUP phases:
Inception phase: In this phase the system business state is studied. The most important use cases are determined, and the cost of the project is estimated to find that as the project is acceptable or not. It is also determined which resources will be needed.

Elaboration Phase: In this phase the developers have a close look at the system, system architecture determined, and the system plane is defined. This is an important phase for RUP because the developers analyze the risk associated with the system.
 
Construction Phase: In this phase all the development work is completed, all the parts are integrated. And some releases are issued before going on transition phase.

Transition Phase: In this phase the software is in full operation, if the user gives any feedback and if still any critical problem exist that is removed. And if any part that was postponed due to time constraints are completed. Beta tests are carried out, trainings are given to users, some iterations takes place and user documentation are also prepared.
      
According to (Pekka et al. 2002), nine workflows are applied to each phase in parallel.
More or less all workflows are exercised by all iterations. “These workflows are Business Modelling, Requirements, Analysis and Design, Implementation, Test, Configuration and Change Management, Project Management, and Environment” (Pekka et al. 2002).


RUP Practices
          1: Iteratively develop Software.
          2: It will organize requirements.
          3: the system is divided in parts and it will be easily managed  
4: software is modelled simply to allow all team to understand it.
          5: software is tested and verify for quality
          6: any new changes to the requirements are managed and traced.
                                                (Pekka et al. 2002).

Pros and Cons of RUP:
Pros
Cons
·         RUP is an iterative development method.
·         It is a use case driven method.
·         Manageable, and traceable.
·         Lots of artefacts
·         Process is tuneable.
·         Heavyweight on process side.
·         Customer involvement is not as much as in XP.
·         Tied to expensive toolset.

(Diane. 2007).

Dynamic System Development Method (DSDM):
                   DSDM is skeletal structure for RAD, it originated in 1994 and maintained by an organization called DSDM Consortium, unlike other methods DSDM keep the time and resources fixed and functionality can be variable. Simply system will be delivering in a fixed time (Pekka et al. 2002).

DSDM Process:
          DSDM process consists of few phases, which are “feasibility study, business study, functional model iteration, design and build iteration, and implementation”. The first two are done once and the rest of the three are iterative and incremental, any iteration must be completed in fixed time. This fixed time is called a time box (Pekka et al. 2002).   



DSDM Process diagram
This diagram is taken from agile software development methods analysis and review by (Pekka et al. 2002).


Feasibility Study:
          In this phase the project at hand is judged for DSDM where is it suitable for to do this with DSDM or not, this phase also concern with risk and technical issues.
Feasibility report and outline plane are prepared.

Business Study:
          Basic properties of the business and technology are studied, the customer decides the priorities, and the customer from the affected area of business is given more consideration because they will be more involved at initial stag. Process is described according to the business definition. System architecture and outline plane are defined.

Functional Model Iteration:
          This is the starting iterative and incremental phase where the actual development starts. On the completion of iteration the next iteration is planned on the bases of the last iteration, and in this way the analysis model is implemented. Prototype code and analysis model is prepared.
     
Build and Design Iteration:
Here the system is just ready to fulfil the basic agreed user requirements. This is an iterative as well, so the user will review the functionality and design and may ask for further developments.

Implementation:
          In this phase the system is handed over to the users, users are trained and if the system has a very big number of users then it may be done in a period of time. This phase may also be iterated. DSDM then in different situations deferent iterations may be reviewed.


DSDM Pros and Cons:
Pros
Cons
·         User is consider as the owner of the solution
·         Risk is minimized up to enough extent by due to it iterative and incremental nature.
·         The solution obtained fulfils the exact requirement of the user all the times.
·         User is trained before the system implementation.
·         The system implementation goes in very smooth way.
·         More user involvement can be danger some time if the user is not an appropriate one.


(Diane. 2007).


From the above discussion and according to my understanding each one of these methods have strengths and weaknesses, but according to my research, studies, and understandings DSDM is the most complete and significant method as compared to the other methods.

support of author statement: 

DSDM is based on 80/20 principle means 80 percent work is done in 20 percent time, it means that DSDM is the methods which ensure the quick delivery of the system. As customer and developer are empower to make decisions accordingly, as the process is an iterative so after each iteration the understanding increases and at final iteration the most suitable solution to organization is achieved.
 Most of the reasons due to which the projects failed are covered by DSDM up to some extent. Some of these are (ie.) system do not meet the business requirements, so it is covered by DSDM by business study. Some projects failed due to financial objectives, As DSDM concentrate on business objectives (Dr Diane. 2007). why choose DSDM
DSDM is framework which is used internationally, by large as well as small organizations, and some of the users views are given below.

This graph is taken from the lecture notes by (Dr Diane. 2007). on why to choose DSDM.



As the above graph shows in every aspect DSDM is good then other methods.

Some views of the DSDM user about the DSDM according to (Dr Diane. 2007).
 

According to Linda MacCallum-Stewart Business Analyst at Syntegra.  “At Syntegra we are obsessed with realising  benefits. DSDM enables us to work with our customers to identify what really benefits them, then deliver a system that targets those benefits.”
Peter Ridgway-Davies, Custom Built Software says “Our experience has shown that DSDM delivers in half the elapsed time for half the cost for a third fewer technical errors when compared to traditional project lifecycle approaches.”
Dave Thompson, Shell Expro says The system delivered less than we asked for, but more than we expected because we got exactly what we wanted (needed)”                                                                    (Dr Dine. 2007).

      
Conclusion

From the above discussion and according to my understanding each one of these methods have strengths and weaknesses, but according to my research, studies, and understandings DSDM is the most complete and significant method as compared to the other methods, but as I wrote above that each have one have some bad things as well same as for the DSDM as well cause it need a membership and it means it is not allowed for all the people use it and do research on it cause research materials like research papers are not accessible by someone who don’t have membership with DSDM consortium.







References
Jeffries, Ron. (11/08/2001), What is extreme programming [online] Available at :< http://www.xprogramming.com/xpmag/whatisxp.htm#simple > [accessed 22 November 2007]
Pekka et al. (2002), agile software development methods review and analysis [online] available at:<http://www.vtt.fi/inf/pdf/publications/2002/P478.pdf > [accessed 17th November 2007]
Kitchin, Diane. (2007). Lecture notes. [ lecture on software development methods ie XP, DSDM, USDP, RUP . Wednesday 14th November 2007].

DSDM consortium (1997) Dynamic System Development Method. Version 3 UK: Tesseract publishing.

0 comments:

Post a Comment