Home > Sample chapters

Developing Requirements for Enhancement and Replacement Projects

Requirements techniques when there is an existing system

Table 21-1 describes the most important requirements development techniques to consider when working on enhancement and replacement projects.

Table 21-1. Valuable requirements techniques for enhancement and replacement projects

Technique

Why it’s relevant

Create a feature tree to show changes

  • Show features being added.

  • Identify features from the existing system that won’t be in the new system.

Identify user classes

  • Assess who is affected by the changes.

  • Identify new user classes whose needs must be met.

Understand business processes

  • Understand how the current system is intertwined with stakeholders’ daily jobs and the impacts of it changing.

  • Define new business processes that might need to be created to align with new features or a replacement system.

Document business rules

  • Record business rules that are currently embedded in code.

  • Look for new business rules that need to be honored.

  • Redesign the system to better handle volatile business rules that were expensive to maintain.

Create use cases or user stories

  • Understand what users must be able to do with the system.

  • Understand how users expect new features to work.

  • Prioritize functionality for the new system.

Create a context diagram

  • Identify and document external entities.

  • Extend existing interfaces to support new features.

  • Identify current interfaces that might need to be changed.

Create an ecosystem map

  • Look for other affected systems.

  • Look for new, modified, and obsolete interfaces between systems.

Create a dialog map

  • See how new screens fit into the existing user interface.

  • Show how the workflow screen navigation will change.

Create data models

  • Verify that the existing data model is sufficient or extend it for new features.

  • Verify that all of the data entities and attributes are still needed.

  • Consider what data has to be migrated, converted, corrected, archived, or discarded.

Specify quality attributes

  • Ensure that the new system is designed to fulfill quality expectations.

  • Improve satisfaction of quality attributes over the existing system.

Create report tables

  • Convert existing reports that are still needed.

  • Define new reports that aren’t in the old system.

Build prototypes

  • Engage users in the redevelopment process.

  • Prototype major enhancements if there are uncertainties.

Inspect requirements specifications

  • Identify broken links in the traceability chain.

  • Determine if any previous requirements are obsolete or unnecessary in the replacement system.

Enhancement projects provide an opportunity to try new requirements methods in a small-scale and low-risk way. The pressure to get the next release out might make you think that you don’t have time to experiment with requirements techniques, but enhancement projects let you tackle the learning curve in bite-sized chunks. When the next big project comes along, you’ll have some experience and confidence in better requirements practices.

Suppose that a customer requests that a new feature be added to a mature product. If you haven’t worked with user stories before, explore the new feature from the user-story perspective, discussing with the requester the tasks that users will perform with that feature. Practicing on this project reduces the risk compared to applying user stories for the first time on a green-field project, when your skill might mean the difference between success and high-profile failure.