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