Library tutorials & articles

Secrets of Successful Software Requirements

Include Use Cases

Use cases look at the requirements from the standpoint of an end user working with the program and how the program responds to the user’s inputs. At its simplest level, a use case can be thought of as a play where the end user is one actor and the program is another actor. These two actors then have dialogs which explain the interactions between the actors. More complicated scenarios can have additional actors including other programs, other types of users, and even hardware. Use cases have proven to be very easy to read and understand even for non-technical clients.

Each use case explores what happens when something goes wrong in addition to the “normal” interactions. The exploration of these failure conditions is very important because these cases are the most difficult to code and can cause the most amount of testing. Traditional requirements often ignore these cases. It can be helpful to have developers and testers both think of additional possible failures in a use case so they can be fully documented in the requirements.

Use cases do not provide a complete picture of the system though. A technical specification should also be included in the requirements to detail formulas and routines that take place behind the scenes.

Comments

  1. 07 Sep 2007 at 15:26
    Yes ofcourse you are absolutely correct
  2. 19 Jun 2007 at 02:24

    You are absolutely right !  Been there, done that for 10+ years in a global business environment, and currently offering this as a service for companies who don't have the skills in-house.

    What you described is the role of Product Management in a (software) product development environment: to act as the intermediary between the "business" (users, general management, marketing, sales, finance, and who knows else...)  and the development team.  Consolidate the business requirements, match these against (corporate) strategy, and work closely with the development team to translate the results into technological solutions.

    Based on my experience, in many companies this is an underestimated, or even totally ignored part of product development.  But, if implemented well, it leads to quicker development cycles, higher quality software, and feature-sets that meet or even exceed the expectations of the end-users.  As a result:

    • developers feel more valued, as they deliver products that are highly appreciated
    • sales and marketing feel better, as the products they asked for meet their clients' needs
    • general management is happy, as the above will lead to higher revenues and lower costs

    and most importantly

    • clients will be impressed with how well you address their needs, and spend more money with you !

    To do this right, you need professionals who have the skills to understand / interpret business needs, as well as how technology can be applied to address these.  This is a challenging task in a project for a single company, more challenging when you're talking about a single country, multi-client (commercial) application, and a potential nightmare if you're dealing with a (large) number of clients across multiple countries.

    People who can do this well are rare, but worth their weight in gold !  With their support, a development team can decrease time-to-market, improve quality, and start to truly deliver on customers' needs.

    Erwin Bergsma
    Managing Director - Global Retail Business Solutions Ltd

  3. 01 Jan 1999 at 00:00

    This thread is for discussions of Secrets of Successful Software Requirements.

Leave a comment

Sign in or Join us (it's free).

Igor Jese

Related discussion

Related podcasts

  • Scott talks to Martin Fowler and David Heinemeier Hansson

    Scott sits down with Martin Fowler of Thoughtworks and David Heinemeier Hansson of 37 signals and talks about beauty, making developers happen, the death (or life) of HTML, the future of Microsoft, and asks if we should care about Rich Internet Applications. DHH is the creator of the Ruby on Rail...

Events coming up

Want to stay in touch with what's going on? Follow us on twitter!