Key to developing successful software is understanding which business needs it must fullfill. The business analisys discipline offers a methodical approach to uncovering and assessing the current business architecture, and identifying potential improvements.
At the enterprise level, business needs are driven by the business model, which I recommend documenting in the organization’s enterprise architecture document.
It follows that the business discipline is essential to properly analyze and develop enterprise architecture, and that implementing new or modifying existing solutions means changing the current enterprise architecture.
Developing solutions to enable business model execution essentially boils down to designing and implementing applications (key resources) that enable processes (key activities).
Business analysis glues business and IT architecture together by focusing on the following elements:
Events triggers processes.
Calendars dictate recurring events like annual financial reporting and paying monthly wages.
Initiators initiate events, which require processes.
Processes define how we respond to events by performning one or more tasks. Processes enable one or more capabilities.
Capabilities are enabled by one or more processes.
KPIs define how we measure the quality of our processes.
Tasks are carried out by workers acting in a defined role.
Roles define responsibilities and required skills.
Workers assume roles when carrying out tasks in processes.
Groups organize workers, often based on their skills in particular disciplines.
Information needed as input and generated as output.
Use cases specify functionality in applications that are used in tasks.
Requirements suppliment use cases with requirements common to multiple use cases, as well as commercial requirements and business rules.
Applications provide the functionality used in tasks as specified in use cases.
Platforms run applications and store information.
Ideally, you should decompose the current enterprise architecture in these elements as a baseline before setting out to design a new solution. Establishing the baseline enables you to properly plan the transition to the new processes.