Software architecture is a key enabler of business strategy, and it must provide value. What guidelines exist for the business-oriented software architect, and how do they correlate with an Agile business model? Business involves a number of dimensions that the architect must understand, including negotiations, risk management, business analysis, and communication skills. But more importantly, the architect must be able to align the business strategy with the software architecture. He or she must document the architecture in a way that shows how the system context derives from the business context. Typically, though, the requirements documents gathered from stakeholders do not capture the quality attributes well enough.
To overcome this constraint, architects must evaluate the architecture by engaging stakeholders early in the software development process, negotiating the system’s priorities, and making tradeoffs. Scenario-based techniques like the Architecture Tradeoff Analysis Method (ATAM) provide one of the most general and effective approaches for achieving this. But to attain true business agility, a combination of the ATAM and the service-oriented architecture (SOA) pattern is suggested. The SOA pattern applies defined business functionalities built as software components to create interoperable services. SOA provides a well-designed interface protocol for integrating different services that are flexible enough to anticipate future change, a key feature for business agility. The role of software architects must not be limited to the technicalities of designing the software alone. This presentation suggests a method for architecting Agile businesses using the architecture practice at Konga, an African e-commerce company, as a case study.