Building an enterprise architecture and all the solutions it consists of, requires proficiency in several distinct disciplines:
- Planning, monitoring and control
- Business analysis
- Technical writing
Regardless of the titles the people you work with have, collectively you need to cover these disciplines well. Otherwise, something important isn’t going to get done at all or will be done poorly, causing delays and increased costs.
It’s entirely possible for a single person to cover all these disciplines alone, but achieving results will most likely take longer. However, most people specialize in one or a few of the disciplines, and since it’s always urgent to achieve results, most work is done by project teams.
Planning, monitoring and control is usually the responsibility of a project manager, often assisted by technical project managers, test managers, architects, team leads, project coordinators, scrum masters.
Business analysis is done by people with title like business analyst, business developer, systems analyst or business architect.
Architecture should be handled by an enterprise or solution architect. In reality, many projects either don’t have an architect at all, or have too many (technical architects, infrastructure architects, microservice architects – the list is endless). Or the project manager creates a one-page presentation which then becomes the architecture.
Development involves writing code, but also developing detailed design first (adhering to the defined architecture), and not only detailed design of the code structure, but also design of user interfaces, database structures and lots of other aspects of the solution. So, in addition to developers, the project may include user experience designers, graphical designers (or artists), process designers (or business developers who design processes) and tooling experts.
Technical writing is done by technical writers who are trained in writing clear and unambiguous online help and user manuals.
Testing is planned by a test manager and test cases are designed, written and executed by a test manager or by testers (under the guidance of a test manager).