Since the overall goal of Inception is to determine whether it makes sense to continue with the project, you need to make sure that there is at least one potential architecture that will allow you to build the system with a sensible amount of risk and at reasonable cost. As an example, you may consider three options for a client/server architecture (see Figure 6.3). By analyzing desired functionality (in the first version, as well as future versions of the application), compatibility with other applications, and requirements on operations and maintenance, you may conclude which of these three options are viable . As you explore options, ask the following questions:
Figure 6.3. Three Options for a Client/Server Architecture. During Inception, identify the type of architecture you intend to have and make implementations of necessary elements to the architecture to understand what risks you are facing . Here you see three options for a client/server architecture, each with vastly different requirements for tooling, competency, and complexity, and with different ability to address existing and future requirements on functionality, operation, and maintenance cost.
In some cases, you may need to acquire or implement some key elements of the architecture, or different suggested architectures, to better understand the risks you are facing and the options you have. For applications where stakeholders might find difficulty envisioning the end product, you should also spend time on implementing some functional prototypes , sufficiently rich to verify that the Vision makes sense. At the end of Inception, you should have a rough idea of what risks you are facing, especially in the areas of acquisition of technology and reusable assets, such as architectural framework, packaged software, and so on. During Elaboration, you may come up with a better architecture, and that is fine. It is during Elaboration that you will address the vast majority of the architecture- and technology- related risks you identified during Inception. For each of our three example projects, you do the following:
|