Project Management:
DataCore Up Close
Code to Build, Built to Code

by Pamela Aloia, Quality Manager

In last month's DataCore Up Close article we discussed the importance of translating system requirements into detailed, technical design documents during the Design Phase. In this month's article we'll take a look at the Build Phase, where we discuss the ease of building an information system after having completed the Define and Design Phase, and the importance of testing prior to implementation.

To continue our comparison of building a house to implementing an IT project up until now, we have planned appropriately for building the house, we have defined what it is we want in the house (4 bedrooms, 2 baths, full basement, etc.), and we have laid out specific designspecifications to build the house (sizes of rooms, type of lumber, wiring, piping, etc.) Now that we know what we want to build, and we know how we're going to build it, we're ready to hand the project over to the builder to start construction of the house. 

The same is true of implementing an information system. Once we've defined what we want in the system and laid out how we're going to create it, we're ready to hand off the project and specifications to the system developer to begin building the system. Using the Defineand Design Phase deliverables, (specifically the Functional Specification and the System Design Specification) the developer can easily code and configure a system that meets your needs. In the Build Phasethe most obvious deliverable is the end product – the code and/or configuration that comprises the system and user interface. But along with building the system, there are some other specific, crucial tasks that fall into this phase. 

For instance, the Project Manager coordinates a meeting between the lead developer and you early in the Build Phase so you can see what the development team has built to date. This meeting serves as a useful tool for both the development team and you. During this meeting, the lead developer will show you how the system works per the specifications provided and offer potential changes in process to improve efficiency or productivity. You are able to see how things work, provide feedback for potential improvement areas and discuss additional questions you may have. Your feedback is recorded and with your approval the development team incorporates the changes, if any, into the final system. 

GreatÉnow that the system is built, you can start using it, right? Not quite yet. The Build Phase isn't over yet because the system still needs to be tested. Testing the system prior to implementation enables the development team to find potential bugs in the code and prevent rework down the line. There are three types of testing that the system will undergo. First, the developers test the system. These tests are called Unit Tests. During this testing, the developers verify that the system has been built according to specification and ensures items such as field length, field type, and error trapping are working as expected. 

Once the system passes the Unit Tests, the developers forward the system to fellow developers for Code Review. A Code Review provides an objective review that compares the code/configuration to industry or company-defined coding standards and ensures the code is logical in its design. Ensuring logical code and adherence to standards improves system performance and code readability and maintainability for everyone involved with the project.

Once the Code Review is complete, the reviewing developer returns the Code Review results to the original developer. If any items failed the code review, those items should be fixed and returned for approval until the system passes each item in the Code Review. Then, a Quality Assurance Analyst performs System Testing to ensure the system:

  • Has been built according to requirements and specifications
  • Works as expected
  • Integrates with other applications as needed

System testing helps find additional bugs or issues that may not have surfaced in either the Unit Test or Code Review. System testing is more in depth than the prior forms of testing, touching upon a broader view of the system and its interaction with other applications. By testing a system thoroughly prior to implementation, the number of on-site problems that may occur decrease significantly, thus, saving debugging time and dollars.

Just as in building a house, where inspectors arrive on the construction site at various points in the construction of the home to verify its safety and conformance to building codes, building an information system requires check points throughout development to ensure the system meets or exceeds your expectations.

To learn about the Deploy Phase, click here to continue.