Tuesday, 25 October 2011 11:25

STOP the Software Requirement Insanity

Written by 
Rate this item
(0 votes)

Rgalenoct251I attended the Agiles 2011 conference in Buenos Aires, Argentina in early October. Jeff Patton was a keynote speaker at the event. In his keynote, one of the remarkable (at least to me) points that Jeff made was that he really hated the term requirements.

He made the point that in the early parts of his career, he worked for small software companies that really didn’t refer to requirements as requirements. The used customer centric terms that connoted customer needs, business problems, and desired outcomes. There was no “requirements analysis” or “requirement sign-off” per se; there were only customer and business problems to solve.

When he changed jobs and first encountered true waterfall processes and the term requirements, he encountered the fixed, seemingly non-negotiable nature of requirements.

Software Requirements?

So the critical question that Jeff raised is that are software requirements truly REQUIREMENTS? Are they:

  • Absolutely required?
  • Non-negotiable?
  • Blindly followed?
  • Simply listed?
  • Taken verbatim?
  • Targeted as a whole?

In the interactions of the organization asking for them and in the minds of the teams tasked with implementing them.

In Jeff’s view and my own, they are. Organizations get wrapped around the “requirement axle” in demanding “a list” that they blindly follow to completion. Oh sure, requirements are discussed, clarified, negotiated, decomposed, written, and dissected. But they are, by and large, followed!

But what’s missing?

I think the key point is that demanding anything specifically limits our solutions, our creativity, our ability to innovate, and our thinking. Let me try to make this point with an example.

Rgalenoct252

I love Maine. It’s one of my favorite states and since I moved from Connecticut to North Carolina many years ago, I don’t visit it often enough.  One of the wonderful aspects of Maine is the cabins and cottages along its many lakes. Let’s pretend I have a little piece of property in Maine and I want to build a year-round cottage on the lake. I want to give my architect some directions towards designing my cottage, so here goes…I can say that my requirements are:

  • A 3 bedroom, 2 bath cottage
  • Somewhere around 1900 to 2200 sq. ft.
  • I want it to be a log cabin
  • Timber frame construction
  • The family room should look out over the lake
  • I want a sun room, encased in glass
  • The master bath needs to include a whirlpool and sauna
  • Granite, state of the art appliances, and Italian tile need to be in the kitchen
  • Wrap-around porch – 10’ for a porch swing
  • 2 car garage, etc.

You get the idea, it’s a list of “requirements”, and I’m “the customer”. So, what will I get in my house design? I strongly suspect exactly what I asked for. Not bad, but what if I was mistaken? Nor am I an expert in house design—so what if I asked for the wrong things?

Perhaps something else…

Now let me try another approach. I want to simply describe the business situation, but not necessarily require anything. I’m not sure this will be the best example, but I hope you get the idea…So instead I describe for my architect some of my preferences, or things that I really enjoy. For example:

  • My wife and I are gourmet cooks and we’d really like a kitchen that would support the both of us cooking. It needs to be modern, with high-end appliances, but reflect the simple nature of a Maine kitchen.
  • We also entertain quite a lot, so we need space to support that. Most of the entertainment starts with dinner, again our cooking thing. And we’d like the ability to entertain inside & outside as the seasons and weather permit.
  • I personally love the water. I love seeing it in the morning when I get up and looking out over it at night with the moon reflecting off of it. Can we position the house to maximize the exposure to the water?
  • There’s just the two of us. Our children and friends visit infrequently, perhaps 4-5 times a year. So, we need some space for visitors…but, but not too much. Oh, and I’m a consultant, so I need a private office.
  • I plan on purchasing a boat, somewhere in the 22-27 ft. range, within the next 2-3 years. I’d love a place to store it in winter and something dock it on in the summer.
  • Oh and I hate, absolutely hate, doing yard work. Yet, I love a well groomed property and garden. It just needs to be ultra-easy to maintain.

I’d like to call this last list something other than requirements. I consider it insights, design goals, customer usage intentions, etc; almost anything other than requirements.  What does this re-frame do?

My hope is that it communicates my home goals while leaving the flexibility for my architect to do their job. Then I hope it fosters review and communication while we refine the plans.  Ultimately, I want my architect to “delight me” by interpreting my goals, collaborating with me, and leveraging their creativity to create something “just right”.

Wrapping Up

So enough of my ramblings... Do you feel the term requirement has become too restrictive? Or are Jeff and I simply overreacting? Please weigh-in with your comments. And please share your experiences, thoughts and ideas for how we might frame requirements to drive more innovation & creativity, team-based engagement, and simpler overall solutions.

It’s not required that you weigh-in, but it’s very, very welcome!

Bob.

Don't forget to leave your comments below.

Read 5498 times Last modified on Monday, 02 April 2012 16:16
Robert Galen

Robert 'Bob' Galen is a VP and Agile Coach at Deutsche Bank Global Technology in Cary, NC. He’s also the President and Principal Consultant of RGCG, L.L.C. He is seasoned agile consultant & coach who is also active in the agile community and regularly writes & teaches on all topics related to the agile methods. Bob also wrote the book Scrum Product Ownership, which is focused on that role and driving value in team delivery. Bob can be reached at bob@rgalen.com and networked with via his LinkedIn profile.

Comments  

 
0 # John 2011-10-25 03:32
As the customer, I'm going to tell you I want a quarter inch hole rather than give you specs for a quarter inch drill. What I want is the benefits the product will provide to me. The more technical-orien ted BAs can take a cue from marketers in this regard.
Reply | Reply with quote | Quote
 
 
0 # Michael 2011-10-25 05:54
I think you've defined the basic problem of users defining the solution versus users defining their needs. Even John's example is true of that. Please don't tell me you want a quarter inch hole. Tell me what you want to do with that hole. It could be that a quarter inch isn't the correct size (let alone the impression given that it will be a round hole which may or may not be the correct shape).
Reply | Reply with quote | Quote
 
 
0 # Dayle 2011-10-25 05:54
Clearly you did not define "state of the art" - so no, that would not be a requirement. If you consider requirements the things you must have in order to meet a specific need, then requirements are important! You have documented your "wants" as requirements, it would be okay to include them with the requirements, as long as it is clear that they are not requirements. . A good BA will be able to guide a "customer" into those things he needs and also document that certain things are "wants. I also suspect that requirements for a house (unless you have specific physical limitations) are not going to be as hard and fast as those for a business. If instead you documented the zoning laws and regulations for construction, then you would indeed have a list of true "requirements".
Reply | Reply with quote | Quote
 
 
0 # George 2011-10-25 06:09
Aren't these really requirements? This is why, I always include rationale with my requirements. Not only the what, but the why is then presented as well. Why, well for exactly the reasons you mention. Not only that, but the BA is not the only person who is in the know - you have your technical folks too who will enjoy having the 'why". However, if all you give is the why, I'm not sure how far you can get. That said, as previously mentioned, I htink your second list is also requirements - though they aren't as sepcific as most would usually like, I have a very good idea of you expectations. Now, it oculd be argued that this is the reason that requiremetns also have to be actionable and reasonable. Just because it what I want does not mean it's what I need or what can even be done. This is why you have the requirements reviewed by others. I think you also touched on something else that I see is a common practice with many BA's. They write requirements for the sake of requirements writing. That is, they are focused on the product. It is my feeling that Business Analysis is about the process that the tool enables. In other words, I am understanding a process, and that is what generates my requirements. The tool (product) is the result of that. So, in all honesty, your second set of "requirements" would really have been part of my understanding your "process" from which requirements would have come. In other words, the what of the tool comes from the why of it. Enough of my babbling.
Reply | Reply with quote | Quote
 
 
0 # Dennis Kananen 2011-10-25 06:09
Requirements can be broken down into those that deal with data, actors, Use Cases(process), business rules, and non-functional issues. Some things need to be exact (e.g., data), some can be more abstract (non-functional ). I agree that having everything taken too literally or blindly will miss some key points. Prototypes (iRise) and frequent demos to the customer will hopefully sort out features that are on/off the mark. Words are very ambiguous and can bog a project down. Pictures are needed to add clarity.
Reply | Reply with quote | Quote
 
 
0 # Dan 2011-10-25 06:11
Building a Software system is much more complicated than building a house, mostly due to standardization (more in house, less in systems). To prove this, note that systems fail, unlike houses. Having said this, understanding business needs and building a business case is explicitly required per Business Analysis "standards" (IIBA). Also gathering requirements is first step, next a BA is supposed to analyse it further and clarify any details or conflicts.
Reply | Reply with quote | Quote
 
 
0 # Terri Lauer 2011-10-25 06:13
I think the first example states what are lower level requirements (yes, I said it) for the higher level goals and objectives in the second example. What if you really, really wanted a log cabin? Think you will necessarily get it with the second example? What if you really, really want granite countertops? Is the "simple nature of a Maine kitchen" going to be intepreted exactly the same way by two different parties?
Reply | Reply with quote | Quote
 
 
0 # Arnel Capiral 2011-10-25 06:24
Hi Bob, It's a great article and I see your point specifically on how stakeholders should state their needs. However from an artifact perspective, I think your prior example may well still be called as "requirements" and shall belong in the BRD level while the latter example may well be suited in a Business Case where stakeholder goals and objectives can be captured. Thanks. Arnel
Reply | Reply with quote | Quote
 
 
0 # Steve Jones 2011-10-25 06:29
Yes, requirements ARE restrictive (and often stifling to solution provider creativity). They have to be especially if the work is going out to bid. The nature of many fixed bids is that if it isn't already included (or explicitly "listed"), then it is additional cost beyond the "fixed" bid. We BA's can learn a lot from Six Sigma... namely in truly defining the problem before embarking on the cost of the project. Your original list (missing the "budget" requirement?) to the architect is your idea of the solution with wants included, not your needs. One of the problems with projects is that we have requirements without enough context and too many of them are written from the solution perspective, not the need perspective. You can provide context to requirements using metadata or Tom Gilb's "Plangauge" keywords (recently picked up at BA World Boston). Whatever you use, context and perspective must be represented so there is enough understanding to what the needs are.
Reply | Reply with quote | Quote
 
 
0 # LK 2011-10-25 06:34
I think you are overreacting. Whatever you call "it" (requirements, intentions, goals) it still needs to get done. The better the partnership between business, business analyst and architect, the better the end result. Rather than worrying about what we call “it”, let’s focus on the relationships and communication needed so all parities understand what and why to build.
Reply | Reply with quote | Quote
 
 
0 # David Rosenberg 2011-10-25 06:48
Bob - so you want 'state of the art' kitchen appliances (me too!). But as Dayle says above, what exactly does that mean? And is it in conflict with the simple nature of a Maine kitchen? Doesn't an archetypical Maine kitchen include a wood cooking stove? And what kind of cooking do you do? The kind that requires a high-end gas stove with precise burner control? And what if there's no convenient propane delivery and you're stuck with electric appliances? An yway, the point is that clients often give us a vision that includes conflicting requirements and we have to challenge them to get specific. People often don't want to do the hard work of thinking; we get paid for prodding them to make decisions that are in their own best interests.
Reply | Reply with quote | Quote
 
 
0 # leslie 2011-10-25 06:54
Totally agree with the article. There are needs, wants and desires and then there are requirements. The difference - requirements have to be testable (quantifiable). That is I can write an explicit test case from the requirement that will determine whether the requirement was met or not. The house has to have 2 bedrooms is quantifiable, once the word 'bedroom' has been explicitly defined.
Reply | Reply with quote | Quote
 
 
0 # Paul Nanouk 2011-10-25 07:00
Can I be so bold as to suggest that the issue here is that many PMs & BAs along with their business sponsors/stakeh olders seem to forget that everything in a project flows from and towards "fit-for-use" deliverables. I tied everything to the project deliverables so that I can trace everything back to the specific deliverable. All my project management actions are directed towards the production of "fit-for-use" deliverables -- pure and simple. If a requirement, or what I like to call features and capabilities, are not oriented towards the production of the agreed-upon deliverables, they are "out of scope." I use this concept to drive project focus, change management, and customer acceptance regardless of if the project deals with bits or atoms. V/R, Pau l
Reply | Reply with quote | Quote
 
 
0 # Edgar 2011-10-25 08:03
Well, here where i work in the IT department we call all the customers needs: requirements, i give support and maintain the ERP and i have been trying to change the term requirement and call them projects, projects that include requirements but i think it is better to call them just something as "customer needs" and keep them more open to creativity, discussions and try to arrive to the best solution, working the IT and operation teams together. Great article!! almost always i put the articles in the "read later" folder but now i began to read it and finish it 2 minutes later, great! Edgar.
Reply | Reply with quote | Quote
 
 
0 # Kerry 2011-10-25 08:34
The way I see it is that both are needed. The second example is the customer needs (i.e, the business requirements).. . the "What". The first example is the functional requirements to meet that need after having interviewed the customer (business)... the "How". Great article!
Reply | Reply with quote | Quote
 
 
0 # Keith 2011-10-25 08:45
This article would have been much better if the requirements in the first list were reflected in the 'insights' in the second list. I honestly can't say that an architect would come any closer to being able to provide you with a design that met your true needs any better from the second list then from the first list. Both lists miss the mark in being able to have anything that will be able to go to dev (or in this case construction). Why in both the before and after are you limiting yourself to lists? The little user stories that make up the 2nd list are helpful in supporting the first list but a small group of pictures of places that you saw and liked would be even more helpful and the same goes for system requirements.
Reply | Reply with quote | Quote
 
 
0 # Tom Ryder 2011-10-25 09:41
Bob, I agree with your point regarding demanding anything specifically limits solutions. We should be trying to create solutions to business problems or opportunities. Ultimately you need to provide your ok as the customer as to what the solution will be. An architect will show you pictures and blueprints of what your house will look like. BAs can do the same thing utilizing visualization tools such as iRise to show the customer what their solution will look like and behave.
Reply | Reply with quote | Quote
 
 
0 # steve blais 2011-10-25 09:41
Suppose, Bob, that the architect took your desire to see the water in the AM and PM as a cue and put floor to ceiling windows in your master bath? Which of course doesn't include a sauna or whirlpool because there is no way to intuit that from the "insights" you gave him. He also gives you a dormer for an upstairs bedroom and an office that doubles for a guest room since the guests come in "infrequently" . Or he places the guest bedroom downstairs and puts the office in an outside building attached by a walkway since he is a Hemingway fan (or Proust or Charteris) and that is the most "private" of offices. (Those three authors were known for having their writing offices away from their main houses.) Taking a cue from your insight about modernity (you referring to just the kitchen) he creates a glass and steel house to wrap around the modern kitchen that contains rustic artifacts for that simple Maine atmosphere (say, an electric fire place for example). Since there is no specification for size, the house he designs for you is 7800 sq feet (to house the large modern kitchen) and includes an indoor walkway, all in tempered and polarized glass of course, down to the two story boat house to store the very large boat you are planning to buy. It is creative, and covers all the bases, but you would have to say that it costs too much, among other things. In other words when he showed you his plans you would then go into negotiation, telling him that the house is too big for your budget and giving him the requirements of 1900 - 2200 sq ft and the three bedrooms, o, and another bath downstairs, and the office has to be inside the house and we need a porch and a sun room, etc. Eventually your requirements, or constraints if you want to be specific, would have to come out. Perhaps it might be better to state them up front and save a lot of time and negotiation after the fact. I would think that the architect might ask you after you have described your insights for your budget and the number of bedrooms and whether you want entertainment rooms or one large living-dining-f amily room as typically comes in those cabins. I would think that the architect would request some more specifications to give him direction. I know my architect did. And we gave him requirements, requirements similar to the ones you listed. And he still was very creative. And he still delighted us. In fact he offered three different alternatives, and I added some alterations to the design we selected to improve the traffic flow in the house. This means that although we started with requirements there was still plenty of room for creative solutions and negotiations on all parts. And, yes, all our requirements were met. Bottom line, Bob, your example I think argues against your premise. Your example reinforces in my mind the need for requirements.
Reply | Reply with quote | Quote
 
 
0 # Horace 2011-10-25 10:39
Correction: Sta ndard requirements traceability ends with metrics that prove the business goals were met by the requirements. The spellchecker doesn't recognize the word traceability!
Reply | Reply with quote | Quote
 
 
0 # Robbie Knapik 2011-10-25 12:31
all too often I deal with business teams that want to get to the 'how' without describing the business need. With the house example, if the list of specs in the 1st example exceeded the budget, the architect would not know what was important. With the 2nd list, he/she could design a creative solution that totally meets your desires even it it doesn't cover all the items on the 1st list. The challenge is to get them to slow down/step back and explain the business needs when they think they know the solution.
Reply | Reply with quote | Quote
 
 
0 # Mustafa 2011-10-25 17:59
Bob, that was good illsutration you made. Surprisingly, most of the comments were made by guys!!
Reply | Reply with quote | Quote
 
 
0 # Dennis Nelson 2011-10-26 05:12
Requirements and requirements traceability should be clear enough to pass the SMART standard. They should enable a judge or jury to determine whether the client or contractor is right in a dispute over whether one or more of the deliverables were contractually acceptable, whether the project or a deliverable's scope was creeping, and whether any work done should or shouldn't be paid for because the work was or wasn't traceable to a requirement or associated deliverable, scope change or defect. This is hard work and will become increasingly more important as customers become more educated and experienced; and contractors will be competing with more contractors worldwide (and the contract outcomes become more transparent and comparable). Will there still be customers, stakeholders and project peers who give few specifics and accept the outcome without complaining? Sure. But will there be fewer of them and greater distance between them? They also will tend to be individuals as taxpayers, shareholders and other stakeholders demand more accountability and clarity from their respective organizations and staffs. The best art is not only the most creative, it is the most precise.
Reply | Reply with quote | Quote
 
 
0 # Steve 2011-10-26 08:00
From my experience, this is probably a situation where too many people, in various roles, are overreacting. Requirements, and the process to get to them, do not have to be restrictive. If money is not an issue, the project approach, the project timelines, and staffing timelines are usually the reasons for restrictions. If you have no time constraints to build your house, you can revisit the requirements scope over and over again. If you have cost contstraints, requirements scope changes may have to fit within whatever work has already been completed. So, you may not be able to get the newest gadgets unless you're willing to pour in more money, and time. Also, the same, or similarly qualified, subcontracting staff should be available too, and for the new duration of their part of the work. The point is that the level of overeaction, and degree of restriction placesd on the requriements, probably have to do with the understanding, or misunderstandin g, of what the project approach and the project constraints are. If everyone on the project agrees that all the time, staff, and money needed to build whatever you want is available, then the scope can remain open - but the restriction here is, 'only up to a certain point'. Even if the building process follows agile methods, at some point, the project has to come to an end. At that point, smaller enhancement projects, or another build project, can start up. Otherwise, when does the project end, so that at least some of the assigned resources can move on to other experiences and other projects that need them? Also, what cost do you measure against when you want to measure whether or not what you have, at some point in time, is worth the resources and time you've already burned through?
Reply | Reply with quote | Quote
 
 
0 # Ken Livingston 2011-10-26 15:14
Wow, good to see so much feedback from an article with an interesting viewpoint. A BA is the bridge between users and information systems, and the requirements definition is one of the structural components of that bridge. I think it comes to the point where the business requirements can only be defined down to maybe mid-level before the BA needs to work with the systems specialists to find out what the systems can (and can't) do for the business. Ideally, this would be done together with the systems people, who could possibly put up a proof of concept or prototype for the business to home in on their requirements. Wait a minute - isn't this starting to sound a bit like an Agile process? My feeling is that a requirements definition is needed for those who aren't comfortable with the 'open-ended' (read 'open-chequeboo k) appearance of Agile and want to know exactly what it's all going to cost before they go in any deeper - and that's where the Catch-22 comes in - until you know all the requirements in detail you can't get accurate costs, and a vendor isn't going to commit to a price when the business is vague about requirements. So in answer to your wrap-up question, Bob, yes - I think the term 'requirement' is too restrictive, but businesses will need a lot more maturity and a higher degree of trust in vendors before they adopt any other approach.
Reply | Reply with quote | Quote
 
 
0 # Jason Martin 2011-10-27 03:59
This seems to be the exact issue that was addressed back in the 1980s as the difference between logical and physical models, (DeMarco 1978, McMenemin & Palmer 1984.) The 'customer' should be describing and modeling the capabilities or expected uses of the new product. The designers & builders should describe the available technical possibilities for accomplishing the capability and/or uses. After far too many years in this business, I see that customers are still asking for the latest whiz-bang technology that they've seen with little attention to how it will fit their business. Most designers and builders are just going along with the customer and implementing whatever they can, within the limits of their current environment, with little of that all-important negotiation going on before building begins.
Reply | Reply with quote | Quote
 
 
0 # Tim Ward 2011-10-28 01:14
What you've described as your preferences could translate to a high level "statement of understanding of the need". In turn, the architect could translate this into a visual rendering of the exterior and interior of the cabin which could be modified by the customer (high level requirements perhaps with prototypes) and then ultimately upon approval converted into blueprints (final detailed requirements) which could be reviewed, and modified (if needed) before one saw or hammer is lifted.
Reply | Reply with quote | Quote
 
 
0 # cindy wilson 2011-10-28 06:17
If you want to be technical, a roof is more of a requirement for a house than a sauna. Counting you and your wife as one purchasing unit, the house will have have exactly one purchaser and user; therefore, your strong preferences really are requirements in the case of the house that you'll spend lots of money to design and build. If you don't make those strong preferences clear, your architect will be re-drawing or you'll be retrofitting your sauna, both at some cost. Either way, most applications have more than one user and preferences are things that have to be taken into context, along with ergonomics, best practices, cost, environmental stability, generalizabilit y and scaleability, etc. One thing I dislike about Agile is that boiling requirements down to acceptance criteria focuses too much on "requirements" and skirts the context, even though it advertises the opposite; the tendency, in the end, is for customers to "require" their preferences and for developers to deliver "good enough" because we too often trim the tail on anything extraneous. While I don't necessarily believe waterfall is the better approach, I prefer the waterfall-style elaborations in advance of agile delivery. The discussions we used to have during elaborations enhanced the developers' ability to assert their creativity because we had time to take true situational requirements like "needs 2-3 bedrooms" from your first list in context with design goals such as "I need an office" from your second list, discussing the options to combine or the need to keep separate -- and of course this is an oversimplificat ion. Once designers understand the usage/ergonomic s as well as the strict inflexibilities , something that comes from a larger discussion, they can be creative in presenting and negotiating solutions. We often forget that, even though our customers may purchase our output, they don't have to use it and can influence the purchasing decisions of others. Ergonomics and other preferential "non-requiremen ts" are still important, but should be part of that context. I'm advocating more balance. Many things impact how strictly we adhere to true requirements, including the specificity of the app (you can't be "creative" about certain calculations or functions), the size and skillset of the targeted user pool, budget, time, anticipated life, etc. Often, we negotiate "requirements" because of the practical trade-offs involved in delivering certain features. For a application targeted to a very specific function or user, such as the house analogue, preferences practically are requirements. Log cabin, italian tile, granite ... those are cosmetics and would typically be tweaked in an agile delivery; they often can be omitted from requirements altogether for systems development. But whether it's technically a "requirement" or not, if you intend to purchase a boat, you will need somewhere to put it, hence the "goal" will uiltimately be a requirement for your specific home. It might just be a task for Phase 2. Most systems are designed in a far mor generalizable manner by necessity. In my experience, neither of your lists alone would yield a good balance of practical adherence to the constraining realities and creative, robust design.
Reply | Reply with quote | Quote
 
 
0 # Bill Meacham 2011-10-29 11:27
There is a difference between requirements and feature requests. The first set (three bedrooms, two baths, etc.) are feature requests. They are not requirements until both the client and the contractor agree that they are to be delivered. The second set (high-end kitchen, be able to see the water, etc.) are not requirements but client wants and needs -- in software terms, business needs. If I were the contractor and were given the first set, I would not agree to them without a discussion with the client that elicited the second set. If I were given the second set, I would come up with something like the first set and then discuss it with the client, perhaps making modifications, until we both agreed. If I were a business analyst, I would work with both the client and the contractor until we all got agreement on both sets. Of course the client would have a lot more say in the wants and needs than the contractor would. And both would have to agree to the finalized set of feature requests before they became, contractually, requirements. By the way, both sets are "what," not "how." The architectural drawings and specifications -- which correspond to technical design specs in software terms -- are the "how." We could have a separate discussion on how much say the client should have in the "how."
Reply | Reply with quote | Quote
 
 
0 # Bob Galen 2011-10-29 13:23
What a difference a week makes ;-). This post has received the most comments of anything I've written for BA Times. I'm quite thankful for the effort and insights shared by everyone. I do want to point out something that many (most...all) of the comments have missed. One of the key points to my article was creating request-based language between a customer and team (BA represented of course ;-) that fostered: - Conversations and collaboration - Visualization over words - Customer needs triggering the teams' creativity & innovation energy - A focus by the team, not on blindly delivering what they were told, but on creatively and simply solving the customers' problem It was this collaborative partnership, driving the teams' innovation, that I was keen to explore. It was the open-ended-ness of the second list that was intended to draw the two together and hope for some of this result. Instea d of focusing on this, and I know I'm generalizing, most of the replies focused on more of a contractual arrangement. While that's easier to define and deliver, the very premise of this post is that it often *restricts* the results. Tom Ryder & Henk came close to addressing this in their replies. A few others as well. But most of the replies were more of a "restrictive" nature. But all are making me think some more about this... Thanks to everyone! Bob.
Reply | Reply with quote | Quote
 
 
0 # Bob Galen 2011-10-30 01:49
Thanks for the comment Steve Blais. I have two points in reply. First, I'm clearly blending the two -- requirements and user stories. What Jeff Patton was saying is that the pure word (requirements) restricted conversation. And while user stories are supposed to foster conversation, I don't care if they're called a user story or placed on a card...or not. What I think I'm alluding to is where you went (w/o the stronger agile references), I want customers and teams to *partner* and have *conversations* around the *solutions* to the customers challenges. And I want the team to engage in creativity and innovation around how to solve the customers problems / challenges. Think iPad here. Did Apple have a list of "requirements" OR did they provide an innovative solution to articulated and even unknown customer needs. I'm not saying everyone needs to be an "Apple". What I am saying is that *leaning* in this direction creates better solutions. And yes, you hit the nail on the head about trust being a base factor in this. The customer needs to *trust* their teams capabilities to understand and deliver solutions. They need to collaborate with the team. Allow the team flexibility in solutions. Allow the team to make mistakes. Trust that the team is listening. Trust in the teams strengths, etc. So that's part of the '*leanage* here as well. Thanks so much for commenting! Bo b.
Reply | Reply with quote | Quote
 
 
0 # @ndie 2011-11-02 02:43
Numerous factors have lead us to put too much weight on the word “Requirement” and it has silently encapsulated us by the definition that we all believe it to be. I think the simple solution to our standardized (NOT organized) chaos is to completely denounce the word in the design context! “Requirement” is nothing more than a label for a unit of measure in determining a project’s completion but NOT project success or customer satisfaction which tend to be the most important. We use it as an excuse to never be held fully accountable (and decrease the probability for litigation). This word literally stifles our creativity and autonomy; the very reasons why we do what we do… But please don’t misinterpret my comment as a suggestion to blindly disregard your legal department! :-) NOT, the case… A little common sense usually helps with those situations! Anyway, so, let’s just stop using the word and see how things pan out… Let’s rename “Requirements” as “Use Articles” or “Charge Articles” or “Action Items” or “Deliverables” or anything less official. “Requirement” transcends too many markets so it has limited room for interpretation. These other terms require that designers be CONFIDENT in their own abilities, thus, being ACCOUNTABLE for their creativity and interpretation of customer use and fostering trust between all parties. I believe that customers rarely know exactly what they want but they most often can quickly and effectively convey what they DON’T want… If you present a myriad of options and require your customer to be engaged in the process, you will eventually get to one that they not only will accept, but that they will ultimately find the most USEFUL (and probably in ways they had never even considered). B As are travel agents… or Concierge… simply stated: “Use Agents” (*begin Inspector Gadget theme music in the background!* ;-) Some folks don’t know where they’re going, but they know how they want to get there… Some folks know where they want to go, but not the best or most effective way of getting there… And some folks know where they want to go and how they want to get there… we just work on the quality of the Rest Stops and Layovers… Know your traveler… Be Confident… Be Accountable… Deliver Function… Measure Satisfaction…
Reply | Reply with quote | Quote
 
 
0 # Jim W. 2011-11-11 04:23
The first set looks (mostly) like design. The second set looks like user stories (without the canonical elements). You might stretch the definition and call the first set (again mostly) technical requirements, but for me it is quite a stretch. I may refer to this in other forums as a fine example of user stories, to differentiate them from some kinds of legacy requirements.
Reply | Reply with quote | Quote
 
 
0 # ChrisW 2011-11-12 15:13
To me "requirements" are an artefact from a number of system/software design fads. I have seen them used to try to regularize the communications between the design organization and associated implementation organization(s) ; and to try to dissect larger problems into subsets that could then be implemented in parallel. As described in these fads I think there are some limitations: 1) Requirements do a poor job of guiding the development organization to an optimal solution. So, in the cabin example, if making the cabin out of logs increases the cost by 5x, then would the customer be willing to consider alternatives? A more subtle aspect of this is that there may be a range of answers to this question, for example, 2x is ok, 5x should halt the process to ask the customer, and 150,000x should automatically halt the process. 2) The larger the problem the more time the requirements process can take and the larger the risk that the fundamental need will have changed in the meantime. I have seen this a number of times where the requirements/fu nding process went on for so long, that when it came time to implement something, there was no longer a customer for the solution as stated in the requirements. 3 ) Requirements do not decompose well. What I mean is that a requirement as stated at one level of understanding may drive numerous contradictory requirements at lower levels. See my point 1) again, but the subtle problem is the loss of context within which to have a decision making discussion with the customer. From the cabin example: building codes for cabins at the lake may require mould protection, mould protection may come in a number of forms, so the customer is required to choose, but has no ability to understand how this choice affects the usability of the resulting cabin. 4) Some requirements processes have trouble keeping up to the rate of change of the real world. I don't think the problem is the "requirement". The problem is adapting the use of the "requirement" for each solution implementation system.
Reply | Reply with quote | Quote
 
 
0 # Mike T. 2011-11-17 14:51
I think one of the key points in Bob's second approach is this, "My hope is that it communicates my home goals while leaving the flexibility for my architect to do their job. Then I hope it fosters review and communication while we refine the plans." Yes, some of Bob's terms, such as "simple nature of a Maine kitchen", are subject to interpretation. This is where the architect has to do their work. They need to come back to Bob and ask, "What do you picture in your mind when you think of a Maine kitchen?" And Bob might say, "I'm really not sure." Now you start doing things like looking in magazines, design books, touring houses, etc. And as you do that, Mrs. Galen, starts saying, "Oh I love those countertops!" and "Yuck! That color looks like what I think Snooki would paint her bathroom!" The outcome of such a dialogue is a refinement of the customer's vision. At some point the architect has enough information to start making sketches to show the customer. This prompts feedback telling you what is, and is not, acceptable solution for the customer. It also focuses on the time sensitive questions first. For example, the "flow" of the kitchen is tightly coupled to the types and placement of the appliances, the shape of the kitchen, where it fits into the overall floor plan, etc. At the same time, picking the paint color for the walls could wait until the day before the painters arrive and probably should wait until you know what the floor will be. Someone is sure to comment, "You'll never get the cabin built because Bob will never state what his requirements are!" My answer to that is that he will decide what is delights him, and what satisfies him, when you agree up front how much he wants to "spend". You set bounds on the iterations, time, magazines to read, etc. If the customer wants to do more exploration, wants to see more sketches, etc., the customer has to "pay". This might mean dollars, it might mean construction doesn't start until next Summer instead of in the Spring. The customer is the one who makes the trade-off decisions. Do I pay for really log construction and buy a less expensive lot, or get the perfect lot for watching summer sunsets and have a cabin that just looks like it is a log cabin? From my personal experience, the key to success is understanding. I once had a client tell me, "Mike, you understand how we do business better than we know how we do business." The result, a system that gave them what they needed, versus something that meet a list of "requirements" that they thought they needed when the project started. They understood the trade-offs they could make. When you start with a description of the customer's objectives, you are in the best position to understand their needs and create a product that delights everyone involved.
Reply | Reply with quote | Quote
 
 
0 # Bob Galen 2011-11-17 17:32
I try not to point out one comment over another comment, but rather to take each one and value it's intentions. I value them all. But sometimes someone truly "hits the mark" and gets to the essence of what I was trying to say. Often much better than I originally said it ;-) Mike T. - Thanks for your thoughtful and insightful comment. Whether folks agree or disagree with it, IT comes very close to representing the core idea of this post. And I thank you for taking the time to post it. Bob.
Reply | Reply with quote | Quote
 
 
0 # Tony Heap 2011-12-06 05:39
I'm all for losing the term "requirements" from our vocabulary. My own perspective is that there are business problems and there are solutions to those problems - which are designed to increasing levels of detail by business executives, users, business analysts, systems analysts and software architects. We recently had an extension added to our house and the architect specifically said, "don't tell me what you think you want, tell me what your problems or objectives are" - and he then designed an extension to our house to solve those problems and meet those objectives. As a BA I like to try to do the same thing with my business stakeholders. I produce something that I call a "functional design" for an IT system. That makes it very clear that I have created/designe d a solution. The term "requirements" is too easily interpreted as something the users told me and I scribed. Steve Blais's recent article is an excellent explanation of the difference.
Reply | Reply with quote | Quote
 
 
0 # loek bergman 2011-12-06 17:23
Requirements are in my opinion the result of the conversations with the customer and usable for the development team. Everybody has its own division of work and it would be strange if you hire a specialist in requirements engineering and you will have to come up with the specifications. Please, make the best use of the expertise of your listener. If you go to a dentist, do you make up the requirements or do you simply say 'oh sometimes in my left upper jaw it feels itchy drinking cold water' and leave the rest to the specialist. Bu t in the end, you will have to agree what will be built for you. For that you need the list of requirements. Requirements are not the starting point of the conversation, the are the end point of your talks with the requirements engineer and the starting point of the development.
Reply | Reply with quote | Quote
 
 
0 # Brad Kanarr 2011-12-09 06:10
I'm glad someone mentioned Pictures as I read through the comments. Its a good point made in the article but the easiest approach would be to visualize the needs of the customer. THAT is too often forgotten about when gathering requirements, in my opinion. Traditional text based requirements dont always convey the message the business intends.
Reply | Reply with quote | Quote
 
 
0 # Duane Banks 2011-12-13 23:07
Bob, I think your over-reacting to the term requirements. Requirements are utilized in both cases. The difference is a matter of responsibility. In the first case, the customer assumed responsibility. In the second, the customer delegated the requirements to the solution team whom the customer expected to interpret, collaborate, and create. In the case of building a house, I would think the requirements sit with the customer. I personally would not want "my architect to 'delight me' by interpreting my goals, collaborating with me, and leveraging their creativity to create something 'just right'. However, I recognize that everyone is different, and I do see some value in using an architect as such (to some degree). Desig ning a house (even a custom cottage on the lake) is more abstract then designng an IT solution. So, an empowered architect is not required. An IT solution certainly does require an "architect," but not one that will only interpret, collaborate, and then create, but also analyze and more often than no specify. Where there is a need, there will also be requirements. Who develops the requirements is the question.
Reply | Reply with quote | Quote
 
 
0 # Himanshu Sanguri 2012-03-12 06:20
Requirement Analysis is changing its scope with the increasing SaaS. However, being an Agile practitioner I feel that sometimes we need RQA sign off as many customers tends to exploit the vendors on the name of Agile or flexibility and more over end to end to solutions also requires freeze's RQA. We encountered this problem with some of the customers where they started asking for sky in every sprints and our Sprint backlogs started piling up. Therefore, we started Sprints RQA sign off in our Scrum.
Reply | Reply with quote | Quote
 

Add comment