Getting and Writing IT Requirements in a Lean / Agile World
Meeting the Agile, Lean, and DevOps Requirements Challenge
Problem solvers are in demand in every organization, large and small, from a Mom and Pop shop to the federal government. Increase your value to yourself and to your group or organization by improving your ability to extract, express, and analyze business needs in formats that are supported by Agile, Lean, and DevOps philosophies.
The single largest challenge facing organizations around the world is how to leverage their Information Technology to gain competitive advantage. This is not about how to program the devices, it is determining what the devices should do. The skills required to identify and define the best IT solutions are invaluable for every role in the organization. These skills can propel you from the mail room to the boardroom by making your organization more effective and more profitable.
An Agile Approach for Getting from Visions and Requirements to Test Scenarios
In this course, you will learn how the concepts of Agile, Lean, and Continuous Delivery software development philosophies influence the discovery, expression, and analysis of business needs.
You will learn how to express those needs in user story format, as features or requirement statements, and ultimately as Given-When-Then structures. This is the language that allows developers to deliver the IT solutions the organization needs.
This exercise-rich, interactive requirements discovery workshop provides a proven set of core business analysis techniques, methods and tricks. The presented content will help agile and lean software development teams, business analysts, product owners, test developers, and subject matter experts discover, capture, clarify, and confirm the kind of IT requirements that solution providers need to deliver the right information technology solutions for the business.
Introduction to the Course
This introductory section gives viewers a sense of how the class works, and what they will learn in this course. Students will also gain a feel for how the instructor presents the material to see if it matches their preferred learning style.
This section introduces Tom and Angela Hathaway, the instructor and course developers. Learn why they are uniquely qualified to present this material.
Requirements in a Lean and Agile World
The Agile Manifesto and Lean Manufacturing Principles have changed the IT landscape. This lecture provides a basic understanding of what these are and why they are important.
Over the past 70 odd years, every study of IT project failures has identified missing and misunderstood requirements as the major contributor. This section explains how Agile and Lean philosophies attempt to solve this seemingly intractable problem.
Cynefin is a concrete, simple yet powerful weapon in your arsenal identifying and dealing with IT project issues. It has proven to be effective in many different settings. You will find it useful in determining which projects are more likely to succeed before you spend a ton of resources. It is also a valuable tool for assessing and prioritizing individual Features, User Stories, and literally any form of expressing a business need.
When do you perform critical business analysis activities in Lean and Agile approaches and what level of detail do the activities need to achieve?
Requirements Discovery for Agile and Lean IT Projects
Eliciting requirements includes the simple process of asking questions but that is just the tip of the iceberg.
The simple act of creating and maintaining an open Question File from the beginning of the project through to the end keeps you abreast of your analysis progress and provides a detailed project history. This is the ideal format for a lessons-learned evaluation.
There are 5 fundamental approaches for eliciting requirements and each has its own pros and cons. In addition, each requires some level of planning, performing, and publishing.
Stakeholder identification is one of the more critical early project activities. Missing critical stakeholders early in the project always leads to missed delivery dates or failed projects.
Although you have been communicating with other people since before you learned how to talk, finding the right tone and content of a requirements elicitation conversation can still be challenging.
The core idea of non-verbal communication sound trivial, but experience teaches us that words not spoken often contribute more to accurate understanding than everything the person says.
A comedian once quipped, "Earth would be such a lovely planet if it weren't for all the people." Whether you agree with that comment or not, it obviously is not a great attitude for anyone trying to elicit requirements. We all have issues with certain behaviors of other people, in particular when we are trying to achieve a specific outcome from our interaction. The good news is that there are ways of dealing with every behavior, if you only have time to think about them and plan ahead.
Listening is an art, no doubt. When you are trying to elicit requirements, you need to apply powerful listening techniques to ensure that you get the right information out of the conversation.
There are seven critical criteria for conducting effective requirements gathering conversations.
Before you can start to discuss solutions, you should make sure that you are looking to solve the right problem. This simple problem analysis approach will start you down the right path.
Once you have a list of potential problems, the challenge becomes how to reduce the list to the essential or "real" problems and separate out solutions or symptoms.
Writing Business and Stakeholder Features and Requirements
The simple construct called a "User Story" is one of the best modes for expressing stakeholder requirements.
There is immense power in simplicity. Expressing your requirements in simple, single, complete sentences will dramatically increase the number of people who understand what it really means. A good User Story is not a Victorian novel but a trigger for a conversation.
Unless the agile team knows what value a user story delivers, they have no way of determining its relative importance.
Given that projects are restricted by budgets, you should ensure that every request is relevant, meaning in scope, for your project before you spend time delving into details of the request. Your first question should always be, "How does this request contribute to meeting the goal of the project?"
Avoiding Ambiguity and Subjectivity
Recognize how ambiguity and subjectivity in requirement statements, user stories, features, etc. impede achieving a common understanding among all audience members.
Identify four common contributors to ambiguity that cause misunderstandings.
Use desk checking, peer reviews, and peer rephrasing to discover hidden ambiguity and subjectivity
Evaluate who is best suited to critique and revise your requirements, user stories, etc.
Finding Test Scenarios in a LEAN, AGILE World
In spite of impressions, testing is the most time-consuming activity in the process of delivering IT applications. Unit, Integration/system, and acceptance testing consume about 45% of the total development time. This lecture introduces test-driven development techniques for improving the efficiency of the testing process.
Modern test-driven development approaches rely on test scenarios expressed in the language of Gherkin which relies on Given-When-Then (G-W-T) structures. This lecture provides a basic explanation of the meaning of G-W-T steps.
Test data engineering uses equivalence classes, boundary values, and probable error to limit the number of tests required to achieve confidence that the application works as intended.
Decision tables are a reliable analysis tool for ensuring that an application behaves as intended in all possible situations. A bonus is that the decision table leads directly into test scenarios.
Assuming you are able to perform basic problem analysis to distinguish symptoms from problems, the symptoms provide a treasure test of test scenarios for acceptance testing.
Commonly considered a development or analysis tool, use cases lay the groundwork for testing as well.
This lesson introduces 2 additional, lesser-known methods for identifying test scenarios that other approaches miss.
Identifying the functions that the application must support or that people need to use the application leads inexorably to test scenarios for unit, integration/system, and ultimately acceptance testing.
Once you have identified the functions the application performs, you need to consider what data each function needs and what data it creates to fine-tune your test scenarios.
Dealing with Non-Functional Requirements (NFR)
Non-Functional Requirements (NFR) are often the cause of IT project failure. It is not enough to know the application does what it should do. The question is does it do it well enough, fast enough, often enough? Learn the most common types of NFR that are often neglected.
Asking the right questions early in the process is key to determining which Non-Functional Requirements your project has to meet.
Discover why constraints form a special category of Non-Functional Requirements and are the most challenging to test.