Guide to the TechWeb Network

Intelligent Enterprise

Better Insight for Business Decisions

Intelligent Enterprise - Better Insight for Business Decisions
search Intelligent Enterprise
Advanced Search
RSS
Webcasts
Whitepapers
Subscribe
Home




March 27, 2001



Balancing Act

Reduce project development time by effectively capturing and managing requirements

By Tom Spitzer

Continued from Page 1

The Requirements Maze

Although it's not news that effectively managing requirements is the key to managing schedules, it's still a difficult thing to do. In the best-case scenario, when you build a product or application without understanding the true requirements, your users or customers will let you know what's wrong or missing when you show it to them. In the worst case, they will abandon or ignore the product or service. If you survive, you must add or change features in response to the new information, which will increase the cost and delay the effective release of the product. Slightly less damaging to the possibility of delivering on time is the tendency of the requirements to expand throughout the development process. As they expand, you need to invest time and effort into protecting the original scope or broadening the product.

Profile and Model
Designing an Effective User Interface

Often, the most difficult parts of a project are the cross-functional tasks and handoffs. Determining the right user interface model and ensuring that it is implemented effectively is one of the tasks that requires the coordinated efforts of a number of players. Initially, an information architect or usability engineer works with the product manager to build profiles of expected user populations and their information and task models.

Information models describe how specific users organize processes and the information associated with those processes in their own minds. Task models describe how various users expect to perform the functions described in the use cases that the analyst captures during the requirements analysis. Team members generally use a structured graphics package to depict the information and task models.

Ideally, the usability engineer would validate user profiles, information models, and task models by soliciting user involvement. This validation process could include in-person interviews and walkthroughs of rough prototypes, as well as online completion of profile questionnaires.

Additionally, enabling prospective users to interact with early product simulations online can be a very powerful mechanism for determining the right mix of features and their presentation. By asking people to work with simulations to perform realistic tasks and capturing their interactions with the simulations in the context of the tasks, we can gain critical insight into both the relative importance of different features and the effectiveness of the task flows through which they are presented.

Once the design is validated, the usability engineer works closely with the design team to create a presentation style that clearly delineates information and tasks in accordance with the task model.

When developing corporate applications, you can determine requirements by analyzing the corporation's business processes and reviewing task requirements and business rules with prospective users and management representatives. To be successful, business software products (whether delivered as a product or a service) need to support all of the scenarios that a customer may encounter within a given application domain. Further, they need to provide sufficient flexibility to support practices and rules that can vary substantially from business to business. When gathering requirements for products, teams need to gather requirements from several potential customers and then resolve inconsistencies between their practices and rules. As a result, I believe that specifying requirements for products is more difficult than for corporate applications.

Certainly the development team is going to be happiest and most productive if you create clear, comprehensive requirements before starting to design or build solutions. On the other hand, management gets extremely nervous watching the release date approach without much application code getting produced. Compressed within a four-month project window, this development scenario creates an extremely stressful situation.

We have been working with one of our clients, iTango Software, on tuning the development cycle to increase the comfort level of both parties. We are working to dovetail requirements-gathering with the development schedule so that we provide our development teams with the documentation they need, when they need it, but not sooner. Additionally, requirements analysts and designers are working closely to product requirements specifications in a format that feeds directly into the software design process.

Use Cases as a Requirements Vehicle

Use cases provide the most effective way to organize and prioritize requirements and deliver them to the development teams. These cases provide a vehicle for establishing traceability among marketing requirements, design, development, and testing. A "good" library of use cases clearly defines the various branches that may be followed through a task, and it clearly defines the relationships between the system under design and other systems with which it needs to interact. Although it can be a sizeable effort, producing a good library of use cases ultimately enables faster completion of the product. Developers can take these cases and quickly determine the responsibilities that each component must fulfill, and how each component must respond to other components. This process is the essence of software design. Once the design is complete, available development tools provide sufficient leverage to empower developers to build a great deal of functionality in a short time.

Although use cases are a necessary part of the requirements specification, they are not sufficient. Use cases are ideal for capturing interaction-driven functions, but it's difficult to shoehorn articulation of business rules and requirements regarding performance, uptime, training costs, and so on into use cases. While our team could do it, the results would be cumbersome. Instead, we created a catalog of business rules and a catalog of requirements and allowed analysts to associate rules and requirements to the use cases that they support.

Providing a Structure

Because most people are unfamiliar with using a relatively structured approach to documenting requirements with use cases, rules, and requirements, it helps to provide a consistent structure for creating and accessing them. To do so, our team created a database application with forms for entering these items and associating them with one another, and a set of queries and reports so analysts and designers can produce documentation on specific subsystems and functions.

On the first pass through the process, we aimed for breadth rather than depth. Our objective was to determine the scope of the system by capturing many use cases quickly, but not flesh them out with much detail. It took two people a couple of days to summarize the use cases for an employee benefits application that needed a supporting employee profile function that linked to several preexisting human resource systems. We were able to turn this set of use cases over to our project manager to start building a project plan and to the management team to make scoping decisions. A review of the use cases enabled us to assign "A, B, C" priority ratings to them. Next we added some meat to the "A" use cases and turned them over to the design-and-build team to start building object models.







IE Weekly Newsletter
Subscribe to the newsletter
    Email Address







InformationWeek Business Technology Network
InformationWeekInformationWeek 500InformationWeek 500 ConferenceInformationWeek AnalyticsInformationWeek CIO
InformationWeek EventsInformationWeek ReportsInformationWeek MagazinebMightyByte and SwitchDark Reading
Digital LibraryIntelligent EnterpriseInternet EvolutionNetwork ComputingNo Jitter
space
Techweb Events Network
InteropVoiceConWeb 2.0 ExpoWeb 2.0 SummitEnterprise 2.0 ConferenceMobile Business ExpoSoftware ConferenceCSI - Computer Security Institute
Black HatGTECEnergy CampMashup CampStartup Camp
space
Light Reading Communications Network
Light ReadingLight Reading EuropeUnstrungLight Reading's Cable Digital NewsConstantinopleInternet Evolution
Heavy ReadingLight Reading Live!Light Reading InsiderEthernet ExpoOptical ExpoTeleco TVTower Technology Summit
space
Financial Technology Network
Advanced TradingBank Systems & TechnologyInsurance & TechnologyWall Street & TechnologyAccelerating Wall StreetBank Systems & Technology Executive SummitBuyside Trading SummitInsurance & Technology Executive Summit
space
Microsoft Technology Network
MSDN MagazineTechNetThe Architecture Journal
space