Build the Solution

Building the solution generally consists of the developer writing code or scripting software configurations to meet the requirements set forth in the technical and functional specifications. As an ancillary set of steps, the developer will perform unit testing and maintain code in a form of code control. When required, end-user documentation is also produced in this step. Table 18-4 summarizes the deliverables in the design step.

Table 18-4: Summary of Deliverables for the Build the Solution Step

Execution Order

Deliverable

Responsible Party

1

Code

Development

2

Documentation

Development

When the developer writes the code, he or she should be using the technical specification and the functional specification as a guide. If problems are encountered during the coding effort that correlate to the technical design or the functional design, they should be elevated to the respective document owner-the developer for technical specification or the business analyst for the functional specification. When problems are encountered, the coding developer should always provide a specific reason for the need to alter or change a design. The developer should also always recommend a solution. This encourages ownership in the solution on the part of all those involved.

The developer's duties while coding are generally as follows:

  • Write code that meets the technical specification's requirements.

  • Check code into the code control storage system on a routine basis.

  • Unit test the code.

  • Integration test the code.

The developer writes code on his or her desktop computer. The developer should also perform unit testing on the desktop as well. The purpose of the unit test is to ensure that the functions and classes all work properly. If the solution fails, the unit test should also help the developer determine whether defects exist in the logical algorithms or whether deviations from the specification have occurred.

If the unit test is successful, the solution should be migrated to the next environment for integration testing. This type of testing validates that the solution works with the software with which the solution must collaborate. If the solution fails, the unit test should also help the developer determine whether defects exist in the logical algorithms or deviations from the specification have occurred.

If the solution meets the requirements of both types of testing, the solution should be migrated to a separate environment for functional testing to verify that the solution meets the requirements specified in the functional specification.

As the solution is migrated along the testing environments in the development process, the environments must be managed with great control. The following environments generally exist in a web development environment:

  • Developer workstation

  • Development

  • QA

  • Staging

  • Production

The developer workstation should have the least controlled environment. The purpose of the developer workstation is to provide an environment for code production and unit testing. Developers need to perform the necessary analyses, experimentation, and diagnoses to remain knowledgeable and familiar with the technology with which they are required to work.

The development environment is a server environment that should offer a high degree of developer access to install solutions for testing. The environment should serve the needs of developers to test their solutions. Installation of dependency software should be restricted so that only the versions and types of software that exist on the production environment exist on the development environment. This environment should also have restricted access to or from the Internet. Because the development environment provides a 'loose' environment, the potential for hacker abuse is high. Because performance on this environment is not important, resources should not be devoted to providing high performance.

The QA environment should be separate from the development environment so that solutions may be tested while other development efforts take place simultaneously. The primary consumer of this environment is the QA solution functional testing. The QA environment must also closely represent the environment in which the solution is expected to function. Developer access should be restricted so that only senior level developers or the QA team can install solutions. The danger in allowing too many people access is that the testing scripts become corrupted if a change takes place during a test. This environment should also be restricted from Internet access, since the environment does not host production level code. Performance on this environment is not important, so resources should not be devoted to high performance. This environment should support the same physical boundaries as the production environment. For example, if the solution must function in a distributed environment or a load balanced environment, the physical boundaries should be replicated so that the QA process can test the solution in an environment that best represents the situation that might produce a failure.

The stage environment offers an environment for testing the solution for the owner's acceptance after it has passed the functional testing. The owner is the primary consumer of the stage environment. The stage environment also can be used for the following purposes:

  • Sales and training

  • Production backup

  • Performance testing

The stage environment should be entirely restricted from developer access. The changes to the environment should be managed entirely by a member of the Systems group.

The production environment is the host for the client-visible product. The primary consumer of production is the end user. Performance of the production environment is important. The production environment should also be restricted to Systems personnel to mange the environment.




IIS 6(c) The Complete Reference
IIS 6: The Complete Reference
ISBN: 0072224959
EAN: 2147483647
Year: 2005
Pages: 193

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net