Architects need to gather all of the following information before work can begin on a software solution:
- What Architectural Components are comprised by the legacy solution? What are the weaknesses of this system? What elements of this system can be reused or repurposed in the new solution? To what extend is the new solution dependent on reuse of existing Architectural Components?
- Does the solution need to be portable to other architectures?
- What are the stated requirements of the future solution? Do the stakeholders anticipate needs and opportunities that will exist in the future? Should these needs and opportunities factor into the new solution?
- How critical are performance, stability, interoperability with existing systems, security, and cost of ownership? If needs compete or prove to be incompatible, which of these non-technical requirements can be sacrificed?
- How many people will use, manage, and maintain the solution? Are these people geographically dispersed? Are any of these people outsourced staff who express a business culture different from that of the primary Enterprise? Is the solution a good fit for the capabilities expressed by all involved?
- Can additional Architectual Components be acquired as needed? Can the solution actually be deployed given the available resources?
- Could the addition of new Architectural Components cause instability in the host environment due to poor compatibility with existing Components?