Monday, April 20, 2020

Chapter 12 Fit Criteria and Rationale


Chapter 12 Fit Criteria and Rationale

Fit means a solution completely satisfies or matches the requirement

Formality Guide

Rabbit Projects: confirming each fit criterion with the stakeholder, and writing the test case using that fit criterion
Horse projects: when the project has multiple stakeholders, different stakeholders assign different meanings to requirements. Adding a rationale and a fit criterion to each requirement means it is virtually impossible for misunderstandings to occur
Elephant projects: must use rationales and fit criteria to avoid misunderstanding. 

Why does fit need a criterion?

The benchmark is the fit criterion—a quantification of the requirement that demonstrates the standard the product must reach.

 The idea is for each requirement to have a quality measure that makes it possible to divide all solutions to the requirement into two classes: 
1. those for which we agree that they fit the requirement 
2. those for which we agree that they do not fit the requirement

The Rationale for the Rationale

The rationale is the reason, or justification, for a requirement.
  • Attaching a rationale to the requirement makes it far easier to understand the real need.
  • The rationale is not only a guide to help you find the fit criterion, but also a means to help you know when you have several different requirements masquerading as one.
  •  the rationale provides the basis for making decisions about how to implement the requirement
  • The rationale is the cognitive thread that connects the business and the delivered product
Deriving Fit Criteria

This requirement is fairly subjective and slightly ambiguous

Scale of Measurement

Any requirement can be measured: All you have to do is find a suitable scale with which to measure it. The scale of measurement is the unit you use to test the conformance of the product to its requirement. Scales of measurement exist for all sorts of qualities.

 Fit Criteria for Non-functional Requirements

A non-functional requirement is a quality that the product must have, such as usability, look and feel, performance, and so on. The fit criterion is, therefore, a measure of that quality. 
 Here we examine fit criteria for all the different types of non-functional requirements.
  1. Product Failure
  2. Subjective tests
  3. Standards
  4. Look and Feel Requirements
  5. Usability and Humanity Requirements
  6. Performance Requirements
  7. Operational Requirements
  8. Maintenance Requirements
  9. Security Requirements
  10. Cultural Requirements
  11. Legal Requirements

Fit Criteria for Functional Requirements

A functional requirement is something that the product must do—an action it must take. The fit criterion specifies how you will know that the product has successfully carried out that action. For functional requirements, there are no scales of measurement.

Forms of Fit Criteria

The most common way of writing fit criteria is using text and numbers in your natural language.
  1. Defining the Data
  2. Graphic Fit Criteria
  3. Decision Tables
  4. Graphs


Business Requirement Gathering- Ch : 11 - Non - functional Requirements

An Introduction to Non-functional Requirements: The non-functional requirements describe the qualities that your product must have or put that another way, how well it does the things it does. Such requirements make the product attractive, or usable, or fast, or reliable, or safe. You use non-functional requirements to specify response times, or accuracy limits on calculations. These properties are not required because they are the functional activities of the product-activities such as computations, data manipulations, and so on—but rather are included because the client expects the activities to be performed in a certain manner and to a specific degree of quality.

Formality Guide: On some occasions, the non-functional aspects of the product are the prime reason for doing the project. If the users find the existing product difficult to use, slow, or unreliable, then usability, performance, and reliability, could be considered the most important requirements for the new product. Rabbit projects should use the requirements specification template to checklist the non-functional requirements types. In the horse project, the requirements analysts must ensure that they capture everyone’s non-functional requirements. Elephant projects have a need to capture all of their requirements in written form, including the non-functional ones.

Functional Versus Non-functional Requirements: Non-functional requirements do not alter the product’s essential functionality. That is, the functional requirements remain the same no matter which properties you attach to them. At the risk of confusing matters, the non-functional requirements might add functionality to the product. Non-functional requirements make up a significant part of the specification. Provided the product meets the required amount of functionality.

Use Cases and Non-functional Requirements: A product use case represents a chunk of work the product does when the work is responding to a business event.
       The non-functional requirements, however, do not fit so neatly into this partitioning theme. Some of them can be linked directly to a functional requirement, some apply to the product use case as a whole, and some apply to the entire product.

Non-functional Requirements Types: Each number is the identifier allocated to that type of requirement in the requirements specification template.

  • Look and feel
  •  Usability and Humanity
  • Performance
  • Operational
  •  Maintainability and Support
  • Security
  • Culture and Political
  • Legal
Finding Non-functional Requirements: Like all requirements, the non-functional ones can come to light at any time. There are some places where you can look at to discover the Non-functional Requirements.

Blogging the Requirements: When you are trying to elicit non-functional requirements, blogs and wikis can be useful. Using blogs to find the requirements is one of a good way.

Use Cases:  One can consider each use case from the point of its non-functional needs. It is a good way to describe each type of requirement.

The templates: Use the template as a checklist of non-functional requirement types when interviewing your stakeholders. Go through the template looking at each of the subtypes and probe for examples of each.

Prototypes and Non-functional Requirements:  You can use prototypes to help drive out non-functional requirements. At requirements time, the prototype usually takes the form of a whiteboard sketch of what the product might be like. 

The Client: The client for the product may also have expectations that are relevant here. Once the functional requirements are met, the non-functional qualities may be what persuade a potential customer to actually buy your product.

Sunday, April 19, 2020

Business Requirement Gathering: Chapter 10 - Functional Requirements

1.     What is functional requirement:
·        Specify what the product must do to satisfy the work or business
·        Independent of any technology used by the product
·        Design a solution for the functional requirements
·        Add the technological requirements that are needed for the solution
·        Technological requirements are sometimes packaged together with the business requirements
·        Contract for building the product
·        Must have sufficient detail (describe how the product will perform, developer to construct or correct the product)
2.      Level of details:
·        Should be written as a single active sentence with one verb
·        If the use of “and” indicates more than one requirement, they should be separated
·        Written as a single sentence, the requirement is more easily tested
·        Always be measurable
·        The use of “must” is used for critical requirements and “should” for non-critical requirements
·        Critical requirement must be met for the project to be successful
3.      Description and Rationale:
·        Need a what, the description, and a why, the rationale
·        The description points to the solution
·        The rationale makes the need visible and indicates how much attention the requirement should get
·        Lead to a clearer requirement
4.      Data, Your Secret Weapon:
·        Data model: to show functionality of the product
·        Data dictionary: define what has been used in the data model and serves as part of the specification of the functional requirements
5.      Exceptions and Alternatives:
·        Exceptions: unwanted but inevitable deviations caused by errors in processing or incorrect action
·        Alternatives: if variations are allowed, requirements must include what to do
6.      Conditional requirements:
·        Must include what to do when certain processing requirements occur
7.      Avoiding Ambiguity:
·        Be aware of ambiguity and misunderstanding
·        Use simple language and terms that all stakeholders will understand
·        Use terms that relate to the client’s work area
·        Only use acronyms that are well-known to all stakeholders
·        Uniquely identify each requirement
·        Do not use slang, words that have more than one meaning, pronouns rather than subjects or object nouns
·        Be consistent with the data dictionary
·        Read written requirements aloud
·        Confirm understanding with the clients
8. Technological Requirements:
·        Functionality needed because of the chosen technology
·        Make the chosen implementation work
·        Secure connection to the internet
·        Introduced after the business requirements
·        Technological Requirements should be clearly identified
·        Should be separately documented when packaged with business requirements under Functional Requirements
9.  Grouping Requirements:
·        Grouped by use case or feature
·        Related groups of requirements become easier to discover
·        Test for completeness of the functionality
10.  Alternatives to Functional Requirements:
·        Scenarios: a series of stakeholder recognize steps for internal construction of products
·        User Story: An Agile tool to start the specification process
·        Business Process Model: activity models using tools with process descriptions
11.  Requirements for COTS:
·        Commercial off-the-shelf products
·        Installed software from vendors
·        Alternative to building the needed functionality
·        Interfaces for data inputs and outputs need review
·        Discovers and understands the functionality differences
·        May require configuration or modification

·        Changing the organization to match COTS

Friday, April 10, 2020

Business Requirement Gathering Ch - 7 : Understanding the Real Problem

When stakeholders ask for some feature or capability, they quite often state their request as an implementation. This is a business stakeholder asking for a solution to a problem, but not really saying what that problem is. How can you know if it is the correct solution? You can’t and until you know what the real problem is.

One should also focus on the abstraction, as it means focusing on ideas rather than solutions.

The Brown Cow Model- Thinking above the line:  In the brown cow model, it also represents the lower-left quadrant of the model, the How-Now view of the business. In fact, anything below the line - the “how” - shows the physical devices and human organizations used to implement the solution.


The Essence: Now if we move above the horizontal line that separates the “how” from the “what.” Here’s where you see the real business - that which we refer to as the essence of the business. The reason for spending time above the line is to discover the real problem and avoid what happens in many organizations where people waste most of their time finding solutions to the wrong problems. Moreover, it is BA's duty to know what is the real need of their stakeholders and find the problem before the solution is considered. Additionally, the problem, meaning the real business problem you are trying to solve, exists regardless of any technological implementation. If the requirement contains any implementation then it is a solution, not the requirement. Now when the problem is clear then you can think about the solution. Because you have described the real, essential requirement, the designer can now cast about and find the most appropriate solution to the correct problem, and the eventual solution will almost certainly be superior.

Abstraction:  Abstraction and getting to the essence are pretty much the same thing.  This is a Latin word. Here - abs, which “means away from,” and trahere, which means “to draw”. Thus abstraction, as we use the term here, is drawing away or removing physical implementation so as to reduce it to its essential characteristics. In other words, abstraction is an idea, not the implementation.

Swim Lane Begone: Some business analysts go to a great deal of trouble to add swim lanes to their process models.  it is also important for the business analyst to ensure that current implementation details are not unnecessarily carried any further. An important step in looking for the essence of the business is to see the end-to-end process and to ignore the current way of dividing the work up among departments.

Moving into the Future: Once you understand the current essence, it is time to move on to what you want the business to be; this is shown in the Future-What quadrant of the Brown Cow Model.  The future business will not be the same as the previous business—your project is meant to improve the work, and here is where you do it. moving to the future involves questioning and enhancing the current business essence to make the business more effective, efficient, and innovative.


How to be Innovative: Very few people think of themselves as innovators, but we suggest that almost anybody can be innovative if given the opportunity and some techniques to work with.  your stakeholders might not know what they want; at least they have trouble telling you what they want. But you know that there are three things that people do want and are willing to spend their discretionary money on pleasure, prestige, and convenience.

Systematic Thinking: As well as innovating, moving into the future means thinking systemically about the work, the whole problem, the end-to-end system. Sometimes, when you consider the entirety in preference to the parts, you are better able to see how you can rearrange those parts to form a more beneficial system for the future. One should instead of concentrating on the first solution that you are given, you step back and look at the problem from a wider scope.

Value:  You make your decision as to whether to buy something based on its value to you. Sometimes making the value decision is straightforward.
Do not have to deal with easy stuff like personal preferences and values. Rather, you are focusing on an organization’s value- specifically, the organization that is to own the product you are developing. You have to determine what this organization values and what it wants to achieve.
For any business use case, you measure value with the objective of including only those facilities that are valuable.

Personas: A persona is an invented personality. An imaginary but nevertheless archetypical user or customer for whom you are gathering requirements for your product. A persona is a virtual image that represents the group of same users when your users are not able. These personas are created from the data that is collected from your users during their interview. Using a persona makes it easier for business analysts and innovators to think about their customers’ needs. When they can see a photo and speak about the persona by name as someone real, it puts a human face on what otherwise would be abstract data about potential customers.

Challenging Constraints: A constraint, in this case, is an imposed restriction on the problem or solution space—it might be a piece of business policy that says a process must be done in a certain way, a directive about the way in which the solution must be implemented, or about almost anything at all. Challenging constraints often result in some surprising innovations for the business.

Brainstorming: Brainstorming takes advantage of the group effect. That is, you gather a group of bright, willing people, and ask them to generate as many ideas as possible for the new product.
There are some simple rules for brainstorming:

  • This mixture of backgrounds brings many more creative ideas.
  • Produce lots of ideas. Come up with as many ideas as possible. Quantity will, in time, product quality.
  • The wilder the idea, the more creative it probably is, and often the more likely it is to turn into a really useful requirement.
  • Piggyback a new idea onto an old one. That is, build one idea on top of another.
  •  Write every idea down, without censoring.

Monday, April 6, 2020

Business Requirement Gathering - Chapter 5: Trawling for Business Requirements

Trawling for Business Requirements:
·           Formality Guide:
o   Rabbit: need to understand the work as its currently is, as well as what the work to be. Likely to visit the current work in small slices and then proceed to find its essence and ultimately its solution
o   Horse: due to their large number of stakeholders, probably make more extensive use of apprenticing, interviewing, and use case workshops
o   Elephant: due to their large number of stakeholders, need to document their findings as they go about trawling for their requirements.
·           Current situation:
o   Look to provide an understanding
o   Remember- when modeling “as is” situation, there will be areas that will be out of scope
o   Technology is stripped away to give a cleaner picture of the business
o   Documentation should be kept in the project history
·           The business analyst:
o   Observe and learn the work, and understand it from the point of view of the owner
o   Interpret the work
o   Record the results in the form of stakeholder-understandable analysis models
·           The Brown Cow Model:


o  This brings us above the line to What-Now. This abstract view shows the real business policy, or as we prefer to call it, the essence of the work

o   The upper-right quadrant, we get to the Future-What view. This view shows the business as your owner wants to have it, but still without the technology that might be used to implement that business
o   This technique (How-Now) is also used when the current users struggle to give you an idea of how the work fits together. It is also useful when you know that there will be a significant legacy from the existing work
o   The last quadrant, the lower right, is Future-How. Here you take your idealized view of the future business policy and augment it with the technology and people needed to bring it into the real world.
·        Apprenticing:
o   Observe and possibly do the work
o   Ask lots of questions
o   Answers will generate more questions
o   May need input from a few users
·        BUC Workshops:

o   The desired outcome for the BUC
o   A normal case scenario that describes the work done by the BUC
o   Exception scenarios describing what can go wrong and what the work does to correct them (these can be postponed until later if desired)
o   The business rules applicable to the business use case
o   Sketched prototypes used to help stakeholders visualize the business use case – these throwaway sketches are optional and are not intended to be kept beyond that requirements phase
·        Interviewing the stakeholders:
o   Set the interview in context
o   Limit the duration of the interview to the time stated in the agenda
o   Have business use cases serve as an anchor for the interview
o   Ask a question, listen to the answer, and then feed back your understanding
o   Draw models and encourage the user to change them. Plenty of models (eg, data flow diagrams, activity diagrams, sequence diagrams) are available to help you communicate your understanding of a process
o   Use the stakeholder’s terminology and artifacts, both conceptual and real.
o   Keep samples or copies of artifacts and log them for future reference. Artifacts are the things the stakeholders use in their daily work.
o   Thank the stakeholders for their time and tell them what you learned and why it was valuable
·        Asking right questions:
o   The Brown Cow viewpoints help BA explore the business use case as it is now, its essence, and what it might be in the future.
o   The BA used a lot of questions. These begins with “What”, “How” , “When”, “Where”, “Why” or “Who”, and they encourage the interviewee to give a detailed answer rather than a “Yes” or “No” answer.
·        Listening to the Answers:
o   Being able to understand someone else’s meaning behind the words that they are using
o   If you want to improve your listening skill, you should repeat back some of their words or phrases exactly as you heard them
·        Tools and techniques to generate requirements:
o   Reusable requirement:  does what has been documented before applying to the current setting
o   Quick and dirty process modeling: is a technique for building quick models of business processes to gain understanding and consensus about the current work. This technique is useful when much of the legacy system is to be replaced. It can also be used when the stakeholders are geographically dispersed.
o   Prototypes and Sketches: can be effective techniques for eliciting requirements. The basic idea is to sketch some proposed product, and then reserve engineer the requirements from the sketch.
·         Mind maps:
o   Is a combination of drawing and text that attempts to represent information in the same way as your brain does. The mind map imitates your brain storage mechanism by using links between the words and pictures that represent the information.
o   Are useful devices for organizing your thoughts. You can see the result of your thinking in one diagram, you get an overview and details at the same time
o   The mind map provides enough information- shown as keywords and links between those keywords.
·        The Murder Book:
o   The technique is very simple: add every document, interview note, model, mind map, user story, and paper prototype. The murder book provides a trail of the story of the development.
·        Video and Photographs:
o   Is a way of capturing some moments in time that you can study them later
o   It is a particularly useful technique if you want to show the current work to people who cannot visit the stakeholder’s workplace
o   We also can take a photo of whiteboards- to show the progression of ideas – and find that we often refer back to these images and include some of them in documents
o   Are especially useful tools for distributed teams
·        Wikis, Blogs, Discussion Forums:
o   People are happy to spend a little time (sometimes a lot of time) recording their opinions and knowledge
o   The point is largely that anyone can do it- can make a post or edit or add to whatever has already been posted.
·        Document Archeology:
o   Is a technique of searching though existing reports and files for underlying requirements
o   It is best used when you have some existing or legacy system, and plan on modifying or renewing it
·        Family Therapy:
o   Do not set out to make people agree. Instead, they aim to make it possible for people to hear and get an understanding of other individual positions
o   Is a rich source of ideas about how to work effectively with a diverse group of people
o   Use ideas from family therapy as a way of helping us to listen to stakeholders and of providing a feedback loop to help avoid misinterpretations
·        Best trawling technique:


o   Always use techniques with which you and your stakeholders are comfortable. The best results come when you and the people you are dealing with feel at ease with they way you are working together to discover requirements.