Agile unified process

Last updated

Agile unified process (AUP) is a simplified version of the rational unified process (RUP) developed by Scott Ambler. [1] It describes a simple, easy to understand approach to developing business application software using agile techniques and concepts yet still remaining true to the RUP. The AUP applies agile techniques including test-driven development (TDD), agile modeling (AM), agile change management, and database refactoring to improve productivity.

Contents

In 2011 the AUP accounted for one percent of all the agile methodologies used. [2] In 2012 the AUP was superseded by disciplined agile delivery (DAD). Since then work has ceased on evolving AUP.

Discipline

Unlike the RUP, the AUP has only seven disciplines [ citation needed ]:

  1. Model. Understand the business of the organization, the problem domain being addressed by the project, and identify a viable solution to address the problem domain.
  2. Implementation. Transform model(s) into executable code and perform a basic level of testing, in particular unit testing.
  3. Test. Perform an objective evaluation to ensure quality. This includes finding defects, verifying that the system works as designed, and validating that the requirements are met.
  4. Deployment. Plan for the delivery of the system and to execute the plan to make the system available to end users.
  5. Configuration management . Manage access to project artifacts. This includes not only tracking artifact versions over time but also controlling and managing changes to them.
  6. Project management . Direct the activities that take place within the project. This includes managing risks, directing people (assigning tasks, tracking progress, etc.), and coordinating with people and systems outside the scope of the project to be sure that it is delivered on time and within budget.
  7. Environment. Support the rest of the effort by ensuring that the proper process, guidance (standards and guidelines), and tools (hardware, software, etc.) are available for the team as needed.

Philosophies

The Agile UP is based on the following philosophies: [3]

  1. Your staff know what they're doing. People are not going to read detailed process documentation, but they will want some high-level guidance and/or training from time to time. The AUP product provides links to many of the details, if you are interested, but doesn't force them upon you.
  2. Simplicity. Everything is described concisely using a handful of pages, not thousands of them.
  3. Agility. The Agile UP conforms to the values and principles of the agile software development and the Agile Alliance.
  4. Focus on high-value activities. The focus is on the activities which actually count, not every possible thing that could happen to you on a project.
  5. Tool independence. You can use any toolset that you want with the Agile UP. The recommendation is that you use the tools which are best suited for the job, which are often simple tools.
  6. You'll want to tailor the AUP to meet your own needs.

Releases

The agile unified process distinguishes between two types of iterations. A development release iteration results in a deployment to the quality-assurance and/or demo area. A production release iteration results in a deployment to the production area. This is a significant refinement to the rational unified process.

AgileUnifiedProcessTimeline20060704.png

See also

Related Research Articles

A software company is an organisation — owned either by the state or private — established for profit whose primary products are various forms of software, software technology, distribution, and software product development. They make up the software industry.

The rational unified process (RUP) is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003. RUP is not a single concrete prescriptive process, but rather an adaptable process framework, intended to be tailored by the development organizations and software project teams that will select the elements of the process that are appropriate for their needs. RUP is a specific implementation of the Unified Process.

<span class="mw-page-title-main">Systems development life cycle</span> Systems engineering terms

In systems engineering, information systems and software engineering, the systems development life cycle (SDLC), also referred to as the application development life cycle, is a process for planning, creating, testing, and deploying an information system. The SDLC concept applies to a range of hardware and software configurations, as a system can be composed of hardware only, software only, or a combination of both. There are usually six stages in this cycle: requirement analysis, design, development and testing, implementation, documentation, and evaluation.

In software development, agile practices include requirements, discovery and solutions improvement through the collaborative effort of self-organizing and cross-functional teams with their customer(s)/end user(s). Popularized in the 2001 Manifesto for Agile Software Development, these values and principles were derived from, and underpin, a broad range of software development frameworks, including Scrum and Kanban.

<span class="mw-page-title-main">Dynamic systems development method</span>

Dynamic systems development method (DSDM) is an agile project delivery framework, initially used as a software development method. First released in 1994, DSDM originally sought to provide some discipline to the rapid application development (RAD) method. In later versions the DSDM Agile Project Framework was revised and became a generic approach to project management and solution delivery rather than being focused specifically on software development and code creation and could be used for non-IT projects. The DSDM Agile Project Framework covers a wide range of activities across the whole project lifecycle and includes strong foundations and governance, which set it apart from some other Agile methods. The DSDM Agile Project Framework is an iterative and incremental approach that embraces principles of Agile development, including continuous user/customer involvement.

Requirements engineering (RE) is the process of defining, documenting, and maintaining requirements in the engineering design process. It is a common role in systems engineering and software engineering.

Object-oriented analysis and design (OOAD) is a technical approach for analyzing and designing an application, system, or business by applying object-oriented programming, as well as using visual modeling throughout the software development process to guide stakeholder communication and product quality.

Agile modeling (AM) is a methodology for modeling and documenting software systems based on best practices. It is a collection of values and principles that can be applied on an (agile) software development project. This methodology is more flexible than traditional modeling methods, making it a better fit in a fast-changing environment. It is part of the agile software development tool kit.

The enterprise unified process (EUP) is an extended variant of the unified process and was developed by Scott W. Ambler and Larry Constantine in 2000, eventually reworked in 2005 by Ambler, John Nalbone and Michael Vizdos. EUP was originally introduced to overcome some shortages of RUP, namely the lack of production and eventual retirement of a software system. So two phases and several new disciplines were added. EUP sees software development not as a standalone activity, but embedded in the lifecycle of the system, the IT lifecycle of the enterprise and the organization/business lifecycle of the enterprise itself. It deals with software development as seen from the customer's point of view.

Internet-Speed development is an Agile Software Development development method using a combined spiral model/waterfall model with daily builds aimed at developing a product with high speed.

The open unified process (OpenUP) is a part of the Eclipse process framework (EPF), an open source process framework developed within the Eclipse Foundation. Its goals are to make it easy to adopt the core of the rational unified process (RUP) / unified process.

<span class="mw-page-title-main">Unified Process</span> Object oriented software development process framework

The unified software development process or unified process is an iterative and incremental software development process framework. The best-known and extensively documented refinement of the unified process is the rational unified process (RUP). Other examples are OpenUP and agile unified process.

An artifact is one of many kinds of tangible by-products produced during the development of software. Some artifacts help describe the function, architecture, and design of software. Other artifacts are concerned with the process of development itself—such as project plans, business cases, and risk assessments.

The UPEDU or Unified Process for Education is a software development process specialized for education, developed by Pierre-N. Robillard, Philippe Kruchten and Patrick d'Astous.

Scott W. Ambler is a Canadian software engineer, consultant and author. He is an author of books about the Disciplined Agile Delivery toolkit, the Unified process, Agile software development, the Unified Modeling Language, and Capability Maturity Model (CMM) development.

In software engineering, a software development process or software development life cycle (SDLC) is a process of planning and managing software development. It typically involves dividing software development work into smaller, parallel, or sequential steps or sub-processes to improve design and/or product management. The methodology may include the pre-definition of specific deliverables and artifacts that are created and completed by a project team to develop or maintain an application.

<span class="mw-page-title-main">Release management</span> Process of software building

Release management is the process of managing, planning, scheduling and controlling a software build through different stages and environments; it includes testing and deploying software releases.

The following outline is provided as an overview of and topical guide to project management:

Disciplined agile delivery (DAD) is the software development portion of the Disciplined Agile Toolkit. DAD enables teams to make simplified process decisions around incremental and iterative solution delivery. DAD builds on the many practices espoused by advocates of agile software development, including scrum, agile modeling, lean software development, and others.

References

  1. Waters, John K (28 February 2008). "Agile lands role in games and business software". The Register. Retrieved 2009-08-03.
  2. "State of Agile Development Survey Results, 2011. VersionOne". Archived from the original on 2015-07-17. Retrieved 2014-06-26.
  3. Ambler, Scott. "The Agile Unified Process (AUP)". Ambysoft. Archived from the original on 8 August 2019. Retrieved 21 December 2015.