One of a software architect's roles is to translate business needs into software and to verify that a running software satisfies business needs. It is obvious that in order to translate between two different languages, one must know both languages to a satisfying level. Is this also the case with software architects? As most software architects rose from the software world, how important is it that those architects also speak “business” fluently? When building the software architecture group in my company, we had to answer this question while considering the required knowledge, experience, and training program for software architects.
One challenge that we frequently face is how to efficiently translate business needs to running software, specifically in projects that involve many nontechnical stakeholders. The software architects’ ability to understand the business environment and to identify lacks in the alignments between software requirements and business drivers is essential. This ability requires extracting business-related information and using it as part of software architecture processes, such as QAWs and ATAMs.
When facing the business world, the software architect meets new terms, models, and mindsets. The ability of a software architect to understand models such as strategic differentiation, levels of product, and segment invasion strategy helped us bridge the gap between those two worlds. In this presentation, we share these experiences and ideas, through which understanding business terms, models, and methodologies can assist software architects to achieve their goals more effectively.