Skip to content

Developing business acumen

Practice · Chapter 3

  • Deep technical knowledge is necessary but not sufficient. A technically impressive system is worthless if it does not meet its goals.
  • To design an appropriate architecture you must understand the business problems being solved and the business opportunities being pursued.
  • Business acumen is what separates a good architect (technical knowledge only) from a great one.

When designing, balance the goals of three focus areas that overlap and impact each other:

Focus areaConcern
BusinessThe organization’s objectives (e.g. time to market, ROI)
UsersWhat users need to accomplish their tasks
Software systemTechnical goals and quality attributes
  • Goals frequently conflict. Example: an aggressive time-to-market business goal can starve requirements analysis and QA, hurting user goals.
  • The architect’s job is to find an acceptable balance among competing goals.
  • Understanding business language gives you a common vocabulary with the varied stakeholders you interact with.
  • Useful general knowledge areas: finance, operations, management, and marketing.
  • Decisions are made on ROI and cost-effectiveness analysis of alternatives — grasp these to add value to the discussion.
  • Ways to acquire it: formal education, free/online classes, or reading books on the relevant topics.

Understanding your own organization’s business

Section titled “Understanding your own organization’s business”

Go beyond general knowledge and study your specific organization:

  • Products and services — what they are and the value they provide customers.
  • Revenue model — how the organization actually makes money.
  • Business processes — invest time to understand them.
  • Market and trends — the environment the organization operates in.
  • Competitors — what they do differently, what is similar, their strengths and weaknesses.
  • Customers (most important) — what their business does, how they use your products, and why they chose you over a competitor.

Mastering business, market, products/services, and customers puts you on the path to fully understanding the organization’s domain (see Domain-driven design).

  • Software Architect’s Handbook (Packt, 2018), Ch.3 “Developing business acumen”, pp. 138-140.