
- •Foreword
- •Preface the purpose of this book
- •Intended audience
- •Book organization
- •About b2t training
- •Chapter 1: Possess a Clear Understanding of Business Analysis overview
- •What is business analysis?
- •Business Analysis vs. Software Development
- •The Role of the Business Analyst
- •Business Analyst Traits
- •History of Business Analysis
- •Where Do Business Analysts Come From?
- •From it
- •Case in Point
- •From Business
- •Case in Point
- •Where Do Business Analysts Report?
- •Who makes a great business analyst?
- •Case in Point
- •Business Analyst Suitability (- відповідність) Questionnaire
- •Suitability Questionnaire
- •Answers
- •Business Analyst Career Progression
- •Key business analysis terms/concepts
- •What Is a Requirement?
- •Iiba Business Analysis Body of Knowledge® (babok®) definition of requirement:
- •Core Requirements Components
- •Why Document Requirements?
- •Why Do Requirements Need to Be Detailed?
- •High-Level Requirements Are Interpreted Differently
- •Many Analysts Only Use Text to Document Requirements
- •Complex Business Rules Must Be Found
- •Requirements Must Be Translated
- •Case in Point
- •What Is a Project?
- •What Is a Product?
- •What Is a Solution?
- •Case in Point
- •What Is a Deliverable?
- •System vs. Software
- •It Depends
- •Business analysis certification
- •Iiba babok®
- •Summary of key points
- •Bibliography
- •Chapter 2: Know Your Audience overview
- •Establish trust with your stakeholders
- •With whom does the business analyst work?
- •Executive or Project Sponsor
- •Case in Point: Giving the Sponsor Bad News
- •Project Manager
- •Why Does a Project Need a Project Manager and a Business Analyst?
- •Project Manager and Business Analyst Skills Comparison
- •Tips for Those Performing Both Roles
- •Other Business Analysis Professionals
- •Subject Matter Experts and Users
- •Getting to Know Your Subject Matter Experts
- •A Manager Who Does Not Understand His or Her Employees’ Work
- •When the Expert Is Not Really an Expert
- •When the Expert Is Truly an Expert
- •The Expert Who Is Reluctant to Talk
- •The Expert Who Is Angry about Previous Project Failures
- •The Expert Who Hates His or Her Job
- •Quality Assurance Analyst
- •When “qa” Is a Bad Word in Your Organization
- •Usability Professional
- •It Architect
- •Case in Point
- •It Developer
- •Case in Point
- •The Developer Who Is Very Creative
- •The Developer Who Codes Exactly to Specs
- •The Developer’s Industry Knowledge
- •Data Administrator/Architect/Analyst
- •Database Designer/Administrator
- •Stakeholder Analysis
- •Balancing stakeholder needs
- •Case in Point
- •Understanding the Political Environment
- •Working with dispersed teams
- •Physical Distance
- •Time Zone Differences
- •Nationality/Cultural Differences
- •Language Differences
- •Using Team Collaboration Tools
- •Using a Shared Presentation
- •Sharing a Document
- •Summary of key points
- •Bibliography
- •Chapter 3: Know Your Project
- •Why has the organization decided to fund this project?
- •Business Case Development
- •Case in Point
- •Project Initiated Because of a Problem
- •Case in Point
- •Project Initiated to Eliminate Costs (Jobs)
- •Project Initiated by Outside Regulation
- •Project Initiated by an Opportunity
- •Projects for Marketing or Advertising
- •Case in Point
- •Projects to Align Business Processes
- •Strategic planning
- •Portfolio and Program Management
- •How Does Your Project Relate to Others?
- •Enterprise Architecture
- •Business Architecture
- •The Organizational Chart
- •Locations
- •Swot (Strengths, Weaknesses, Opportunities, Threats)
- •Products
- •Information Architecture
- •Application Architecture
- •Technology Architecture
- •Case in Point
- •Security Architecture
- •Communicating Strategic Plans
- •Project Identification
- •Project initiation
- •Naming the Project
- •Initiation
- •Approach or Methodology
- •Statement of Purpose
- •Objectives
- •Problems/Opportunities
- •Stakeholders
- •Business Risks
- •Items Out of Scope
- •Assumptions
- •Scope of the Business Area
- •Scoping the Analysis Area Using a Context-Level Data Flow Diagram
- •Area of Study
- •High-Level Business Processes
- •Scoping the Analysis Area Using a Use Case Diagram
- •Project Initiation Summary Revisit Scope Frequently
- •Scope Creep
- •Summary of key points
- •Bibliography
- •Chapter 4: Know Your Business Environment overview
- •Case in Point
- •How does a business analyst learn about the enterprise?
- •Read the Company’s Marketing Materials
- •Read the Company’s Financial Reports
- •Review the Corporate Strategic Plan
- •Seeing things from the business perspective
- •Case in Point
- •Prioritizing Requests
- •Case in Point
- •How a business analyst learns the business: elicitation techniques
- •Review Existing Documentation
- •Case in Point
- •Observation
- •Case in Point
- •Case in Point
- •Interviews
- •Surveys and Questionnaires
- •Facilitated Sessions
- •Why Use a Facilitated Session?
- •Challenges for the Business Analyst as the Facilitator
- •Focus Groups
- •Competitive Analysis
- •Interface Analysis
- •Learn the current (as is) system
- •Case in Point
- •What is a business process?
- •Essential Analysis
- •Perfect Technology
- •No Storage Limitations or Constraints
- •Case in Point
- •Completely Error-Free Processing
- •Case in Point
- •No Performance Limitations
- •Technology Is Available at No Cost
- •Case in Point
- •Summary of Perfect Technology
- •Essential Business Processes
- •Case in Point
- •What Is the Difference between a Process and a Use Case?
- •Describing a Process
- •Seeing Things from the Top and from the Bottom
- •Implementation Planning
- •Training
- •Rollout Plan
- •Schedule
- •Metrics
- •Procedures/Organizational Changes
- •Summary of tips for learning your business
- •Summary of key points
- •Bibliography
- •Chapter 5: Know Your Technical Environment overview
- •Case in Point
- •Why does a business analyst need to understand the technical environment?
- •Understand Technology, But Don’t Talk Like a Technologist
- •Case in Point
- •What does a business analyst need to know about technology?
- •Software Development/Programming Terminology
- •Does a Business Analyst Need to Know How to Develop Software?
- •Software Development Methodologies
- •Methodology/Software Development Life Cycle
- •Waterfall
- •Planning Phase
- •Analysis Phase
- •Design Phase
- •Construction Phase
- •Testing Phase
- •Information Engineering
- •Joint Application Development/Design
- •Rapid Application Development
- •Iterative/Incremental Development Approaches
- •Object-Oriented Analysis and Design
- •Rational Unified Process
- •Agile Development Approaches
- •An Organization’s Formal Methodology
- •Why Don’t Most Methodologies Detail the Business Analysis Approach?
- •An Organization’s Informal Standards
- •Technical Architecture
- •Operating Systems
- •Case in Point
- •Computer Networking
- •Data Management
- •Relational Database
- •Structured Query Language
- •Software Usability/Human Interface Design
- •Software Testing
- •Case in Point
- •Software Testing Phases
- •Unit Testing
- •Integration Testing
- •System Testing
- •Regression Testing
- •Case in Point
- •User Acceptance Testing
- •Post-Implementation User Assessment
- •Working with it Communicating with Developers
- •When to Get it Involved in a Project
- •It Corporate Culture
- •Summary of key points
- •Bibliography
- •Chapter 6: Know Your Analysis Techniques overview
- •Case in Point
- •Categorizing and presenting requirements Collecting and Managing Requirements
- •What Is a Requirement?
- •Categorizing Requirements
- •Case in Point
- •Why Categorize Requirements?
- •Developing a System for Organizing Requirements
- •Iiba babok Categories
- •A Recommended Categorization System
- •Business Requirements
- •Functional Requirements
- •Technical Requirements
- •Core requirements components
- •Overview of Core Requirements Components Data (Entities and Attributes)
- •Processes (Use Cases)
- •External Agents (Actors)
- •Business Rules
- •Case in Point
- •Core Requirements Component: Entities (Data)
- •Core Requirements Component: Attributes (Data)
- •Attribute Uniqueness
- •Mandatory or Optional
- •Attribute Repetitions
- •Core Requirements Component: Processes (Use Cases)
- •Core Requirements Component: External Agents (Actors)
- •Internal vs. External
- •Core Requirements Component: Business Rules
- •Finding Business Rules
- •Analysis techniques and presentation formats
- •Glossary
- •Workflow Diagrams
- •Why Use Workflow Diagrams?
- •Entity Relationship Diagramming
- •Why Build a Logical Data Model?
- •Business Process Modeling with the Decomposition Diagram
- •Why Build a Decomposition Diagram?
- •Use Case Diagram
- •Use Case Descriptions
- •Why Use Use Cases?
- •Case in Point
- •Prototypes/Simulations
- •Why Use Prototypes/Simulations?
- •Other Techniques Event Modeling
- •Entity State Transition/uml State Machine Diagrams
- •Object Modeling/Class Modeling
- •User Stories
- •Traceability Matrices
- •Gap Analysis
- •Data Flow Diagramming
- •Choosing the Appropriate Techniques
- •Using Text to Present Requirements
- •Using Graphics to Present Requirements
- •Using a Combination of Text and Graphics
- •Choosing an Approach
- •Case in Point
- •Business Analyst Preferences
- •Case in Point
- •Subject Matter Expert Preferences
- •Case in Point
- •Developer Preferences
- •Project Manager Preferences
- •Standards
- •Case in Point
- •As is vs. To be analysis
- •Packaging requirements How Formally Should Requirements Be Documented?
- •What Is a Requirements Package?
- •Case in Point
- •Request for Proposal Requirements Package
- •Characteristics of Excellent Requirements
- •Getting Sign-Off
- •Requirements Tools, Repositories, and Management
- •Summary of key points
- •Bibliography
- •Chapter 7: Increase Your Value overview
- •Build your foundation Skill: Get Started
- •Skill: Think Analytically
- •Skill: Note Taking
- •Technique: Brainstorming
- •Skill: Work with Complex Details
- •Case in Point
- •How Much Detail? Just Enough!
- •Case in Point
- •Time management Skill: Understand the Nature of Project Work
- •Skill: Work on the Most Important Work First (Prioritize)
- •Case in Point
- •Technique: Understand the 80-20 Rule
- •Technique: Timeboxing
- •Build your relationships and communication skills Skill: Build Strong Relationships
- •Skill: Ask the Right Questions
- •Case in Point
- •Skill: Listen Actively
- •Barriers to Listening
- •Listening for Requirements
- •Skill: Write Effectively
- •Case in Point
- •Skill: Make Excellent Presentations
- •Skill: Facilitate and Build Consensus
- •Skill: Conduct Effective Meetings
- •Prepare for the Meeting/Select Appropriate Attendees
- •Meeting Agenda
- •Conducting the Meeting
- •Tips for Conducting Successful Meetings
- •Follow-Up/Meeting Minutes
- •Skill: Conduct Requirements Reviews
- •How to Conduct a Review
- •Step 1. Decide on the Purpose of the Review
- •Step 2. Schedule Time with Participants
- •Steps 3 and 4. Distribute Review Materials and Have Participants Review Materials Prior to the Session
- •Case in Point
- •Step 5. Conduct the Review Session
- •Steps 6 and 7. Record Review Notes and Update Material
- •Step 8. Conduct a Second Review If Necessary
- •Typical Requirements Feedback Corrections
- •Missing Requirements
- •Unclear Sentences
- •Scope Creep
- •Keep learning new analysis techniques Technique: Avoid Analysis Paralysis!
- •Technique: Root Cause Analysis
- •The Five Whys
- •Case in Point
- •Skill: Intelligent Disobedience
- •Continually improve your skills
- •Skill: Make Recommendations for Solutions
- •Understand the Problem
- •Imagine Possible Solutions
- •Case in Point
- •Evaluate Solutions to Select the Best
- •Skill: Be Able to Accept Constructive Criticism
- •Case in Point
- •Skill: Recognize and Act on Your Weaknesses
- •Technique: Lessons Learned
- •Business analysis planning
- •Technique: Map the Project
- •Examples of Mapped Projects
- •Skill: Plan Your Work
- •Technique: Assess Business Impact
- •Case in Point
- •Factors That Determine Business Impact
- •Case in Point
- •Technique: Conduct Stakeholder Analysis
- •Technique: Plan Your Communications
- •Skill: Choose Appropriate Requirements Deliverables
- •Skill: Develop a Business Analysis Task List
- •Skill: Estimate Your Time
- •Summary of key points
- •Bibliography
Why Use Use Cases?
The use case diagram is part of UML (see Chapter 5). It is a simple diagram for stake-holders to review and can help to ease the communication between business stakeholders and technical stakeholders. Like many analysis techniques, this one appears much more simple and straightforward than it is. The resulting diagram is not as important as the discussions and decisions that are made during its development. This is a great technique to use with business stakeholders, specifically decision makers, because it requires decisions about how people (actors) will work with the software. A simple line on this diagram between an actor and a use case could completely change a business person’s job. It may necessitate job description changes, responsibilities changes, and new procedures.
Use case descriptions—especially the primary and alternate paths—are great for brainstorming with software users about design options. Working through the specific interactions between the user and the software helps design a system that more accurately mirrors the natural workflow of the user. Even when the team thinks it has a consistent vision of the solution, writing down these specific steps/interactions points out different views and allows decisions to be made before coding begins.
In addition to changing a person’s job, design decisions often change external interfaces also. With almost universal access to the Internet, many organizations are putting more functionality in the hands of their customers. The customer is an actor whose role is changing significantly. Customers do not have job descriptions or procedure manuals.
They are not paid by an organization to do work. Be aware that shifting an interaction with software from a business worker to the customer is a significant change. It has occurred with banks (ATMs), retail stores (credit card scanners), order processing (over the Internet), and many customer service departments (voice prompt phone systems). Turning the processes of the organization over to the customer requires that the processes be very well defined and the software automation be extremely usable and intuitive. When the customer becomes your actor, new procedures need to be developed to support this actor. Employees shift their focus from the original process to answering customer questions and helping the customer navigate the technology.
|
Case in Point
I discovered the value of use case descriptions when designing a Web order processing system. Some team members assumed that customers would be required to log in before browsing the product catalog. The marketing stakeholders disagreed. They wanted to allow anyone to browse products without having to set up a login ID. This difference of opinion was discovered on the first step of the use case description: order product.
|
|
Prototypes/Simulations
A prototype is a model of a user interface in an automated system. It may be a screen layout, report layout, or data entry form. It is built as part of a software design to show the stakeholders what the software will “look like.”
When a proposed solution (to be) involves the addition of or update to an online screen, analysts often create a prototype that shows the screen design, along with a storyboard or simulation that demonstrates how the screen interacts with other screens.
Along with the prototype, functional requirements must include a description of how data entry fields are edited and validated, along with business rules that should be enforced for users of the screen. Warning messages, error messages, and other informational text to be displayed must be specified by the BA in conjunction with the SME. Messages written by developers often are not understandable to business users.
A storyboard shows a series of screens and how the software user should be able to navigate between them. See Figure 6.7 for an example of a storyboard diagram created using the iRise Studio™ simulation tool. Each rectangle on the diagram represents a screen and has an associated screen design.
Figure
6.7: Sample
Storyboard
A screen layout can be created using a simulation tool like iRise, a development tool like Microsoft Visual Studio®, a graphic design tool like Microsoft Visio, or simply on paper. The design should show data fields in their relative positions, field length, field labels, text boxes, menus, selection buttons, etc. The more detailed the prototype, the more accurate the requirement and the faster the reviews and development. See Figure 6.8 for an example of a screen layout.
Figure
6.8: Sample
Screen Layout
Simulation means “something that looks or acts like something else.” Simulating a screen or series of screens allows the user to actually enter data on screens, click on menus and selection fields, navigate between screens, etc. It mimics the desired online functionality to confirm requirements with the SMEs and provide clear specifications to the developers.
Report layouts are similar to prototypes in that they show how software will interface with a user. The report layout specifies how data from the database will be presented to users, including formatting, column headers, and pagination. Report layouts are excellent communication tools for developers because they specifically show the end product expected by the user. Report layouts are accompanied by descriptions of the calculations, summarizations, etc., along with the names of the database tables and columns to be used.
Prototyping is such an effective requirements analysis and presentation technique that it is used on most software development projects. Even a simple screen change can be implemented incorrectly without a clear visual requirement. There are a few cautions when using prototypes. The first caution is not to create or present prototypes too early in a project. Business requirements should be clearly understood first, and the analyst should be sure that a software solution, specifically an online screen, is the most appropriate approach to answering the business need. When users start reviewing a prototype, they can get very distracted with its aesthetics and forget to review it for core business requirements. Prototypes may be presented early in a project when business stakeholders don’t have any idea about what their potential solution might look like or when the team is working on the feasibility of an idea.
The second caution is to be careful not to set unrealistic stakeholder expectations. When a user sees a prototype on a computer screen, he or she may believe that the application is complete and functional. The user may assume that the project is nearing completion and anticipation may rise. BAs must be sure to clearly explain that the prototype is simply a picture or mock-up of the final software. An analogy would be the Hollywood house. When moviemakers need a particular style of home or building for a scene in a movie, they build a façade that looks exactly like the building in the story. But if you were to walk through the front door, you might see two long poles propping up the façade, with no ceiling or walls. This is a good description of a prototype.
Finally, a third caution relates to the application software development. Prototypes built by developers are often considered “quick and dirty.” They often do not follow enterprise coding standards or best practice software development principles. They are intended to be used as requirements deliverables and then thrown away. They are not production-quality software. Once the requirements have been approved, the development team should build the software based on the requirements using the standard tools and best practices expected. It may be tempting to use the prototype as a starting point for the software development because it would appear to save time, but when the prototype is used to finish the application, the resulting software is often poorly structured and difficult to maintain. Imagine building a real house around the Hollywood façade. Walls would be forced to fit into a front that wasn’t designed as a part of the whole (van Duyne et al., 2006).