Prev Next

Agile Requirements Processes

There are a variety of Agile methods that have become prevalent for developing particular types of systems and the term Agile has come to encompass a group of software development methods that are iterative and focus on early development and delivery using customer and developer collaboration. Enterprise Architect has been built from the ground up as a flexible modeling platform that supports any software development methodology and has a wide range of tools and features that support Agile processes.

Support for Agile Methods

Method

Support

Scrum

'Scrum' is a project management approach for managing Agile projects; it is typically used in conjunction with other agile methods such as XP. The goal of Scrum is to deliver software releases in iterations, which provide the highest demonstrable business value. Enterprise Architect supports User Stories, textual requirements and product releases. Sprint backlogs can be managed using Tagged Values and Model Views. Estimates of effort can be recorded for Requirements in each of the backlogs, and refined as the items are promoted towards the sprint using the element Effort item. A built-in Gantt chart will automatically display the schedule for sprints, and a series of built-in and customizable dashboards can show the progress of a sprint. The Product Owner, Scrum Master and Team Member roles can all be supported. The tool provides a cohesive platform for collaboration and requirements management.

Extreme Programming (XP)

Extreme Programming relies on the User Story (User Card) to express Requirements and develops plans for iterations and releases. Enterprise Architect supports XP by allowing User Stories to be modeled using a stereotyped Use Cases. Iterations are supported by the Phase property built into every element, and a Gantt chart can be used to automatically display scheduled iterations and releases. There is support for developer tasks that can be created as element maintenance tasks for each User Story; these can include status, priority, requested and completion dates, history and more. The Customer, Coach, Programmer and Tracker roles can all be supported and the tool provides a cohesive platform for collaboration, including visual inspections of code and design and automatic documentation generation.

Feature Driven Development (FDD)

Feature-driven development (FDD) is an iterative and incremental process that uses a feature to drive iterations and development. Domain models are created early in collaboration with subject matter experts, subject areas are defined and these are broken down into Feature Sets and these in turn into atomic features. A Feature is a piece of system functionality that is valued by the client and is used to drive design, development and implementation. During design a Feature or small Feature Set are assigned to Classes and to programmers and the Features are used to monitor progress within an iteration. Enterprise Architect has support for this method with the Feature element that is part of the Requirements Toolbox, Subject Areas and Feature Sets can be modeled as Packages, allowing a hierarchy to be created that can be displayed as a diagram, list, using the Relationship Matrix or in the Traceability window.