Course Taxonomy: Enterprise & Product Agility

Effective User Stories

Part 1: Agile Review in Five Minutes

  • User stories in agile practices
  • Value proposition canvas
  • Product innovation lifecycle

Part 2: User Stories then, User Stories now

  • The user story relationship to business analysis and agility
  • Why a well-written story is beneficial
  • Traditional analyst and requirements activities translated to agility
  • Differences in alignment to an agile practice

Part 3: User Story Overview

  • The concept of stories and their formatting
  • Roles involved at different levels of story planning and creating stories 
  • Different techniques of writing stories 
  • Benefits of well written stories 
  • Acceptance Criteria best practices
  • INVEST overview
  • 3Cs
  • Examples

Part 4: User Personas

  • Understanding User Personas
  • User stories and Personas- 3C’s
  • Benefits of personas 
  • Using your roadmap for creating personas 
  • Aligning user personas with stories 

Team Exercise: Teams will practice writing stories using the Roles identified from the User Persona exercise. As a group, acceptance criteria will be written, simulating a backlog grooming session.

  • Using User Personas inside a story 
  • Determining user experience

Team Exercise: Teams will create User Personas to understand the concept and identify details that make them unique

  • Identifying roles
  • Other types of backlog items 
  • What is a spike?
  • How to use them
  • Example
  • Non-functional (tech debt) 
  • What is a non-functional requirement (NFR)? 
  • How to use them
  • Defects and their management
  • Example

Team Exercise: Individually the group will write an example of a Spike, Non-Functional requirement, and a Defect. Focusing on what makes them unique and how best to document the details for development.

Part 5: Levels of Planning

  • Vision
  • Epics
  • Roadmap
  • Features
  • Creating Definition of Ready and Definition of Done 
  • Story Mapping
  • Estimation and story sizing (story Points / T-shirt sizing)
  • Backlog Management
  • Planning/ Review / Retrospective 

Team Exercise: Teams will create a list of features, focusing on the evolution of an application and ways in which to build upon a feature over time.

  • Product Backlog
  • Prioritization techniques
  • Story slicing, splitting

Part 6: Getting hands-on: User stories in practice

During this workshop section of the course, the group will spend time practicing application of user stories as they will back at work after class. Workshop participants will critique stories that have been given to them, learning what to look for when grooming stories (size, unclear, dependencies).

  • Building a Comprehensive Release Plan and Backlog
  • Process Mapping
  • Impact mapping
  • Story Mapping

Team Exercise: Teams will create Epics for the features identified in the previous exercise, focusing on how to break down the work into valuable slices.

Team Exercise: The group will be given a sample process map, they will break the process into stories that remain independent and valuable, even if the value varies.

Team Exercise: Teams will write stories that relate to the Epics written in the previous exercise. Focusing on the INVEST strategy of story writing and using group feedback to further refine.

Part 7: Prep and Support of Sprints

  • Story Writing Sessions
  • Backlog Grooming
  • Relative Sizing
  • Acceptance test-driven development (A-TTD)
  • Behavior-driven development (BDD)
  • Story Preparation Kanban
  • Backlog Prioritization
  • Release Planning

Part 8: Application Workshop

Team Exercise: Individually, the group will get to focus on real-world examples, getting feedback from the group intermittently, similar to a series of grooming sessions. Ideally bringing these stories back to their own projects.

Part 9: Retrospective

  • Handling and Adjusting to Team Feedback
  • Educating Others

Certified Scrum Product Owner® (CSPO®)

Part 1: Product Owner Core Competencies

  • Product Owner in different organizations
  • Demonstrate progress on goals to Stakeholders
  • Gathering insights
  • Product Owner Interaction with Scrum teams
  • Product Ownership of multiple teams
  • Owning the Product backlog 
  • Collaborating with the Scrum team

Part 2: Goal Setting and Planning

  • Defining Value
  • Product Visions and Product Goals
  • Creating a Sprint Goal
  • Product Planning and Release Planning
  • Identifying small valuable increments

Part 3: Understanding Customers and Users

  • Product Discovery
  • Segmenting customers and users
  • Conflicting customer needs
  • Defining Product Outcomes
  • Connecting developers to users

Part 4: Validating Product Assumptions

  • Validating Product assumptions in Scrum
  • Approaches to validate assumptions

Part 5: Working the Product Backlog

  • Outcome vs Output
  • Maximizing outcomes
  • Product economics
  • Describing and measuring value
  • Creating Product Backlogs, Product Goals, and Product Backlog Items
  • Refining a Product Backlog

Part 6: Scrum Theory

  • Empiricism and the three empirical pillars
  • Benefits of an iterative and incremental approach
  • The Scrum Framework
  • Scrum Values
  • Scrum alignment to the Agile Manifesto

Part 7: Scrum Teams 

  • The responsibilities of the Scrum Team
  • The responsibilities of the Product Owner, Developers, and Scrum Master
  • Working with stakeholders
  • Working with multiple teams

Part 8: Scrum events and activities

  • Benefits of timeboxing
  • Purpose of a Sprint
  • Define and perform Sprint Planning, Daily Scrum, Sprint Review, Sprint Retrospective
  • Product Backlog Refinement

Part 9: Artifacts and commitments 

  • Purpose of the Product Backlog, Sprint Backlog, Increment
  • The commitments of Product Goals, Sprint Goals, and Definition of Done
  • Product Backlog emergence
  • Attributes of a Product Backlog
  • Sprint and Increment relationship
  • Evolution of a Definition of Done

Applying Enterprise Business Architecture

Part 1: Business Architecture Organizational Maturity & Roles

Organizational and individual expectations will be set for the workshop. The roles and competencies relevant to the business architecture activities will be discussed. Is your organization ready to support the effort?

  1. What to Expect
  2. Enterprise Support
  3. Business Architecture Maturity Levels
  4. Business Architecture Capabilities
  5. Business Analyst and Architect Synergy
  6. What Do Architects Do
  7. More Advanced Competencies

Activity: Competency Assessment

Part 2: Understand the Enterprise & Business Architecture Key Concepts

The value proposition for building a business architecture and industry best practices will be introduced. This information can also be used to sell the business architecture concept to the enterprise.

  1. The Shift: Strategic to Tactical
  2. Part of the Enterprise Architecture
  3. Benefits of Aligning Architectures
  4. What is Business Architecture
  5. Capture the Knowledge in Blueprints
  6. Build Relationship Maps for Decision Making
  7. Outcome Driven Business Architecture
  8. Why Have a Business Architecture?

Activity: Tactical or Strategic, Selling the Business Architecture

Part 3: Bodies of Knowledge and Frameworks

There are many frameworks that exist that can provide guidance for building the business architecture. But what is out there, what are the benefits and challenges of each and how do I know which combination is right for me? We will provide you with guidance to help you make that decision.

  1. Frameworks Overview
  2. Zachman Framework
  3. TOGAF®
  4. DODAF
  5. FEA
  6. Relevant Bodies of Knowledge
  7. BABOK®
  8. BIZBOK®

Activity: Which Framework to Apply

Part 4: Common Architectural Building Blocks

There are some common elements to business architectures regardless of the framework that should be considered. We will step through those elements or building blocks.

  1. Architecture Requirements
  2. Architecture Boundaries
  3. Applying the Context Diagram and Solution Views
  4. Architecture Structure
  5. Which Components, Relationships and Views
  6. Modeling Hints and Tips
  7. Notations and Modeling Languages
  8. BIZBOK®

Activity: Stakeholder Views, Building Blocks Reality Check, Name Two Quiz

Part 5: Set the Stage: Understand the Business

Understanding the business is critical to the business architecture’s success. This needed business information can be presented in different ways. We will look at a few of the most common ways this information is or can be captured and used to build your business architecture.

  1. Needed Inputs to the Business Architecture
  2. Business Model Canvas and Benefits of Asking Business Model Questions
  3. Strategy and Benefits of Asking Strategy Questions
  4. Balanced Scorecard
  5. Business Operating Model
  6. Identifying Business Scenarios
  7. Assess Maturity and Capabilities

Activity: Applying Business Model & Business Operating Model, True or False Quiz

Part 6: Create a Roadmap

There is a general approach to creating a business architecture that we will logically step through, but many elements should still be considered to tailor the approach. We will look at both so you can develop your own roadmap to success.

  1. Architecture Development
  2. Define Boundaries and Analyze Stakeholders
  3. Select Components, Frameworks and Notations
  4. Identify Elicitation, Analysis Techniques and Tools
  5. Why Approaches Vary
  6. Create a Business Case
  7. Present to Management
  8. Presenting Complex Content

Activity: Agenda for Future State Model, Challenge Scenario, Prepare for Building

Part 7: Build the Knowledgebase

  1. Leverage What You Have – Existing Assets
  2. Adding More Models and Maps
  3. Organizational Model
  4. Functional Decomposition Model
  5. Swim Lane and Value Streams
  6. Business Capabilities and Services
  7. Relationship and Alignment Maps

Activity: List Business Capabilities, Which Maps, Pick One Quiz

Part 8: Use the Business Architecture

  1. Business Architecture Engagement Model
  2. Sell to the Enterprise
  3. Adoption Assessment and Organizational Acceptance
  4. Get Others to Leverage the Business Architecture
  5. Quickly Build Trust with Stakeholders
  6. Be an Advisor, Find Opportunities
  7. Connect to Tactical Projects
  8. Reusing Organizational Assets

Activity: Reuse Examples, Lessons Learned

Developing Requirements with Use Cases

Section I. Review of Requirements Development with Use Cases
Use cases are one of the best approaches for developing requirements. In this section of the workshop, we will review key definitions and terms, overview a requirements management framework, and review how use cases fit into the development life cycle. We’ll refresh your knowledge of how to find requirements from use cases, and we’ll conclude with a discussion of use cases and Agile methods.

  • Definitions of terms
  • Levels and types of requirements
  • Characteristics of effective requirements
  • Requirements, use cases, and the development life cycle
  • Review and assess use case quality
  • Identify requirements associated with a use case
  • Use cases and Agile methods

Practice Session
With your instructor, revisit key concepts of requirements engineering and then review poorly written requirements to discover characteristics of effective requirements. Work with your team to review and analyze several use cases and then extract possible requirements from those sample use cases.
 

Section II. IT Project Initiation and Use Cases
To exploit the full advantages of use cases, seasoned analysts plan for them from the very beginning of each project. This section explores project initiation and its relationship to use cases, particularly how to identify and capture them early in the project life cycle. In particular, you'll review whether use cases are appropriate for a specific project. You'll strengthen your understanding of the connection between project scope and use cases. We'll conclude this module with an exploration of other methods for identifying the use cases that comprise a system, and a chance for you to practice constructing a use case diagram.

  • Project scope and stakeholders: how they relate to use cases
  • Actor/goal definition and use cases
  • Event identification
  • User stories for agile development
  • Use case briefs and usage narratives
  • The use case diagram

Practice Session
Examine a hypothetical but realistic business and one of its emergent projects. You'll work in a small group to practice determining whether the use case approach is appropriate, identifying the use cases using the actor/goal identification method, and writing user stories and use case briefs for the case project. You will also practice diagramming the actors and the use cases.
 

Section III. Documenting Requirements with Use Cases
At some point, we must document the use cases and requirements discovered during the requirements elicitation process. This section of the workshop focuses on how to apply the knowledge you already have to writing better use cases. It also examines more complex aspects of uses cases, including includes and extends relationships and use case linking on larger systems.

  • The use case preamble: the big picture
  • Describing the normal course (i.e., main success scenario)
  • Identifying and describing extension scenarios
  • Identifying includes (sub-function use cases) and extends relationships (extension use cases)
  • Linking uses cases for larger or more complex systems

Practice Session
You'll work with your team to write a fully dressed use case for our case project, including a preamble, the main success scenario, and the extension scenarios. You'll also have a chance to write an included (or sub-function) use case and an extension use case.

Section IV. Improving Use Case Quality
As with most aspects of system development, the quality of downstream work products (design elements, test plans, etc.) depends directly upon the quality of the use cases. During this part of the workshop, we will apply standards for quality to our use cases and requirements and look at some proven ways to prevent common problems. We'll also explore how to derive maximum benefit from reviews throughout the life cycle.

  • Characteristics of well-written use cases
  • Recognizing common problems with use cases
  • Avoiding use case traps and pitfalls: advice and examples
  • Validating use cases through reviews and inspections

Practice Session
Your team will review another team's use case using a quality checklist. You'll then have the opportunity to refine your own team's use case based on feedback from another team.

Section V. Use Cases and Other Requirements
Merely writing use cases is not sufficient for capturing all project requirements. While desired user functionality yields a major set of project requirements, experienced analysts know there are also non-functional aspects of the desired system that must be identified and captured. In this section, we will examine ways to derive other typical requirements from use cases and how to identify constraints on the solution design. In addition, we'll explore how use cases not only trace back to one or more business requirements, but also how they trace forward through the development life cycle to design and testing.

  • Deriving non-functional requirements: business rules, data definitions, interfaces, and quality attributes
  • Relating use cases to other requirements
  • Identifying design constraints
  • Documenting requirements and use case traceability

Practice Session
Your team will work together to derive and capture non-functional requirements from the use case your team has already refined. Then your instructor will work with the class to develop and document traceability between the requirements and the use cases for our course project.
 

Section VI. Use Cases and Testing
One of the most powerful aspects of the use case approach is its improvement in test procedure development. Well-written use cases directly impact the outcome of the very portion of the life cycle most likely to suffer when time is of the essence. Here, we'll look at how use cases can help identify test cases early in the life cycle. Next, we'll examine an example use case and its associated test plan side-by-side. Finally, we'll discuss how use of automated tools can reduce not only testing time, but also the time required to produce the test procedures.

  • Benefits of early test case development
  • Relating use cases to test cases
  • Automated tools: reducing test procedure development time and testing time

Demonstration
Your instructor will demonstrate the use of a popular automated use case documentation tool and will then use it to develop a partial set of test procedures for our case project.
 

Section VII. Use Cases and Design Elements
Once we have the use cases developed, we can use them as a basis for discovering the elements needed for the design and development of the solution. In this section, we'll learn how to find typical design elements such as screens, messages, and dialog boxes, creating another layer of detail (sometimes called a "system use case").

  • What are design elements?
  • The relationship between a use case and design elements
  • Functional decomposition for finding design elements
  • Specifying design elements from a use case
  • Validating requirements from user stories, use cases, and interface design

Practice Session
With your team, you'll analyze the use case you've already written to identify and specify required design elements. With your instructor, prototype an interface design for a use case from our case project and use it to validate the requirements.

Critical Skills for Writing Better Requirements

I. The Business Case for Requirements Engineering
Projects have high failure rates, and evidence points to problems with defining requirements as one primary cause. This section presents an overview of the challenges inherent in projects in general, and specific problems typically encountered with project requirements.

A. The goal of a project
B. Facts and figures about project success and failure
C. Types of requirements errors and their frequency
D. The high cost of requirements errors

II. Foundations of Requirements Development
Developing requirements is key to project success. In this section, we’ll cover some basic definitions, review a requirements development framework and process, and introduce an example system we’ll use for our practice sessions.

A. The Business Analysis Body of Knowledge
B. Definitions of terms
C. Types of requirements
D. Characteristics of well-written requirements
E. The requirements development roadmap
F. Requirements and the development life cycle
G. Enterprise analysis

Practice Session
Gain an in-depth look at a hypothetical but realistic business and one of its key systems that you’ll be eliciting and managing requirements for during the class.

III. Project Initiation
Projects arise in part to solve business problems, and understanding the underlying problem or problems is therefore key to being able to identify the correct requirements. During this section, you will refresh your knowledge of and practice defining and documenting project scope and key business requirements.

A. Defining goals and objectives
B. Identifying stakeholders and user classes
C. Identifying constraints and benefits
D. Specifying exclusions
E. Modeling the system scope
F. Documenting requirements in the Initiate phase

Practice Session
Guided by your instructor, you will work with a team to define the goals and objectives in an example project. You’ll have a chance to practice identifying stakeholders and constraints and discovering important aspects of the project scope. You’ll participate in documenting the project scope using a variety of business models.

IV. Eliciting Functional and Non-functional Requirements
As we come to understand the business problem at the heart of a project, we need to learn to capture our business customers’ functional and non-functional requirements. This section explores several powerful and effective analysis techniques for requirements elicitation and development.

A. Problems with requirements elicitation
B. Techniques for eliciting customer requirements
C. Analyzing and reviewing documents and artifacts
D. Modeling processes, analyzing gaps and generating questions
E. Interviewing the stakeholders
F. Identifying data requirements
G. Establishing requirements traceability
H. Capturing the requirements

Practice Session
In your team, you will analyze business artifacts and documents to discover the customers’ functional requirements for the solution. You’ll practice identifying what functionality customers want to keep, remove, add and/or change in moving from their current system to the solution. You’ll practice generating questions for key stakeholders and interviewing those stakeholders. Finally, you’ll learn to use a variety of tools to discover and document stakeholders’ data requirements.

V. Use Cases: A First Look
A”use case” is a sequence of events performed by an actor (person, automated system, or both) in a business environment to get their job done. Use cases carry significant requirements for a system from the perspective of a business user. Use cases are a critical tool in the analysis process, helping us understand what the system needs to do. Later in the development life cycle, use cases aid in design and implementation, testing, and user documentation for the new system. This section introduces the concept of use cases and gives you an opportunity to explore this analysis technique.

A. The benefits of use cases
B. Use case basics
C. Finding use cases
D. Building a use case model
E. Deriving requirements from a use case
F. Tracing requirements from use cases

Practice Session
Your team will create a use case model for one process of our example system. You’ll learn how to identify and extract important functional requirements from the use case, how to elicit additional requirements, and how to maintain traceability among the requirements. You’ll discover how the use case becomes the basis for future development tasks.

VI. Reviewing and Refining Requirements
Well-defined requirements are critical to producing a system that meets the needs of the project stakeholders. Finding the requirements is only the first challenge. Once discovered, requirements must be reviewed, analyzed, validated and possibly rewritten. All requirements must then be confirmed with project stakeholders before the final specification is published.

A. Writing requirements
B. Reducing ambiguity
C. Validating requirements through reviews and inspections
D. Analyzing requirements for validity, consistency and effectiveness
E. Refining requirements
 

Practice Session
Your team will evaluate the requirements that have been found and written for the example project to identify any that don’t meet the quality characteristics we’ve defined. We’ll practice rewriting any unclear or ambiguous requirements.
 

VII. Creating a Requirements Specification
“The job’s not finished ‘til the paperwork’s done.” The final deliverable for many projects is a Requirements Specification of some kind. Writing a clear, concise and informative specification is a critical step in providing the implementation team with the information they need to design and implement a solution that is right for the stakeholders of the project. This section focuses on the creation and communication of the final requirements specification.

A. Organizing and classifying requirements
B. Documenting requirements: the Software Requirements Specification (SRS)
C. Documenting traceability

Practice Session
Your team will consider a model template for documenting the final requirements specification for our case project. You will have an opportunity to write sections of the specification in the course.

Collaborating and Communicating Agile Requirements

Section I: Agile Overview
More than simply a methodology or approach to software development, Agile embraces a set of principles that drive more effective software development. Agile focuses on the customer, embraces the ever changing nature of business environments and encourages human interaction in delivering outstanding software. In this introduction, we'll discuss the following:

  • Agile Manifesto
  • Agile Principles
  • Agile Methodologies
  • Agile Benefits 

Section II. Project Initiation
Among the key contributing factors leading to project failure is poor communication between the customer and developer groups. It is critical, therefore, that each successful project start out right. In this section we'll cover the following topics:

  • Project Charter
  • Project Roles
  • Project Planning
  • Communication 

Class Exercise
Working in small teams, you will establish a project charter including goals and objectives for a sample project. You will participate in defining key roles for project team members and set clear expectations for project communication.

Section III: Focus on the Customer
It is critical that the customer be the focus of a product throughout the development lifecycle. Every requirement should bring some value to the customer. Therefore, prior to defining requirements, it is important to define the customer. This will include the following topics:

  • Customer Involvement
  • Customer Roles
  • Creating and Using Personas
  • Constraints 

Class Exercise
Within your teams you will brainstorm some customer roles for your example project. From the brainstorming, you will consolidate the larger list of roles into key roles that will be the focus of your sample project. For each of the key roles, each team will create personas and share them with the class.

Section IV: User Stories
User stories are a way to capture requirements from a customer point of view. Stories do not capture all of the detailed requirements, but require enough information to estimate and plan. A proven tool used in Agile teams to capture initial requirements, in this section we will explore the following topics:

  • User Stories
  • Goals and Objectives
  • Acceptance Criteria and Acceptance Tests
  • Non-user Stories

Class Exercise
Led by the instructor, the class will come up with some user stories for a sample project. We will discuss how to determine as a team what is appropriate for your user stories to be effective.

Section V: Product Backlog
The Product Backlog is the complete list of desired elements, or requirements, for the product. It is NOT a Requirements Specification, but a high level identification of what the software may satisfy. In this section we will discuss effective means of creating, prioritizing and maintaining the Product Backlog. We will peruse the following topics:

  • Who owns the Product Backlog?
  • Functional and Non-functional Requirements
  • Story-Writing Workshop
  • Prioritizing the Product Backlog
  • Maintaining the Product Backlog
  • Techniques for further elaboration

Class Exercise
In small teams identified previously, you will engage in a story-writing workshop as a means of building a product backlog for your sample project. Subsequently, you will participate in prioritizing your product backlog and present the highest priority stories to the class.

Section VI: Estimating and Planning
Among the greatest challenges in developing software and delivering against stakeholder expectations is estimating accurately and subsequently planning how those expectations can be met. Agile cannot make that challenge disappear, but offers some very helpful tools that enable teams to set and meet the appropriate expectations.

  • Relative vs. Actual Estimating
  • Using Story Points
  • Planning Poker (Grenning 2002)
  • Five Levels of Planning in Agile
  • Estimating Team Velocity

Class Exercise
Using the estimating techniques taught using story points, you'll enjoy a few rounds of Planning Poker with your team to establish estimates for your highest priority stories. This fun and highly effective method of relative estimating is certain to be a valuable tool for you to incorporate into your own estimating process.

Section VII: Release Plan
The release plan identifies a goal for the stories that will be included for a release of the software. Through the prior processes, the team will have prioritized the stories and estimated the team velocity. These key elements will come together to give the team a level of confidence that they can deliver the necessary requirements for a product release in what is normally a fixed timeframe. We'll examine the following topics:

  • Iteration Estimates
  • Prioritization Revisited
  • Ownership and Participation
  • Communication 

Class Exercise
Each team will establish a release plan for their sample project incorporating priority, estimates and velocity as appropriate. We'll discuss how real experiences of fixed time and requirement projects that work well with an Agile release plan.

Section VIII: Use Cases
At the appropriate time, prior to entering into the development of a story, requirements will need to be discussed in more detail. Use cases are a proven method for documenting the appropriate detail from a user interaction point of view. In this section, the instructor will introduce use cases and discuss some of the foundational elements that support the development process.

  • Use Case Advantages
  • Use Case elements
  • Success Path
  • Alternate Paths
  • Exceptions

Class Exercise
Teams will discuss and document use cases, including alternate paths and exceptions, for some of their high priority stories. As a class we'll discuss the relationship between use cases and stories, and how they complement each other.

Section IX: Iteration Plan and Execution
An iteration is a fixed amount of time in which stories/requirements will be developed, tested and ready for release. Because the requirements communication process takes you into each iteration throughout the product release, we'll explore the iteration planning and execution process. During this section we will discuss the following topics:

  • Iteration Planning
  • Defining "Done"
  • Test-Driven, Test Often
  • Demonstrate Working Software (Delivered Requirements)
  • Inspect and Adapt applied to Requirements
  • Finding your rhythm 

Section X: Retrospective on Communicating Requirements
Using Agile Methods – Retrospectives are a key practice in Agile. We will take an opportunity to review our learning collectively and how we can improve. Each participant will identify one or two things that they will adapt in their working environment based on their learning. The instructor will also identify any elements of the course that should be adapted for a better learning experience, thus benefiting future course participants.

In-Class Group Exercises:

In-class exercises help you identify and examine firsthand problems that you may experience. With our demonstrations and case studies, you will discuss ways you can handle problems up front, and how you can make improvements, throughout the phases of requirements development.

  • Establish a project charter, define roles for the project team and determine appropriate communication
  • Define customer roles and personas 
  • Document requirements with user stories 
  • Create and maintain a product backlog 
  • Determine customer value and priority for each user story 
  • Participate in engaging and innovative estimating techniques 
  • Communicate a release plan for a product 
  • Document requirement details with use cases 
  • Plan and execute an iteration cycle 
  • Learn how to continuously improve requirements collaboration

Business Analysis in Agile Projects (ICP-APO)

Part 1: Getting Started

As we get started we will get to know each other and understand the objectives of the course. We will introduce the importance of Conversation in the Agile environment and how the Conversation can be managed for better communication and results. We will model the creation of Working Agreements that contribute to building trust on a team.

  1. Introductions
  2. Course Objectives
  3. Impact of other Domains on Agile Beginnings
  4. The Agile Conversation
  5. Working Agreements

Part 2: Agile Overview

You’ve heard it all before: “Agile means developing software without any documentation. Agile means developers decide on a product’s features. Agile is the same thing as Scrum.” Perhaps you’ve heard the most misleading concept of all: “Agile means we don’t do business analysis anymore.” Nothing could be more false.

Learn what Agile really is, what the variations and hybrids of Agile are, and how business analysis is critical to project success.

  1. Lean Beginnings
  2. Why Agile?
  3. Agile Manifesto & Principles
  4. Agile Practices

Part 3: Building an Agile Team

In Agile the Business Analyst has various possible roles from Voice of the Customer or Product Owner, member of the Customer side team, or member of the Development side team. In this section, we will explore how to create an effective Agile team with an Agile mindset and then see how the Business Analyst fits into this team framework and provides value.

  1. The Team as a System
  2. The Business Analyst

Part 4: Project Initiation

Agile follows an Adaptive, Just-in-Time planning model. In this section, we will learn how Adaptive Planning can better meet the customer’s needs and provide them more value with fewer resources by only elaborating requirements Just-in-Time.

  1. Five Levels of Planning
  2. Vision
  3. Themes & Roadmap
  4. User Roles and Personas

Part 5: Backlog Planning

The Agile vehicle of communicating requirements is the User Story. The Business Analyst is central in the process of writing and elaborating User Stories. This section will help the Business Analyst learn about User Stories and how to write and elaborate good User Stories.

  1. The Product Backlog
  2. Writing User Stories
  3. Guidelines for Good Stories
  4. Acceptance Criteria

Part 6: Managing the Backlog

After User Stories are written, they need to be prioritized and estimated. As part of the Customer side team, the BA has a major role in prioritization. As a member of the Development side team, the BA will contribute to User Story estimation. Both of these come with low cost, low waste techniques that allow us to do this quickly and get on to the important work of implementing requirements.

  1. Prioritization
  2. Estimating

Part 7: Release Planning

The Business needs to know when they will receive product deliverables. In this section, the Business Analyst will learn how milestones are set and how deliverables will be slated for a release with high confidence in meeting dates.

Part 8: Backlog Refinement

Backlog Refinement is where the Business Analyst is really worth their weight in gold. User Stories represent very thin statements of Customer wants and needs but they don’t contain the details until the development team is close to working on them. As the time to work on them approaches, the details need to be filled in and the Business Analyst is the central figure in requirements elaboration.

  1. Agile Documentation
  2. Requirements Elaboration

Part 9: The Iteration

When Requirements are ready to go – ready to go does not mean mountains of documentation. Much of the details are maintained as tacit knowledge with the Business Analyst and the others who have been involved with the Conversation. Continued collaboration is essential to turning what we’ve learned about the needs of the customer into working software. The Business Analyst is always there involved in answering real-time questions from the team.

  1. Iteration Planning
  2. Iteration Execution

Part 10: Inspect and Adapt

Agile is an Empirical Process for developing complex software. Essential to an Empirical Process is feedback loops. Feedback loops can be both formal and more informal. In this section, we will learn about the formal feedback loops that are built into the end-of-iteration timeframe for driving continuous improvement back into the process.

  1. The Iteration Review
  2. The Demo
  3. The Retrospective

Part 11: Agile Adoption

So you want to drive these concepts into your organization as you leave the class and go back to your work. This section will help you do that effectively.

Software Tester Certification Boot Camp

Part 1: Course and Exam Overview

  1. ISTQB and ASTQB overview
  2. Exam format
  3. Study and exam-taking tips
  4. Course flow and agenda topics
  5. Outline of the daily schedule (varies on day 3)
  6. Explanation of supplementary material

Part 2: Fundamentals of Testing

  1. Testing overview and key terminology
  2. Common testing principles
  3. Basic test process
  4. Psychology of testing
  5. Code of ethics
  • Interactive Session: Testing missions and test objectives
  • Pop Quiz: Seven testing principles
  • Interactive Session: Context drivers for testing

Part 3: Testing throughout the Software Life Cycle

  1. Software development models
  2. Test levels and test types
  3. Maintenance testing
  • Interactive Session: Understanding test impacts of software development models
  • Interactive Session: Illustrating verification and validation for better understanding
  • Interactive Session: Linking test levels with entry and exit criteria
  • Interactive Session: Compare and contrast black box and white box testing
  • Interactive Session: Understanding goals, targets, and issues within test levels
  • Interactive Session: Compare and contrast test types using examples

Part 4: Test Management

  1. Test organization
  2. Planning and estimation
  3. Progress monitoring and control
  4. Configuration management
  5. Risk and testing
  • Incident management
  • Pop Quiz: Understanding project constraints
  • Pop Quiz: Test team organizational structures
  • Pop Quiz: Driving more accurate test estimates
  • Pop Quiz: Choosing a test approach
  • Interactive Session and Pop Quiz: Performing risk assessment
  • Pop Quiz: Identifying incidents
  • Hands-on Exercise: Write an incident report
  • Hands-on Exercise: Perform a review session
  • Interactive Session: Developing oracles

Part 5: Test Design Techniques

  1. The test development process
  2. Specification-based techniques
  3. Structure-based techniques
  4. Experience-based techniques
  5. Selecting test techniques
  • Pop Quiz: Using specification-based techniques
  • Interactive Session: Review tests designed with equivalence partitioning
  • Hands-on Exercise: Use equivalence partitioning as a test design method
  • Hands-on Exercise: Use boundary value analysis to create tests
  • Interactive Session: Analyze and map out complex logic in requirements
  • Hands-on Exercise: Use a decision table to develop tests
  • Interactive Session: Walk through a state model
  • Hands-on Exercise: Use a state model to build tests
  • Pop Quiz: Use case basics
  • Interactive Session: Generate tests from use cases
  • Interactive Session: Analyze code flow with control flow diagrams
  • Hands-on Exercise: Develop structural tests for code and analyze coverage
  • Pop Quiz: Differentiate experience-based techniques
  • Pop Quiz: Choose a test technique

Part 6: Static Techniques

  1. Static testing techniques
  2. The review process
  3. Static analysis by tools
  • Review test sets to evaluate test design*
  • Perform a peer review and feedback session (these practice sessions are embedded elsewhere to perform reviews on real targets)

Part 7: Tool Support for Testing

  1. Types of tools
  2. Effective use of tools
  3. Introducing tools into an organization
  • Pop Quiz: Test frameworks
  • Pop Quiz: Understanding probe effect
  • Pop Quiz: Pros and cons of tools
  • Pop Quiz: Piloting a tool

Part 8: Course Wrap-up

  1. Exam tips, procedures, and guidelines
  2. Exam cram
  • Open review session
  • Practice exam review

At the conclusion of the software testing training course, you will have the opportunity to take the ISTQB™ Certified Tester —Foundation Level exam. The exam is held at 3:30 p.m. on the third day of the course. The ISTQB™ Certified Tester —Foundation Level certification exam is independently administered by the American Software Testing Qualifications Board, Inc. (ASTQB).

Effective User Acceptance Testing

Part 1: What UAT Is and Is Not

  • We will begin by describing how UAT differs from other software testing and how it fits into various software development lifecycles (including Waterfall and Agile). Along the way, we'll define a variety of key terms and identify the players.

Part 2: Understanding the Business Need

  • Business Need has many dimensions from correct computations to ease of use. We will explore each of those dimensions so you can ensure that your UAT addresses each of them in an appropriate way.

Part 3: What Could Go Wrong?

  • Of all the things we could test, which should we focus on? We will apply Risk-Based testing to focus our UAT where it will be most valuable.

Part 4: "U" is for User

  • Effective UAT includes testing from the standpoint of all of the users (both active and passive ones). We will discuss ways to identify all of the users and ensure that their viewpoints are included in our UAT.

Part 5: Incremental UAT

  • UAT is usually the final gate before deployment, but any problems found at that point in the project can be costly and time-consuming to correct. So we will introduce an incremental approach to UAT that can be integrated into any software development lifecycle (even Waterfall). This incremental approach enables you to identify issues earlier (when they are easier to fix), and reduces the likelihood of unpleasant surprises at the project's end.

Part 6: Preparing Test Data

  • Good tests require appropriate test data. We will discuss how to identify and prepare test data that will enable good Acceptance Testing. Along the way we will discuss the limitations, dangers and (in some cases) illegality of using production data for testing, and we will look at options for addressing those issues.

Part 7: The Acceptance Test Plan

  • As the old adage says, "Fail to plan; plan to fail." The plans for UAT will be different from those for other testing activities. We will provide guidance for UAT plans, including how to find the "sweet spot" of providing enough guidance to ensure effective and repeatable tests, while enabling the testers to exercise the system as they will use it after it is deployed.

Part 8: Performing UAT

  • Testing is more than just using a computer. We will provide guidance for how Acceptance Testers should operate while performing UAT. We will discuss following UAT plans as well as going beyond them to explore how the system works. We will also discuss evaluating test results, reporting issues and raising questions.

Part 9: "A" is For Acceptance

  • We will finish with a discussion of deciding if the system is acceptable or not. We will explore this both from each tester's perspective, and for UAT as a whole. Along the way, we will talk about "minor" defects, unresolved issues, and what it means for the system to be "good enough" in a particular context.

Agile Testing (ICP-TST)

Part 1: Agile Testing Mindset

Much like Agile itself, many of the Agile testing techniques where espoused well before the Agile Manifesto was created. But Agile testing is much different from testing performed during traditional software development approaches. This topic anchors the ideas of Agile testing in earlier work, while also providing insight into the major differences between Agile testing and testing performed as part of traditional (phased-based) software development.

The 12 Principles of the Agile Manifesto establish guiding principles for not only the Agile movement but Agile testing as a discipline. The Agile mindset includes: Quality is not “owned” by a particular role in Agile; Testers become facilitators of the team’s quality efforts; Agile testing provides critical insights and feedback into the software process. This topic helps learners understand how the Agile Manifesto is realized within an Agile testing process and approach, and to adopt the requisite Agile mindset.

  1. Overview of Agile Testing
    • Origins of Agile Testing
    • Agile Testing vs. Traditional Approaches
  2. Mindset & Culture
    • Agile Testing Principles
    • Whole Team Approach
    • Building Quality In
    • Continuous Improvement and Feedback
    • Ingraining The Agile Testing Mindset (Hands-on Exercise)

Part 2: Testing Techniques

Testing activities can be broken into various categories (or Quadrants) of testing based on their purpose and value. Automated testing can be performed at various levels (the automation pyramid) within a software application, and appropriate testing techniques must be applied to each. This topic provides the learner with a sound understanding of the purpose of various categories of testing, opportunities for automation, and testing techniques so they can be applied appropriately and at the right time within an Agile environment.

Developer testing of individual software units and associated components is critical to detecting implementation defects within the software. Unit and component tests are leveraged within TDD as well. This topic helps the learner to thoroughly understand the purpose and approach to successfully implementing unit and component testing on Agile projects and how testers support developer testing during development cycles.

Test-Driven Development (TDD) and its derivatives, Acceptance Test-Driven Development (ATDD), Behavior-Driven Development (BDD) and Spec by Example are techniques for assuring that Stories are implemented in a manner that satisfies the customers’ needs. This topic helps the learner to thoroughly understand the purpose and approach to successfully implementing these techniques on Agile projects.

Testing of User Stories is critical to successful development of software within an Agile project. This testing is often performed using the techniques above but can be done in other ways as is appropriate or necessary. This topic enables the learner to thoroughly understand the various options for testing User Stories during software development; this is an extension to ATDD to include boundary conditions and other types of testing such as exploratory testing.

  1. Categories of Testing
    • Agile Testing Quadrants of Categories
    • Automation Pyramid – Introduction
    • Testing Techniques
  2. Collaborating with Developers
    • Unit and Component Testing
    • Pairing Between Developer and Tester
  3. Example Driven Development
    • Acceptance Test-Driven Development (ATDD)
    • Behavior-Driven Development (BDD)
    • Spec by Example
  4. Feature and Story Testing
    • User Story Testing
    • Feature Testing
    • Exploratory Testing
    • Non-Functional Testing

Part 3: Agile Testing Process

Testing during an Agile project is team-oriented, so it is common for every member of the team to provide some level of testing support. This includes the Product Owner and other Business Representatives and the programmers in addition to the testers. This topic provides the learner with an understanding that within an Agile project, the entire project team is responsible for testing activities, with a specific focus on how this affects specific roles.

Lightweight planning and documentation are typical of Agile projects. The best Agile projects do just enough planning and documenting to support project activities and the needs of the end users. This topic provides the learner with an understanding of how lightweight test strategy and planning is performed on Agile projects, and how decisions are made regarding what type of test documentation, records, metrics, and reports are needed and how much is enough.

Agile projects employ a variety of techniques around the delivery of the product, including Time-boxed Iterations and Continuous Delivery, that all have a very strong focus on testing. This topic helps the learner to appreciate all of the various ways that testing is used in the “End-Game” activities (which don’t just happen at the end of the Agile project!)

Multiple environments are often necessary to support testing activities during iterations and the release process. This topic provides the learner with an understanding of the typical test environments that must be set up and maintained to support testing activities during iterations and releases and how the product must be managed as it progresses through those environments.

Distributed teams are a fact of life in most organizations and must be dealt with to make Agile testing initiatives successful. This topic provides the learner with an understanding of how communication and coordination of testing activities can be most effective on distributed teams.

  1. Roles and Responsibilities
    • Team-Based Testing Approach
    • Typical Business Representative Role in Testing
    • Typical Programmer Role in Testing
    • Typical Tester Role in Testing
    • Role of Test Managers in Agile
  2. Test Strategy and Planning
    • Different Strategies Based on Levels of Precision
    • During Iteration Planning/Kickoff
    • Lightweight Test Plan Documentation
    • Defect Tracking and Management
    • Results Reporting
    • Test Metrics
    • Regression Tests
  3. Successful Delivery
    • Time-Boxed Delivery
    • Continuous Delivery
    • Post-Development Test Cycles
    • Iteration Wrap-Up
    • Definition of a Release/End Game
    • User Acceptance Test (UAT)
    • System-Wide and Cross-Team Testing
    • Post-Release Testing
    • Documentation for Regulatory Requirements
  4. Test Environments and Infrastructure
    • Typical Environments for Test
    • Build Pipeline
    • Automated Builds
    • Testing the Proper Build
    • Test Data Management
  5. Working on Distributed Teams
    • Distributed Team Communication
    • Distributed Team Coordination