After completing the physical specifications for the solution, deployment, maintenance plan, and data model, you should verify that you met Microsoft standards. Does Your Physical Design Meet the Business Requirements for PASS MADE?In Chapter 4, "Gathering and Analyzing Operational and Infrastructure Requirements," you learned about the eight dimensions that Microsoft points out as key to any successful solution. To make them easier to remember, the acronym PASS MADE was assigned. In the following sections, review your proposed physical design and see whether it conforms to these requirements. Does the Physical Design Support Your Performance Requirements?Have you done all you can to increase overall performance of the application? Users will judge performance based on responsiveness. To increase responsiveness, you should have performed the following (where applicable):
Does the Physical Design Support Your Availability Requirements?Have you guaranteed availability through best-practices design? Is the application reliable enough to be in a production environment? To guarantee a production-worthy application, you should implement the following (where applicable):
Does the Physical Design Support Your Security Requirements?Have you secured your application against interception of transfers and user attacks? Does the application pose any security threats to your network? To limit the risk of a security breach, the following measures should be implemented:
Does the Physical Design Support Your Scalability Requirements?What happens when you triple the load? You can prove scalability by performing load tests and identifying bottlenecks in the application. The following items address the scalability of your solution:
Does the Physical Design Support Your Maintainability Requirements?Have you met all maintenance objectives to ensure that the solution can be easily maintained after deployment? The following items address the maintenance of your solution:
Does the Physical Design Support Your Accessibility Requirements?Have you met your accessibility requirements for all clients? Clients can be anyone who uses your software or consumes your objects. The following items address the accessibility of your solution:
Does the Physical Design Support Your Deployability Requirements?Have you devised a plan to meet your deployment requirements? Can you deploy the application to your chosen destination smoothly without performing obscure nonbuilt-in tasks? The following items address the deployability of your solution:
Does the Physical Design Support Your Extensibility Requirements?Have you considered how your solution will be extended in the future to support enhancements and bug fixes? Can you implement new functionality without breaking previous versions? The following items address the extensibility of your solution:
Validating Against Usage ScenariosDoes the proposed physical design fit all usage scenarios that you are required to support? The solution was designed with target users in mind. Chapter 3, "Gathering and Analyzing User Requirements," discussed making use cases for your primary user group. Have you met the needs of everyone in your use cases? For example, if the client needs a platform-independent user interface and you provided an XML Web Service, you have failed to understand the client's needs. You must also watch out for requirements that might not seem so obvious. For example, even if only 5% of your user base does not accept cookies, you should not use cookies for your state management solution, unless the client's machine can be configured. After the physical specifications are completed, it is customary to review the use cases and attempt to validate that all intended users have the requested functionality. Creating a Proof-of-Concept DeliverableDoes your proof-of-concept deliverable demonstrate that your proposed physical design is within an acceptable risk range? Do you have enough knowledge or "proof" to begin, or is there something unknown that represents a risk of project failure? Unknown items, such as integration and migration, should be attempted immediately. Developing a proof-of-concept deliverable enables you to verify that the unknown is possible before you get halfway through the project and find that your original approach wasn't feasible. In technology, you believe that there is nothing you can't accomplish. As true as this may be, there are always things that are out of your control. If you choose to ignore your mortality, there is a big price to pay if your solution fails. |