Unified Process as an Agile Software Development Process

by Koree S. Monteloyola


In many ways Unified Process is very similar to the classic Waterfall model, although, because of its flexibility it can be customized to be used as an agile software development process. Considering its inherent versatility as a factor, various organizations can implement Unified Process to work on different types of applications, involving people with different skill levels, in different complexities. There is really no definite or limited steps on how it should be implemented, its application would depend on how an organization decides to use it.

The core of UP's framework has the following attributes:

  1. Gather knowledge on the project that should be done
  2. Assess the needs of the client and build a list of project requirements from the gathered information
  3. Analyze and design the project software
  4. Implement the design, testing and deployment

These attributes are applied to the four phases of a Unified process project.

Each phase can be iterated per workflow as the software lifecycle moves through the phases. The adjustments occur by controlling the number of iterations in each phase; iterations are determined by the organization and complexity of the project.

The four phases of Unified Process are:

  • Inception deals with data gathering and project planning
    • Possible tasks/outputs:
      • requirements workshop
      • vision and risk list
      • use case model
      • supplementary specifications
      • prototyping
  • Elaboration deals with the iterations to be done during the project cycle based on the defined project / software architecture
    • Possible tasks/outputs: 
      • short iterations of testing, programming, designing
      • requirements workshop
      • refining vision
      • refining the process and technical environment
  • Construction is the phase wherein the project software is actually built and extensively tested. The documentation should also be finished under this stage.
    • Possible tasks/outputs: 
      • short iterations of testing, programming, designing
      • stakeholder evaluation & steering
      • minor evaluations
      • create all documents
      • alpha testing
  • Transition is the phase wherein the project software is declared as complete and delivered to the client for deployment.
    • Possible tasks/outputs: 
      • beta or release candidate testing
      • stakeholder feedback
      • final programming and documentation
      • deployment

unified process agile_process

Figure 1: The iteration is enclosed within a rounded rectangle. | Horizontal: Phases of Unified Process; Vertical: Core Workflows

Personally what I really like about Unified Process is I can use this very simple and flexible cycle as an agile software development process - even for complicated projects.

And I guess this is just one of the reasons why Unified Process is one of the most popular agile processes used today.



Agile Software Development Processes A Different Approach to Software Design bye Everette R. Keith;

blog comments powered by Disqus