Showing posts with label ALM solution. Show all posts
Showing posts with label ALM solution. Show all posts

16 May 2012

Classic Use Case Mistakes

Over the years I have come to understand the role of use cases in the requirements definition activities. They are very valuable if done properly. The problem I continue to see in many organizations is that they are not done properly. So what are some of the mistakes that can help ensure you are getting the most value from your use cases? 

Mistake Number 1: Creating inside-out user cases. 
Results: Use cases that are written from the perspective of the system, not the user. These use cases are often complex and technical. The problem is that most of the time users don’t understand this because it is not natural to them. This makes it difficult to get valuable feedback from the users. 
Actions: Make sure the user’s perspective is maintained when writing use cases. 

Mistake Number 2: Including user interface details in use cases.
Results: Use cases that include a lot of steps that really don’t contribute to understanding how the user will interact with the system. You may see details about where error message are displayed, radio buttons, links, other details about a screen that add to the confusion. Often use case writers try to include every possible action as a part of the use case flow. For example, every possible selection has an alternate flow titled “User Selects Cancel Button”. Adding all of these alternate flows results in a use case that is much more complex that it needs to be. 
Actions: During requirements gathering keep the user interface details out. They are a distraction from defining the interactions that need to occur. Consider keeping user interface requirements in a separate section. This can be used as a checklist when testing to make sure the entire set of interface requirements are met for each screen. 

Mistake Number 3: Expanding the system boundary. It is difficult to keep in mind the scope of the system you’re developing. For example, consider other systems that interact with the system under development. Is it inside the boundary? Is it an actor? Should it not be shown on the use case diagrams? Results: When actors are included which are outside the control of the team, a lot of time is spent documenting a system that already exists and will not be changed. A lot of time will be spent explaining to users that the system just “works the way it does”. You are better off not including details about systems that are outside the boundary of the system. 
Actions: If the team is responsible for implementing and testing it, then it is inside the system boundary. If it is a separate system done by a separate team, it becomes an actor. 

Mistake Number 4: Creating use case interactions that don’t provide value to an actor. 
Results: Use cases that don’t provide any value to the actor. These use cases may not be derived from business requirements. Or they may be derived from business requirements but don’t contribute to the overall goal of the business requirement. 
Actions: Make sure every use case has a clearly stated goal that provides a benefit to an actor. Note that the actor that benefits does not have to be the primary actor in the use case. 

These are typical mistakes made when writing use cases. Many times the end result is a set of very long, very complex, and very technical use cases that provide very little benefit to end users or developers. Consider training your team on writing good use cases before just throwing them out the use case wolves. It will be worth the time and money spent to ensure use cases are providing the maximum benefit to your project.

(Reference: Use Cases: Requirements in Context by Kulak and Guiney)


 By Marcia Stinson 

15 June 2011

Tools – all-in-one solutions or best-of breed?

Actually two major trends can be seen on the market of tools supporting the entire development process: on the one hand there are a couple of vendors providing so-called ALM or PLM solutions (ALM = Application Lifecycle Management, PLM = Product Lifecycle Management) trying to support a variety of development disciplines (project management, requirements management, change management, configuration management, test management, bug tracking,...) in a single offer, on the other hand there is a huge number of vendors providing tools specialized on a dedicated discipline.

Although ALM solutions may provide benefits with respect to integrating the different disciplines of the lifecycle these solutions typically do not provide the same powerful functionality in all disciplines than is provided by a best-of-breed solution focussing on a dedicated discipline of the development lifecycle. Most ALM solutions today evolved from best-of-breed solutions thus being strong in their original discipline but often being weak in others.

If using an ALM solution a company is highly depending on its vendor. As soon as problems (critical bugs, vendor crashes or is being acquired) arises this may affect the whole development cycle.

On the other side best-of-breed vendors need to integrate their tools into the overall tool chain which may consist of a set of best-of-breed solutions. And those integrations may need to be updated each time a new version of the integrated tool is released. The same holds of course for vendors providing a set of integrated best-of-breed tools.

But what is easier? Integrating a best-of-breed solution improving a specific part of the development process dramatically while the rest of the development process remains unchanged? Or turning the whole development process on its head by introducing a new unknown environment to everyone in a single step?

Do you have a preference? Share your view with us!

By: Andreas Plette