KSI formulates and defines application and system scope and objectives, preparing detailed program specifications, design of code, testing, documenting, and maintaining applications. We perform systems analysis and programming activities in support of customer business and operational applications. As a part of KSI’s applications development approach, we work with our customers to determine the scope and define the detailed requirements of each enhancement release for applications within the KSI managed portfolio, captured in a System Design document.
The System Design Document will contain an Overview of the release; the assumptions, constraints, and risks associated with the release; the goals, guidelines, development methods, contingency plans, and architectural strategies that will be used; an assessment of the System Architecture, including hardware, software, information, internal communications, and an overall systems architecture; the data design; user and Machine readable interfaces; operational scenarios; a detailed hardware and application design incorporating each approved change request for that version; security design; and systems interfaces.
All change requests will be documented, prioritized and tracked. Depending on its complexity and priority, the change will be included into one of the scheduled releases, unless considered to be an emergency, in which case it will be deployed as soon as possible, without waiting for the next scheduled release. We use our own Agile Iterative Development Process, Figure 7 coupled into a Change Management Process, Figure 8, aligned with the customer’s change control, configuration control processes in order to enable our team to respond to short time frame development requirements.
Figure 7. KSI’s Iterative Agile Development Process provides for quicker response times within a standard, repeatable, process.
Figure 8. Integrating the KSI release framework with our Agile Iterative Development process provides our customers with an accelerated, scalable, flexible and iterative approach to application development.
KSI conducts unit testing, functional testing, performance testing, regression testing, and implementation testing for each release of an application. We also conduct Section 508 compliance testing for all new user interfaces. KSI developers conduct unit testing of each function and fill out a Unit Test matrix for each release. Functional testing and Section 508 testing is done by our testing team and is performed in a hosted QA environment.
KSI executes performance testing and regression testing in an Integration Test environment, which is identical to the production environment. The testing team prepares a Test Plan and detailed Test Case documents for each release, and they compile a final Test Summary Report at the conclusion of the testing for each release.
We track all identified defects to closure in the Issues Log. At the end of the testing phase, the team conducts an Implementation Readiness Review (IRR) at which time the KSI Program Manager and the customer decide to promote the release into production.
As part of our production deployment process, a member for our testing team conducts smoke testing as soon as the new code is deployed to the production environment. This includes testing all newly added features in read-only mode as well as random spot-testing of the core features of the system (also in read-only mode). The release is only declared successful if no issues are identified during smoke testing.