BA Best Practices & Advanced Topics
BA Best Practices & Advanced Topics
The purpose of the RTM is to help ensure the object of the requirements conforms
to the requirements by associating each requirement with the object via the
traceability matrix.
A traceability matrix is used to verify that all stated and derived requirements are
allocated to system components and other deliverables (forward trace).
The matrix is also used to determine the source of requirements (backward trace).
Requirements traceability includes tracing to things other than software that
satisfy the requirements such as capabilities, design elements, manual operations,
tests, etc.
The traceability matrix is also used to ensure all requirements are met and to
locate affected system components when there is a requirements change. The
ability to locate affected components allows the impact of requirements changes
on the system to be determined, facilitating cost, benefit, and schedule
determinations.
Traceability Strategy
The extent of the RTM depends on what will be managed. Considerations include
contractual requirements, risk, and overhead costs relative to the budget. The
traceability strategy is devised by graphing relationships between work products.
Conduct a proof of concept for your strategy using your selected RM tool.
Software is developed in stages, each with work products that can be associated
with work products of the previous stage, creating the ability to trace from the
requirements through the work products and from the work products back to the
requirements. What work products are required depends on the organization's
standards and development practices. In general:
The need (requirement) for a new system or modification to the current system is
identified. The need is analyzed to further define the requirement.
A feasibility study should be performed to answer questions in more detail such
as: what needs to be done, what is the value of doing it, what business goals are
supported, how it can be done, what are the alternatives, and what are the risks.
The results are documented in a business case. Requirements at this stage are
insufficiently detailed to build or modify a system.
A project may then be initiated based on the selected alternative from the business
case. Ideally, the requirements traceability matrix (RTM) is started now. The high
level requirements are linked to the business goals. As work products are created
throughout development, the RTM will be updated to provide full traceability.
The requirements are analyzed to ensure they are complete, consistent, testable,
and feasible within budget and technical constraints. The requirements are also
reviewed to eliminate redundancy. Acceptance criteria for each requirement are
developed. A draft system specification is produced.
Design, code, test, manuals, and other work products are developed in accordance
with the requirements. As they are developed, work products in the functional
baseline may be updated or modified in accordance with the organization's
configuration management process. Traceability is used throughout to verify that
goals and requirements are being met.
Traceability requires unique identifiers for each requirement and product. Numbers for
products are established in a configuration management (CM) plan.
Traceability ensures completeness, that all lower level requirements come from higher
level requirements, and that all higher level requirements are allocated to lower level
requirements. Traceability is also used to manage change and provides the basis for test
planning.
Sample Traceability Matrix -The examples show forward and backward tracing
between user and system requirements. User requirement identifiers begin with "U" and
system requirements with "S." Tracing S12 to its source makes it clear this requirement is
erroneous: it must be eliminated, rewritten, or the traceability corrected.
For requirements tracing and resulting reports to work, the requirements must be of good
quality. Requirements of poor quality transfer work to subsequent phases of the SDLC,
increasing cost and schedule and creating disputes with the customer
Traceability Template
9. Open Defects
Learn and use the vocabulary of the application domain, rather than forcing your
customers to understand computer jargon.
Include business terms in a project glossary, which should become part of the
requirements documentation.
Focus discussions with users on the tasks they must perform with the systems and
their use cases.
Ask for examples of likely user goals, which will serve as the starting point for
capturing scenarios you can use to develop accurate functional requirements.
Don’t be afraid to ask for clarification; customers shouldn’t expect every analyst
to be an application domain expert.
You might explain that you are not completely familiar with the customers
business and that is why you don’t fully grasp what they are describing. This
approach sometimes makes customers more willing to help because they can see
that you are making a real effort to understand their problems.
Writing documents that customer representatives can understand and verify, while
un-ambiguously conveying precise functional and nonfunctional requirements to
the developers, is a tightrope walk. A single requirements document might not
meet both needs
Most projects that suffer from scope creep do so because the intended scope, the
boundary between what is in and what is out, was never documented.
Begin your exploration of new systems requirements by defining the ultimate
vision of what the product or application will be and do.
You might suggest a suitable template for a vision and scope document or a
marketing requirements document and work with those who hold the vision to
help them describe it.
Because the team probably won’t implement the end result right off the bat,
define the scope of the first release as a subset of the final product.
Describe a growth path from the initial release toward realizing the ultimate
vision through a series of staged releases.
Another aspect of beginning with the end in mind is to focus the early
requirements discussions on the tasks users need to accomplish with the system.
However, much code gets written to handle exceptions, so you should also search
for possible error conditions that could arise and decide how the system should
respond.
Sometimes users don’t fully appreciate the capabilities that developers could
provide, and they get excited when you suggest functionality that will really make
the system useful. When users truly can’t express what they need, perhaps you
can watch them work and suggest ways to automate appropriate portions of the
job.
Analysts can often think out of the box that limits the creativity of people who are
too close to the problem being solved. And be careful to avoid gold-plating. Don’t
add extra functionality that just seems cool.
Analysts must work with customers to define the priorities for requested product
features, so the team can build the most critical functionality first. All customers
will claim that their requirements should have the top priority.
Defining business requirements early in the project will clarify the prospective
benefits for both customers and the developing organization.
The participants also need to be honest about functionality costs and project
constraints. If you think the customers cost or schedule expectations are
unrealistic, tell them so and explain your reasoning.
Considering the costs will help the stakeholders make sensible business decisions
to achieve the maximum value within the existing resource, time and technology
constraints.
It’s not unusual for an analyst to solicit input from users only to be told, "I don’t
have time to talk to you. You should know what I need." However, software
success is most likely to occur when the analyst can forge an effective
collaborative relationship with key customer representatives
The vision and scope document will help you identify the right users to talk to. It
also gives the user representatives a clear understanding of what the project is
trying to achieve.
Insufficient user involvement is well established as a leading cause of software
project failure. Point this out to recalcitrant users or managers who don’t want to
spend time on requirements discussions.
You can’t afford to keep rebuilding or discarding systems that don’t measure up
because the user’s needs weren’t sufficiently understood.
Habit #6: Hone Your Skills. - The requirements analyst provides the essential function
of bridging the understanding and perspective gap that lies between customers and
developers. A competent analyst must combine communication, facilitation and
interpersonal skills with some technical and business domain knowledge. The following
capabilities are particularly important:
Listening skills, to understand what people say and to detect what they might be
hesitant to say;
Requirements for a software product aren’t just lying around waiting for someone
wearing a hat labeled "analyst" to collect them. At best, requirements exist in the minds
of users, visionaries and developers, from which they must be gently extracted and
massaged into a usable form. Often, they need to be discovered with guidance from a
talented analyst, who helps users understand what they really need to meet their business
needs and helps developers satisfy those needs. Few project roles are more difficult than
that of requirements analyst. Few are more critical.
GAP ANALYSIS
CONFIGURATION MANAGEMENT
CM establishes and maintains the integrity of work products throughout their life.
Elements of CM include:
CM plan
Change coordination
Configuration identification
Configuration control
Configuration auditing.
CM plans establish and document the requirements, standards, practices, and procedures
for configuration management. This includes defining baselines and establishing the
labeling scheme for configuration items.
A baseline is a group of configuration items (products, deliverables) developed during a
specific phase of the development process that has been formally accepted. Once the
baseline is established, changes to the items can only be done through a formal change
process. There are five baselines typically used in system development: functional,
allocated, design, product, and operational. The functional baseline may contain an initial
investigation baseline, a feasibility study baseline, and a requirements definition baseline.
Change Control - Change control is the process for incorporating changes to the product
and project. The change control process ensures that changes are authorized, documented,
and coordinated.
Changes or enhancements are periodically incorporated into software and released as new
versions or interim changes. Version description documentation (VDD) is prepared to
describe new versions and interim changes to the software. The VDD documents:
Other information such as how to install the software and known errors
The first phase in the cycle is the execution of a risk assessment. The objectives of the
assessment are to:
Risk Management
Risk management is about identifying risk, assessing the impact on your business if a
security incident occurs, and making the right financial decision about how to deal with
the results of your assessment. It also includes the implementation of a program to
continually measure and assess the effectiveness of existing safeguards in protecting your
critical assets. Managing risk is not a one-time activity; it’s an ongoing process.
Determining how to manage the identified risk is next. After you’ve calculated risk
scores, they should be sorted from highest to lowest. This allows you to address the
highest risks to your information assets first. There are essentially four ways to deal with
each risk:
Transfer the Risk – An alternative to accepting higher than reasonable risk when
the cost of controls is too high is to purchase insurance to lower the business
impact of an incident. This is also a common risk management step.
Processes
There are following processes which are part of Project Scope Management.
Scope Planning
Scope Definition
Scope Verification
Scope Control
Product Scope: The features and functions that are to be included in a product or
service.
Project Scope: The work that must be done in order to deliver a product with the
specified features and functions.