Tuesday, 14 February 2012 09:35

Improving Your Requirements Processes

Written by 
Rate this item
(1 Vote)

KW_Feature_Feb14Books on business analysis and requirements engineering, such as my own Software Requirements, describe dozens of “good practices” that can help any organization improve the way it develops and manages requirements for its products. Learning about the practices is one thing; implementing them and reaping the benefits is quite another. Putting better practices into action is the essence of software process improvement. In a nutshell, process improvement consists of using more of the approaches that work well for us and avoiding those that have given us headaches in the past. However, the path to improved performance is paved with false starts, resistance from those who are affected, and the frustration of having too little time to handle current tasks, let alone improvement programs. The ultimate objective of software process improvement is to reduce the cost of creating and maintaining software. There are several ways to accomplish this:

  • Correcting problems encountered on previous or current projects
  • Anticipating and preventing problems that you might encounter on future projects
  • Adopting practices that are more efficient than the practices currently being used

If your team’s current methods seem to work well (or if people insist that they do despite evidence to the contrary), people might not see the need to change their approach. However, even successful software organizations can struggle when confronted with larger projects, different customers, long-distance collaborations, tighter schedules, or new application domains. An approach that works for a co-located team of five people with a single customer doesn’t scale up to 125 project participants located in two different time zones who are serving hundreds of corporate customers. At the least, you should be aware of other approaches to requirements that could be valuable additions to your software engineering tool kit. Let’s begin our journey through requirements process improvement by seeing how requirements activities relate to various other key project processes. Changing how your projects handle requirements will of necessity affect these other processes, and vice versa. If you want to succeed with requirements improvement, you’ll need to get the owners of these other process areas to play along.

How Requirements Relate to Other Project Processes

Requirements lie at the heart of every well-run software project, supporting and enabling the other technical and management activities. Figure 1 illustrates some connections between requirements and other processes; the sections that follow briefly describe these process interfaces.

KW_Feb14

Project planning. Too often, project deadlines and staff allocations are determined before the requirements are well understood. It's no wonder then that so many projects overrun their schedules and budgets. A more realistic approach is to make requirements the foundation of the project planning process. The planners select an appropriate software development life cycle and develop resource and schedule estimates based on the requirements. Thoughtful planning might indicate that it’s not possible to deliver the entire desired feature set within the available bounds of resources and time. The planning process can lead to reductions in the project scope or to selecting an incremental or iterative to deliver functionality in planned chunks.

Project tracking and control. Project tracking includes monitoring the status of each requirement so that the project manager can see whether construction and verification are proceeding as intended. If not, management might need to request a scope reduction through the change control process. If you find early on that your team isn't implementing requirements as quickly as planned, you'll need to adjust the expectations to reflect the reality of your team's productivity. Sometimes this means reallocating lower priority requirements from the backlog into later iterations than planned. It doesn't matter whether you, your managers, or your customers like this or not: that's just the way it is.

Change control. After a set of requirements has been baselined, all subsequent changes should be made through a defined change control process. The change control process helps ensure that:

  • The impact of a proposed change is understood.
  • All people who are affected by a change are made aware of it.
  • The appropriate people make informed decisions to accept changes.
  • Resources and commitments are adjusted as needed.
  • The requirements documentation is kept current and accurate.

System testing. The testing and requirements processes are tightly coupled. User requirements and functional requirements are key inputs to system testing. If the expected behavior of the software under various conditions is not clearly specified, the testers will be hard-pressed to identify defects and to verify that all planned functionality has been implemented as intended. An excellent starting point is to start thinking about testing from the very beginning. Think of user acceptance tests for each requirement as you specify it. This is a great way to identify missing exceptions and ambiguous requirements.

Construction. Although executable software is the ultimate deliverable of a software project, requirements form the foundation for the design and implementation work, and they tie together the various construction work products. Use design reviews to ensure that the architecture and detailed designs correctly address all of the requirements, both functional and nonfunctional. Unit testing can determine whether the code satisfies the design specifications and the pertinent requirements. Requirements tracing lets you document the specific software design and code elements that were derived from each requirement.

User documentation. I once worked in an office area that also housed the technical writers who prepared user documentation for complex software-containing products. I asked one of the writers why they worked such long hours. “We’re at the end of the food chain,” she replied. “We have to respond to the final changes in user interface displays and the features that got dropped or added at the last minute.” The product’s requirements are an essential input to the user documentation process, so poorly written or late requirements will lead to documentation problems. The long-suffering people at the end of the requirements chain, such as technical writers and testers, are often enthusiastic supporters of improved requirements engineering practices.

The central point here is that you can’t modify your requirements practices in a vacuum. The thoughtful improvement leader will consider the context and identify stakeholders of other internal processes who would be affected by changes in the requirement development and management processes. By engaging those counterparts in a collaborative effort to improve the way your teams approach requirements, everyone will come out ahead.

Don't forget to leave your comments below!


Karl Wiegers is Principal Consultant at Process Impact, www.ProcessImpact.com. His interests include requirements engineering, project management, peer reviews, and process improvement. His most recent book is a memoir of life lessons titled Pearls from Sand: How Small Encounters Lead to Powerful Lessons. Karl produced this article for Enfocussolutions.

Read 7237 times Last modified on Monday, 02 April 2012 15:48
Karl Wiegers

Karl Wiegers is Principal Consultant at Process Impact, www.ProcessImpact.com. His interests include requirements engineering, project management, peer reviews, and process improvement. His most recent book is a memoir of life lessons titled Pearls from Sand: How Small Encounters Lead to Powerful Lessons. Karl produced this article for Enfocussolutions.

Comments  

 
0 # Reality 2012-02-14 05:41
Bad requirements, bad project. BA's should be peers of PM's because they have more control over the outcomes than counting beans and attending meetings.
Reply | Reply with quote | Quote
 
 
0 # Swells 2012-02-14 06:52
Wonderful refresher - requirements are and always will be one of the pillars of any project. Wish more people could grasp this.....
Reply | Reply with quote | Quote
 
 
0 # Bob McLoughlin 2012-02-14 23:26
Couldn't agree more, especially about the opening line about Project Planning : "Too often, project deadlines and staff allocations are determined before the requirements are well understood." That has always been a bone of contention with me and in my opinion a good PMO process should be taking this into account. I hope this becomes the rule more than the exception in the future.
Reply | Reply with quote | Quote
 
 
0 # Mohamed Jameel 2012-02-21 21:58
As a whole, the theme was refreshing. But I do have little discrepancy in terms of Project Planning. Because only when a project planning is made we are allowed to go in for requirement study. So , how could Requirement needs to be defined before Project Planning. Kindly please do clarify
Reply | Reply with quote | Quote
 
 
0 # Karl Wiegers 2012-02-22 00:50
@Mohamed: I would ask the opposite question: How can you do project planning before defining requirement needs? Clearly, the two processes are interconnected. What information do you use to plan the project if not at least a preliminary understanding of the requirements? If you do project planning first -- determining delivery schedule, assigning resources, identifying tasks and so on -- then how can you possibly be confident that this plan will let you deliver whatever requirements are then identified? What if the set of requirements turns out to be much larger or more complex or difficult to implement than expected? You'll have just three choices then: radically change your plans, cut back on the requirements, or fail to deliver on time. On the other hand, suppose you begin with a clear vision and an initial scope for your project, along with identifying true constraints like firm delivery dates (as opposed to arbitrarily imposed dates), budget and staff restrictions, and quality goals. Then you can do some initial planning of how to gain a better understanding of the requirements and choose an appropriate life cycle (iterative, incremental, waterfall, etc.) for the project and customer needs. As you learn about requirements, you'll have the information to make more realistic plans about the resources and time needed to deliver. You'll probably also identify additional risks that need to be managed. I don't see how you can possibly make sensible estimates or plans without some understanding of requirements.
Reply | Reply with quote | Quote
 
 
0 # Bob Burnstad 2012-02-27 10:43
During the planning process, what rule of thumb do you use for estimating the business analysis effort on a project? Especially when providing a ROM estimate prior to detailed requirements analysis? Than ks
Reply | Reply with quote | Quote
 
 
0 # Karl Wiegers 2012-02-27 13:54
@Bob: The short answer is that I estimate about 15% of total development time to be devoted to requirements development (aka business analysis). However, there are many factors that feed into making a sensible estimate, so this is a very broad number that could change significantly depending on numerous conditions. Please see Chapter 4, "How Long Do Requirements Take", in my book "More about Software Requirements".
Reply | Reply with quote | Quote
 
 
0 # beverley fingerhut 2012-05-01 17:57
Karl
I am the Program Director for the Schulich School of Business, Schulich Executive Education Centre's Centre of Excellence in Business Analysis. We produce a newsletter every two months and would like to provide a link to this article for our BAs. Can I get your approval.

Thanks in advance
Beverley
Reply | Reply with quote | Quote
 
 
0 # Karl Wiegers 2012-05-01 18:07
Hi Beverley -- Sure, feel free to link directly to the article at URL http://www.batimes.com/articles/improving-your-requirements-processes.html . I hope your BAs find it helpful.... Karl
Reply | Reply with quote | Quote
 
 
0 # Bill Meacham 2012-03-08 03:15
@Mohamed: > how could Requirement needs to be defined before Project Planning? Do project planning in phases. In the first phase (we call it Envisioning in the company I work for) allocate some time to define high-level business requirements and document them in a Business Requirements Document (BRD). This document defines business needs and objectives but does not specify any particular software application. W hen this is complete, estimate how much time it will take to produce a Software (or System) Requirements Spec (SRS). That estimate becomes input to subsequent phases. In my company, the next phase is called Planning, and it includes creating the SRS and getting a start on technical design documents. At the end of Planning phase, the project manager sets timelines for subsequent phases, which include development, test, deployment and post-deployment support.
Reply | Reply with quote | Quote
 

Add comment