IT Operating Environments Best Practices - Development (DEV) - building, unit testing, and module testing initial solutions
IT Operating Environments Best Practices
Development (DEV) - building, unit testing, and module testing initial solutions
Overview
The Development environment is where engineers and developers build, integrate, and perform initial testing of solutions that have completed the Research stage and have been approved for formal development investment. DEV is the first environment in the pipeline where code is written with the expectation of progressing toward Production, where unit tests and module tests are designed and executed as part of the development process, and where the solution begins to take the shape it will carry through subsequent validation environments. DEV is a technical environment: its population is engineering teams. Business stakeholders do not typically work in DEV and should not be asked to validate functional expectations there.
Best Practice
Govern the Development environment as the formal entry point for solution construction, with clear standards for what belongs in DEV and what does not. Code that enters DEV should have a documented purpose, a sponsoring Application Owner or project sponsor, and a defined scope. DEV is not an extension of RSC - experimental, throw-away prototyping should not occur in DEV. DEV is the environment where production-grade engineering discipline begins: source control, peer review, automated unit testing, and module testing are all standard DEV practices.
Unit testing validates the behavior of individual units of code in isolation - functions, methods, classes - confirming that each unit produces the expected output for a given input. Module testing validates the behavior of collections of related units that together implement a coherent piece of functionality, confirming that the units work correctly in combination before the solution is exposed to external integration testing in SIT. Both unit and module testing should be automated and integrated into the DEV deployment pipeline so that test execution is continuous and test failures are surfaced immediately rather than discovered only at the point of promotion to SIT.
DEV environments should use representative but non-sensitive data. Production data of any kind - including PII, PCI, PHI, PFI, or any other sensitive data classification - must never be present in DEV without approved and governed exceptions. Data used in DEV should be either synthetically generated, anonymized, or constructed specifically for testing purposes, with no relationship to real individuals, transactions, or sensitive organizational information.
Benefit(s)
A well-governed DEV environment produces solutions that arrive at SIT and subsequent validation environments with a higher baseline of quality, because unit and module testing have already confirmed the correctness of individual components and their internal interactions. Quality problems that are caught in DEV through automated testing are dramatically less expensive to fix than those caught in UAT or, worse, discovered in Production. The clear boundary between RSC and DEV - with a documented viability finding as the gate artifact - ensures that DEV resources are invested in solutions with validated technical foundations rather than in experimental approaches that have not been proven viable.
Copyright for the International Foundation for Information Technology (IF4IT): 2008 - Present
Legal Disclaimers