Create a small team to define the initial architecture
Create a small team of people that work well together to define the initial architecture, in such a way that the team between them covers the expected partitioning of the system. Team members should be responsible for their own part of the whole, and work together to achieve a coordinated overall architecture.
The entire organization will need to accept the architecture. The more people that are involved in the architecture, the better chance one has of the results being accepted by all. However, the more interests involved, the more difficult it is to come to agreement in the first place. The team should cover all relevant viewpoints between them; yet avoid the ‘designed by committee’ effect. Thus aim for a coherent whole, but have a single architect for each of the parts making up the whole. The initial makeup of the team is important, it is necessary to predict which viewpoints need to be covered and choose team members accordingly – see also DiverseGroups and ArchitectAlsoImplements for pointers to team makeup. For the ongoing architectural responsibilities, see ArchitectControlsProduct.