Agile Methodology vs. Rational Unified Process AGILE METHODOLOGY Agile methodology is an approach to project management, typically used in software development. It helps teams respond to the unpredictability of building software through incremental, iterative work cadences. The life cycle of the project is based on the development iterations throughout the process. It is a framework that helps in minimizing the risk by developing the software in short amount of time. Agile methods break tasks into small increments with minimal planning, and do not directly involve long-term planning. The time in which the software is being developed is called iteration. Each one of the iterations is a project with analysis, design, coding, testing and also documentation. Multiple iterations takes place as it is not possible to cover all the functionality of the product in just one iteration. The aim of the developing unit is to produce a defect free release at the end of each iteration. There are various Agile methodologies that have been in practise: Agile Modeling Agile Unified Process(AUP) Dynamic Systems Development Method (DSDM) Essential Unified Process(EssUP) Extreme Programming (XP)
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Agile Methodology vs. Rational Unified Process
AGILE METHODOLOGY
Agile methodology is an approach to project management, typically used in software
development. It helps teams respond to the unpredictability of building software through
incremental, iterative work cadences. The life cycle of the project is based on the development
iterations throughout the process. It is a framework that helps in minimizing the risk by
developing the software in short amount of time. Agile methods break tasks into small
increments with minimal planning, and do not directly involve long-term planning. The time in
which the software is being developed is called iteration. Each one of the iterations is a project
with analysis, design, coding, testing and also documentation. Multiple iterations takes place as
it is not possible to cover all the functionality of the product in just one iteration. The aim of the
developing unit is to produce a defect free release at the end of each iteration.
There are various Agile methodologies that have been in practise:
The Rational Unified Process is a software engineering process. It provides a disciplined
approach to assigning tasks and responsibilities within a development organization. Its goal is to
ensure the production of high-quality software that meets the needs of its end-users, within a
predictable schedule and budget. In this method, an iterative approach is practiced to develop
the software. This method helps us to understand the problem through successive refinement
and to incrementally grow an effective solution over multiple iterations. Each iteration leads to
an iteration release (which may be only an internal release) that integrates all software across
the team and is a growing and evolving subset of the final system.
The six best practices that the process effectively utilizes to develop the software products are:
1. Develop software iteratively
2. Manage requirements
3. Use component-based architecture
4. Visually model software
5. Continuously verify software quality
6. Control changes to software
RUP has a series of phases and milestones that flow into each other. Phases consist of:
1. Inception, where the project's scope, estimated costs, risks, business case, environment
and architecture are identified.
2. Elaboration, where requirements are specified in detail, architecture is validated, the
project environment is further defined and the project team is configured.
3. Construction, where the software is built and tested and supporting documentation is
produced.
4. Transition, where the software is system tested, user tested, reworked and deployed.
The three strategies captured by RUP are a customizable process that guides development,
automated tools to expedite the process, and services that help to adopt process and tools
faster. These strategies intern captures the six best practices of software engineering (iterative
development, managing requirements, component based architecture, visual software models,
continuous verification and management of changes).
Comparison of few Agile Methodologies with Rational Unified Process
Extreme Programming
Extreme Programming or Xp is a software development methodology that is supposed to
improve the development of software. Xp is a form of agile software development that uses
time boxing for productivity and checkpoints during the software development phase.
Xp is popular among the truly faithful adherents to the methodology, but Xp encourages the
return to DAFTCRAP (DESIGN AFTER FIRST TESTING, and CONSTANT REFACTORING AFTER PROGRAMMING).
XP is a symbiotic process that focuses on the next part in order to work properly. In other words
it’s all or nothing, if you don’t run the methodology faithfully it will probably back fire at some
point. The theory is that each of its practices reinforces each other to produce something
stronger.
RUP (Rational Unified Processes) is a project framework that describes a class of processes that
are iterative and incremental. RUP process deliver functionality in small augmentations, each
building on the previous, and each being driven by use cases rather than being the construction
of a subsystem. RUP processes estimate tasks and plan schedules by measuring the speed of
iterations relative to their original estimates. Early iterations of RUP driven projects are strongly
focused upon software architecture; rapid implementation of features is delayed until a firm
architecture has been identified and tested.
A minimal implementation of RUP is called dX . The principles and practices of dX were
identified several years ago by Ward Cunningham, Kent Beck, Ron Jeffries, and a host of other
developers and methodologists. They have used this process on several projects with significant
success. Because of that success, they have gathered quite a following. They call the process
Extreme Programming; or Xp for short: Kent Beck is the one that wrote the book “Extreme
Programming Explained” which launched the popularity of this methodology, but never
credited other people that first identified the principles of Xp.
Rational Unified Process is process framework whereas Extreme Programming is a Process. The
following shows the brief comparison between RUP and Extreme Programming:
-Both proscribe iterative development - RUP's Inception Phase = User Stories -XP's User Stories map to RUP Use Cases -RUP's Elaboration Phase is XP's Planning Game (prioritization of use cases/user stories and
design the architecture/architectural spike).
-Both RUP and XP address and prioritize risk. -Both RUP and XP recognize that ongoing change is part of the process. - XP has some specific coding practices, but such things are (for now) outside of the scope of
RUP, though RUP does provide some sample standards and guidelines.
-RUP describes a core process with lots of options. XP follows most of the core process and omits most of the options. The following table shows how the phases of RUP compare with those of Extreme programming.
RUP Phase XP Notion
Inception:
-User Stories
-Metaphor
-initial spike.
Elaboration -More User Stories
-Establishing the metaphor, or other architecture.