INTRODUCTION TO THE SOFTWARE DEVELOPMENT LIFECYCLE
Hankins Consulting utilizes a proven software development process in our projects. This process outlines the creation of a software business solution over several phases of business activity, known as the Software Development Lifecycle ("SDLC"). Hankins Consulting employs four main phases in our SDLC, namely, inception, elaboration, construction, and transition. This structured approach is based on the Rational Unified Process ("RUP"). The RUP is a widely accepted software development process. The RUP includes various software development best practices, including requirements management, visual modeling, iterative development, continuous quality assurance, component architecture design, and change management. RUP is driven by use cases, architecture-centric, and provides a vehicle for iterative and incremental software development.
Hankins Consulting recognizes that every project is different. We do not employ the same process to every project. Rather, we customize or "right-size" the SDLC process based on the size of the project and the specific project needs.
A summary of the four phases in the SDLC is as follows. The first two phases, the Inception and Elaboration phases, are meant to provide the understanding and documentation necessary for the project designers and developers to build the system that meets the exact needs of the stakeholders. The Construction phase involves the coding and site design for the new system. The Transition phase involves the testing necessary to guarantee a higher quality end product and also encompass the release of the website to the user community. The following information provides a more detailed summary for each phase.
INCEPTION PHASE
Inception is the first stage of a project and involves specifying the end-product vision and the scope of the project by gathering high-level requirements and doing early architectural prototyping.
Vision Document
The project Vision document will be created as the primary deliverable of the Inception phase. This document will serve as the project charter from which all requirements and development will flow. The following items will be contained in the Vision document.
- Project Background
- Define Key Project Terminology
- Model of Applicable Business Workflow
- Identification of Project Stakeholders
- Outline and Prioritization of Project Goals
- Identification of Use Cases
- Address Project Risks
- Outline of Key Assumptions
- Definition of System Dependencies and Technical Requirements
Scope Delineation and Development Estimates
A key emphasis in creating the Vision document will be to define the project scope, and prioritizing the project goals and requirements. As a result in this effort, initial development estimates will be created for the project, and a determination of the resources needed to complete the project will be made. These estimates will be offset by the project risks outlined in the Vision document. Attention to these identified risks will then be an important task throughout the software development lifecycle to ensure that the project is kept within budget.
ELABORATION PHASE
The Elaboration phase involves planning the necessary activities and required resources, specifying the system's features, and designing the architecture, including validating high-risk portions of the architecture. The objective of the Elaboration phase is to capture all architecturally significant requirements so that a flexible and scalable architecture can be designed.
Use Case Definition
Use Cases in the project serve as the detailed specification of the functionality required by the project. Hankins Consulting will define the use cases that were identified in the project Vision document created in the inception phase through a process of interviews with the project stakeholders. Hankins Consulting will lead and instruct stakeholders through the life of the elaboration phase on how to communicate the requirements for optimum efficiency. These compiled use cases will then be submit before the project stakeholders for final review and approval. These use case documents will be used as the official requirements for the project.
Storyboard Mockups
Based on the detailed use case definitions, visual storyboard mockups will be created. These mockups will be presented to the project stakeholders for final approval and signoff prior to moving forward with the construction phase of development.
Test Plan
Based on the use case definitions, Hankins Consulting will create test plans and scripts. These plans will verify that the requirements gathered in the Elaboration phase have been met in the software application, during the Transition phase.
Technical Specifications
After the requirements elicitation in the elaboration phase, Hankins Consulting will capture and document the software architecture to be used in construction of the software application. These specifications provide the information needed to maintain the system after implementation, and will be updated as needed throughout the lifecycle of the project.
When designing the software architecture, Hankins Consulting will utilize proven software design techniques. These techniques include the use of General Responsibility Assignment Software Patterns (GRASP), the Unified Modeling Language (UML), and Model-View-Controller (MVC). The application of these techniques provides industry standard documentation and software architecture designs.
CONSTRUCTION PHASE
The Construction phase is where the bulk of the system is built. In this phase, code is completed and the system is created as an evolution of the vision, the architecture, and the requirements. The resulting product is the completed project vision as outlined in the Vision document. Upon completion of this phase, the product is ready for transfer to its users' community.
The construction of the software application is the process of implementing the documented requirements in accordance with the design outlined in the technical specifications. Although architecturally significant requirements have been gathered in the elaboration phase, detailed requirements for certain functionality during this phase will generally need additional definition. At the same time, the technical specifications are also being refined.
In approaching the software construction, Hankins Consulting continues the foundation designated in the software architecture for using software development best practices. Hankins Consulting uses various programming best practices and proven software development methodologies (i.e. Fusebox for ColdFusion development). Hankins Consulting maintains consistent coding style, creates various levels of comments in the source code, follows specific naming conventions, and performs many other industry best practices. All software components go through unit and integration testing by the programmers as they are produced as an important step in quality assurance. The end result is code that is easy to read, less prone to bugs, and reduces maintenance costs.
TRANSITION PHASE
Transition is the process of moving the product to its user community, which includes manufacturing, delivering, training, supporting, and maintaining the product until the users are satisfied. This generally involves handing off all documentation for maintenance and support of the application. In addition, it also involves quality assurance testing and reviewing and improving the development process for future iterations of the application.
Quality Assurance Testing
All of the steps performed in the previous phases of the software development lifecycle help lessen the burden on QA by providing testable requirements, a clear vision of what the system should look like, and a standardized approach to development. All of these elements will reduce the ambiguity that most QA efforts deal with by providing the answers up front. The effect will be diminished cycles and rework that will ultimately save the company in time and resources.
A comprehensive strategy for testing the system will be created, as needed for each project. Typical areas of emphasis include:
- Regression Testing
- Negative Testing
- User Interface Review
- Cross Platform Testing
- Load Testing
The Quality Assurance Testing phase also includes the effort necessary for debugging and revising any defective functionality in the software application.
User Acceptance Testing and Training
After formal quality assurance testing, a period of user acceptance testing (UAT) will occur. This UAT will be facilitated by Hankins Consulting and will involve various project stakeholders and key users. The UAT participants will review the completed system and request any in scope changes needed to finalize the project.
The UAT period is complete once all requested revisions have been satisfactorily implemented. A typical UAT period may have several rounds of tests and revisions, with a final follow up UAT to verify the successful completion of the revisions.
A UAT session is typically conducted in a training room where multiple users can access and test the system simultaneously. A Hankins Consulting staff member will facilitate the session to provide support and to gather user feedback. Should any out of scope changes be requested during the UAT, these requests will be recorded on a list to be considered by the appropriate stakeholders for future development.
During the UAT, Hankins Consulting typically provides training to users as needed to accomplish the testing and facilitate in the transition of the application to the user community. Depending on the project's needs, more or less elaborate training options are made available to the relevant system users. As a function of training, training materials are often created to assist the users in administration of the system.
Ongoing Administration and Maintenance
Hankins Consulting provides various level of ongoing administration, support, and maintenance of the system. Hankins Consulting can transition the maintenance to the client's internal staff or provide the needed maintenance themselves through a host of various support options.