TrainingConferencesAbout UsContact UsAdvertiseSQE.comRSS Feed

StickyMinds.com: brain food for building better software

Log In
 Clarify Your Search Criteria

Tips on Using Our Search Feature(s)
 
StickyMinds.com Home
ResourcesTopicsCommunityPowerPassBlogs
Home  >  Detail: When Requirements Collide



A StickyMinds.com Original
Article Picture
When Requirements Collide

By Karl Wiegers

Send This Content to a FriendGet a Short Link to This ContentPrint This ContentSee User Comments About This Content

Summary: Could it be that not every set of business requirements has the customer's best interest in mind? Karl Wiegers had always believed that implemented software functionality should enable users to accomplish their goals and help the business achieve its objectives. But a recent experience with a less-than-helpful parking meter system suggested to him that conflicts sometimes might exist between business and user requirements.


Infosys
I've always thought that implemented software functionality should enable users to accomplish their goals and help the business achieve its objectives. However, a recent experience led me to believe that sometimes a conflict might naturally exist between business requirements and user requirements.

I traveled to a city that has converted its standard parking meters to a kiosk system. To pay for parking, I first insert my credit card into the kiosk for that block. The kiosk displays the current time and the amount of money I have agreed to pay so far. Parking costs 75 cents per hour, with a one-dollar minimum for a credit card purchase. Pressing the up or down arrow key changes the displayed payment amount by 20 cents. This process of figuring out how much time to buy requires a lot of mental gyrations.

Rather than using my trusty geek calculator watch (yes, I do wear one), I eventually concluded that I must have put in enough money. The kiosk printed a parking sticker that displayed in large digits the time at which it would expire, which was what I really wanted to know in the first place. It was also considerably more time than I needed.

It wasn't helpful for the kiosk to show only the cost of the parking request before I completed the purchase. I didn't care how much it cost; I just needed to buy enough time to avoid getting a parking ticket. It would have been much more useful had the kiosk displayed either the amount of time I had requested to buy so far or the expiration time based on how much payment I had put in. At first glance, this struck me as a poor user interface design.

But then I realized that perhaps this wasn't an accident.

I think in terms of three levels of requirements for a software project. At the top level are the business requirements, which describe the business objectives for the project and address the question of why we're undertaking the project. Next, we have the user requirements, which describe what users will be able to do with the product. In this case, the primary user requirement—a use case—was to purchase a parking sticker. Functional requirements, the third level of requirements, describe what the developer must implement. Obviously, there's more to requirements than this simple model, but this will suffice for today's discussion.

I've always preached that alignment between the three levels of requirements is vital. Developers must build the software that will let users accomplish their tasks, and these tasks must align with achieving the project's business objectives. However, this parking kiosk experience suggested that perhaps collisions between business requirements and user requirements are to be expected in some circumstances.

The "business" in this case was the city's parking department. I presume that one of its business objectives for the kiosk is to generate as much parking revenue as possible. Unlike with traditional parking meters, where you might spot an empty space with time still on the meter, every person parking in this city must buy a separate kiosk sticker for his use of the parking space. Building a user interface that encourages drivers to buy more time than they need generates additional revenue for the city. A single parking space thus can generate revenue from multiple drivers concurrently if the first one bought more time than necessary.

As a user of the kiosk, though, my objective is to buy just the right amount of time that I need. This kiosk made it too easy for me to spend more than required. Sure, I could have calculated how much money to spend to buy just enough time, but not everyone wears a calculator watch.

I'm not big on conspiracy theories, and I'm not accusing anyone of devilish design here. But is it possible that designing the kiosk’s user interface not to show the amount of parking time requested was a conscious decision? I'm going to watch out for this kind of disconnect the next time I drill down from business requirements into the detailed requirements that are intended to achieve the business objectives.


About the Author
Karl Wiegers, Ph.D., is principal consultant with Process Impact in Portland, Oregon, where he specializes in requirements engineering, peer reviews, process improvement, and project management. Karl is the author of the books Software Requirements, More About Software Requirements, Peer Reviews in Software, and Creating a Software Engineering Culture. Karl's latest product is the "5-Minute Analyst" eLearning series, available at www.processimpact.com.

Back to Top
 

StickyMinds.com Weekly Column From 5/7/2007 

Member Comments
Add Your CommentExpand Comments
 
Comment:    
by Krishna Manda 10/2/2008

Hey Karl..well the same applies with ATM MACHINES too.You will be penalized for inserting XYZ card into ABC machine.Now at the end of the day ,user need to know how much hes being charged(as Mr karl wanted to know the amount of time for parking)for using a card which was not issued by a particular bank.The bottom line here is, should the ATMS revile service charges to the users for using wrong debit cards.Now can i say the BUSINESS,USER and FUNCTIONAL REQUIREMENTS are colliding?

 
 
Comment:    
by Venkat Moncompu 6/19/2008

Hi Karl,
Assuming that this was indeed a slip between cup and the lip, so to speak between user requirements and business requirements, would an approach such as model based testing have "caught" this or similar type of requirements gaps? In the industry, we all create use-cases (or some sort of system requirements)but there are very few who do a validation of these models against user needs or requirements. Could this have been another instance of this (mal)practice?
Thanks
Venkat

 
 
Comment:    
by Torsten Zelger 8/3/2007

It is even worse in Scotland, since this is almost exactly what happened to me during my holidays last week. I parked my car at the parking space of the Fort Augustus visitor center and was surprised that the parking meter gave no information about how much money to put in there or how much cents would turn up into how much parking time to not get fined. So the machine was like a big surprise box. I put in a two pound coin and then press the green button to print out the ticket so you can see whether you paid enough. But when you print it out you cannot extend it since it is not related to a specific parking place. Of course I paid far too...Read On

 
 
Comment:    
by Roger Cauvin 5/29/2007

I always like real examples to which we can all relate. What I see as the issue here is not business, user, or functional requirements (BTW, how do nonfunctional requirements fit into these levels?), but problems various stakeholders are trying to solve or avoid.

The "business" is, as Karl speculates, probably trying to solve the problem of insufficient revenue. Users are trying to avoid the problem related to getting parking tickets and avoid paying a lot to park.

Thus the "business" objective of maximizing revenue conflicts with the users' goal of minimizing cost. However, there is not as much conflict as it might...Read On

Author's Response:
5/29/2007    
Thanks for the input, Roger. I see nonfunctional requirements fitting primarily at the user requirements level, but they can appear elsewhere, such as a business objective for scalability. We can approach requirements either from the perspective of "problems to solve or avoid" or "objectives to achieve". Both are valuable and there's a certain symmetry that might arise. Regardless of the specifics of this incident, the main message for me was the notion that the business that's building the product and the people who will use it might not always have congruent goals. This is more likely with commercial products (or public-use products, like this one) than with internal information systems, but it could arise in more situations than I had previously considered.

 
 
Comment:    
by Karl Wiegers 5/8/2007

That could well be the case, Dennis. But in addition to the cost, I'd still like to see how much time I bought, or even better, when my parking sticker will expire. For me, though, the main insight from this experience was to realize that sometimes there *could* be a disconnect between the business requirements and the user requirements, which I really hadn't considered before.

 
 
Comment:    
by Dennis Essa 5/8/2007

There could be another nefarious entity involved in the requirements process - the law. There may well be a requirement that the user be able to tell how much money they are spending (consumer protection law). Or it could be an attempt at risk reduction by removing the possibility of the user not knowing how much money they were spending. [You and I want to know how much time, but SOMEBODY would sue the city because they screwed up the math and got charged more than they think they "authorized".:]

 
 
Comment:    
by Sanat Sharma 5/8/2007

That's great Karl. Same thing happened with me in a parking slot. I was asked my car number by an automatic machine on an entry gate and when I entered the number, the machine said you are not eligible to park this car. When contacted the local guy there, he manually opened the barrier and allowed me to park the car. When asked the reason, he said "This is working as it is from the day one itself". Funny .....
Now its confusing what was Business Requirement, User Requirements and Functional Requirements in this case.
-- Sanat Sharma

Author's Response:
5/8/2007    
Thanks for sharing this story, Sanat. The business requirement behind the automated parking system was probably to save money by automating previously manual operations. The user requirement might have been for you, the driver, to be able to enter the lot and park your car. The functional requirements involved the operations of asking for your car number and taking actions (such as opening the gate, or not) in response. It's hard to know exactly what went wrong internally in this case. But if the system was flawed such that manual intervention was still needed frequently, the parking lot owners aren't going to meet their business requirement of saving money!

 
 
Comment:    
by Robert Rose-Coutre 5/7/2007

Great story Karl! You don't have to be a conspiracy theorist to see a similar pattern among user interfaces that profit the respective businesses. For example, a pre-pay gas pump had a big green "Yes" button to push when the display said "Would you like a receipt?" One day the question changed to "Would you like a car wash?" The display being hard to read at all in daylight, and the habit of seeing "Would you ...." and quickly pushing the "Yes" button must have made them a lot of money. Pushing "Yes" immediately takes another $1.00 out of your credit card and then changes to "Would you like a receipt?" My first time, I didn't even notice...Read On

Author's Response:
5/7/2007    
Thanks for the great (in an informative way, not a happy way) story, Robert. This seems like an example of social engineering. You were already conditioned to say "yes" so the gas station could switch the question to one that was more in their favor and naturally you keep answering "yes". Very clever....

 
Back to Top



 
Ads By Google
What's This?
 
 



Home   |   Resources   |   Topics   |   Community   |   PowerPass



© 2010 StickyMinds.com. All rights reserved.
StickyMinds.com is a division of Software Quality Engineering.
Privacy Policy    Terms & Conditions    Link to StickyMinds.com    Feedback


ThoughtWorks




STARWEST 

Agile Development Practices