Application Visioning
- Application Visioning
- the
requirements engineering
task during which the
customer organization’s vision of an
application
is produced and documented
As illustrated in the preceding figure, Application Visioning is part of the following inheritance hierarchy:
- Type: Abstract
- Superclass: Visioning
- Subclasses: None
The typical responsibilities of Application Visioning are to:
- Form a consensus regarding the customer
organization’s vision of an application among its
stakeholders.
- Determine and document an application’s:
- Definition Mission
- Business Problems and Opportunities
- Major Stakeholder Needs
- Business, Functional, Data, and Quality Goals
- Constraints
- Lay a foundation on which the requirements of an
application can be built.
Application visioning can typically begin when the following
preconditions hold:
Application visioning is typically complete when the
following postconditions hold:
Application visioning typically involves the
requirements team performing the following steps in an
iterative, incremental, and parallel manner:
- Read and understand the relevant documentation:
- Identify and interview major stakeholders:
- Produce a formal definition of the application.
- Determine and document the mission of the
application.
- Determine and document the business problems the
application is intended to solve and the business
opportunities that the application is intended to take
advantage of.
- Determine and document the needs of the major
stakeholders.
- Determine and document the overall goals of the
application:
- Business Goals
- Functional Goals (a.k.a., desired
feature set)
- Data Goals
- Quality Goals
- Determine and document the top-level constraints on the
application:
- Business Rules
- Business Constraints
- Data, Hardware, and Software Constraints
- Industry Standards
- Legal and Regulatory Constraints
Application visioning can typically be performed using the
following techniques:
-
Documentation Studies.
Study all documentation (e.g., customer analysis,
market analysis, technology analysis, user analysis) that may
provide valuable input to the application vision
statement.
-
Interviews.
Interview the customer representatives, marketing
representatives, user representatives, and business domain
experts.
-
Brainstorming.
Brainstorm informal lists of business problems and
opportunities, stakeholder needs, and application goals.
-
Cross Functional Teams.
Use a cross-functional requirements team including
multiple
roles to perform application visioning.
-
Incremental development.
Incrementally envision the application.
-
Iteration.
Iterate the application vision statement.
-
Parallel Development.
Envision the application in parallel with:
- Other requirements engineering tasks (e.g.,
requirements elicitation, requirements reuse, requirements
analysis, requirements management).
- Other activities (e.g., management).
-
Timeboxing.
Timebox the application visioning so that new
increments of application goals are available at regular
intervals for driving the requirements elicitation, reuse,
analysis, and specification tasks.
Application visioning typically results in the production of
the following work products:
- Application visioning is definitely required for
application development projects.
- Some level of application visioning is usually needed to
provide a foundation for the eliciting the
application’s requirements.