Requirements discovery is the process of distilling business needs into capabilities desired from an end solution. Requirements discovery leads to technology strategy definition and eventually, into solution perspectives such as solution architecture, solution strategy and quality attribute concerns. Constraints Analysis involves identification of parameters, whether business or technical, that bind or influence architecture decisions.
The process of requirements discovery broadly involves elicitation of functional and non-functional requirements from business needs. A business or enterprise architect’s role in requirements discovery is wider and broader in terms of scope, responsibility and, nature and stage of engagement. An architect may participate in an earlier needs assessment phase to determine broader scope of business concerns and elicit information that will help determine a suitable technology strategy from multiple options. The nature of business concerns will not be limited to problems addressable by technology solution but also include considerations such as investments, ROI (Return on Investments), business case, timelines, priorities, risks and solution strategies potentially involving an eco-system of internal and external stakeholders (e.g. technology providers). Architects involved in the assessment or business technology strategy definition phase may have to work with very high level requirements, potentially abstract or “what-if” scenarios, feasibility concerns and forward looking assumptions. The general techniques for requirements discovery at this stage employ short bursts of scoping and validation through collaborative engagement sessions such as discovery workshops where all stakeholders are involved.
After the strategy is defined and approved, Business and Technology architects will continue to engage in the process with all stakeholders during inception, elaboration and validation phases of a solution. An architect’s role in the solution lifecycle is to view requirements in the context of operating scenarios and identify architecture requirements that will drive the design of the desired solution. The traceability between requirements and architecture is also an architect concern. Several standard methodologies, frameworks, artifacts and tools exist that aid the discovery and capture of requirements.
Architects should thus be familiar with requirements discovery both, in the context of business goals and underlying architecture concerns.
Architects should also identify and elicit constraints that bind architecture concerns. Constraints emanate from a broad spectrum of requirements related to business as well as technology. Business related constraints arise from factors such as regulatory requirements, characteristics of the business and available resources for implementation. Technology related constraints arise from factors such as available technology, enterprise framework and standards, quality attributes, conflicts with respect to other requirements, and, anticipated life of the solution.