 |

|
 |

Development Methodology
The model represents both a phased and iterative approach to application development, with clear measurable milestones to ensure projects stay focused and on schedule. These processes ensure that VC3 is on time and on budget with a quality delivery that exceeds customer expectations.
The envisioning phase is a critical phase in which the key project stakeholders from the Customer and VC3 will get together to develop a unified vision for the project. This process will involve extensive meetings and interviews with the Customer team members and key user groups to identify project goals, constraints, and risks.
The primary deliverables for this phase will consist of a vision/scope document, a risk assessment document, and a project structure document - either combined or separate, depending upon the size and scope of the project. The envisioning phase will conclude with the vision/scope approved milestone, leading into the planning/design phase.
- Vision/Scope
The vision/scope document will identify both the long-term vision for the solution and the short-term scope of requirements for the current project. VC3 will work closely with the Customer team members to understand the vision to ensure that the design and architecture of the system will have the necessary extensibility characteristics to meet these long term needs. At the same time, VC3 will work to understand the project constraints, such as time, funding, and critical needs, to determine the scope of the current project.
- Risk Assessment
As part of the process for determining the vision and scope, VC3 will identify risks that could adversely affect the project schedule or cost. VC3 will document and classify these risks by probability and severity and review these with the Customer team members. Identifying these risks early on in the process will allow the Customer and VC3 to avoid these risks by reducing the project scope or developing risk management plans to deal with them before they get out of control.
- Project Structure
The project structure document will identify key project team members from both the Customer and VC3. The document will specify the roles and responsibilities of each team member and the overall organization and accountability for the combined team. The structure will set expectations for who will be involved during each subsequent phase of the process, who is responsible for each deliverable, and who are the primary Customer stakeholders for each major system feature. The development of this project structure document is essential for large multi-organizational projects where a single individual is not ultimately responsible for reviewing and approving each system feature.
Back to Top
During the planning/design phase, VC3 will work closely with the Customer and integration partners to identify the conceptual, logical, and physical design of the solution, and develop detailed plans for executing on this design. As part of the requirements gathering process, VC3 will develop a proof of concept and conduct usability tests with representative end users to work through key usability issues. VC3 will also create both a functional specification (conceptual and logical design) and an implementation specification (physical design) for the solution.
Based on these specifications, VC3 will develop a variety of plans to address development, risk management, security, communication, training, and quality assurance, and compile these into a master project plan. These plans will in turn drive the creation of a realistic project schedule with key milestones and deliverables. VC3 will then provide cost estimates for the remaining phases of the project based on the master plan and schedule.
The planning/design phase will conclude with the project plans approved milestone, which represents the Customer's approval of both specifications and the master project plan.
- Proof of Concept
In order to better understand and communicate proposed functionality, VC3 will develop a proof of concept/prototype consisting of primarily static user interface screens. This prototype will allow design ideas to be explored and tested before entering into the more costly developing phase.
Screens from the proof of concept will be included or linked to in the functional specification to provide a concrete representation of the somewhat abstract conceptual and logical design. VC3 will also use the proof of concept to conduct usability testing, and will use these results to further refine the prototype.
- Functional Specification
The functional specification documents the business requirements and conceptual and logical design for the application. The functional specification typically includes:
- A high level overview with project scope, user classes, definitions, operating environment, assumptions, and references
- A detailed description of all system features, including business rules, use cases, logical model (logical object attributes, actions, and associations), and user interface wire-frames or screenshots
- External interface requirements for integration with other systems or processes
- Non-functional requirements, such as security or user documentation
- Usability Testing
During the development of the functional specification, VC3 will identify difficult use cases and work with the Customer to design interfaces which maximize usability. In addition, VC3 will conduct usability tests using either paper wire-frames or online prototypes with representative application users. During these tests, users will attempt to perform predefined tasks based on written descriptions while being observed by both the Customer and VC3 project team member. Users should not be given verbal assistance by test observers, although the designated test coordinator may step in as necessary to move users past blocking issues. VC3 will compile the test results for all users and provide usability recommendations to the Customer for review and possible inclusion in the application.
- Implementation Specification
The implementation specification documents how the functional requirements will be implemented using a three-tier component architecture. The implementation specification typically includes:
- Overall implementation plan, including both component and network architectures
- Detailed descriptions of all business and data layer components, including all properties and methods
- Database diagrams or XML schemas defining the structure of data being maintained by the system
- Documentation of software dependencies and configuration settings
- Master Project Plan
The Master Project Plan contains the following components:
- Capacity plan
- Risk management plan
- Security plan
- Communication plan
- Training plan
- Quality assurance plan
Back to Top
During the development phase, VC3 will implement the solution as described in the functional and implementation specifications. VC3 will ensure that all content is safely stored in a source control system, is well documented for easy maintenance, is unit tested to verify functionality, and is thoroughly reviewed to ensure it meets both the Customer functional requirements and VC3 coding standards. The development phase will be complete when the Code Complete milestone has been reached.
- Configuration Management
VC3 will store all components contributing to the functionality of an application in a source control system, including data, business, and user interface layer procedures, classes, configuration settings, dependencies, and content. Source control will be configured to only allow exclusive checkout of files to a single user at a time. VC3 will label each released version of the application in the source control system to enable recovery of previous versions and delta reports showing changes between releases.
- Code Development
VC3 will thoroughly document all source code using language-specific inline commenting techniques. Detailed documentation will then be generated based on these comments to provide reference manuals for other developers working with the components. This documentation will be continually updated as code changes are made.
- Unit Testing
All business layer components will include integrated unit tests that perform both positive and negative testing of all component functions. When appropriate, the user interface will also include unit tests. These tests will be created such that individual component functions, single components, or the entire application may be tested at any time as part of the component build process. All unit tests will be run before releasing new code for integration testing.
- Code Reviews
Periodically during the development of an application, code reviews will be held to review completed system features. These reviews will typically consist of the developer responsible for the code and two additional developers, with at least one domain expert. During the review, the code will be analyzed line by line to ensure the logic is correctly implemented, and that all development standards, such as code documentation and unit testing, are followed.
Back to Top
During the testing phase, VC3 will thoroughly test all system functionality. The testing will consist of integration testing to verify system functionality as well as performance testing to ensure the application functions within acceptable performance limits while under load. All problems identified during testing will be logged in a defect tracking system. The testing phase will be complete when all defects have been resolved and retested.
- Integration Testing
As part of the development of the functional and implementation specifications, VC3 will create a test plan enabling quality assurance specialists to formally test all system functions using both positive (does what it is supposed to do) and negative (prevents users from doing something wrong) testing. This test plan will be updated during development as features evolve or are added to ensure the plan matches the application functionality. The QA specialist will follow the plan to test the system and use a defect tracking system to communicate problems back to developers for resolution. When possible, testing automation tools will be used to record test scripts enabling simple retesting or load testing of the application. All subsequent releases or enhancements will undergo integration testing before being moved into production.
- Performance Testing
In addition to ensuring the system performs all functions correctly, VC3 will also test the system using a simulated user load to locate and eliminate performance bottlenecks. Code execution times, page response times, database query processing, and system load will all be monitored and reviewed. This analysis will test both the raw performance and the scalability of the solution and will uncover unexpected resource contention problems that are often not evident during development and integration testing.
- Defect Tracking
VC3 will leverage a web-based defect tracking system to record, assign, and resolve software defects. The system allows quality assurance specialists to enter detailed problem descriptions, classify the issue based on the functional area, priority, severity, and type, and assign the incident to the appropriate developer for resolution. The system allows developers to update the status of the incident, record comments and resolution descriptions, and reassign the incident to the QA specialist for verification. The system maintains a historical log of all incident versions and a detailed audit trail.
- User Acceptance Testing
During the deployment phase, the solution will be deployed to a preview environment so that the Customer may perform acceptance testing. The Customer will be expected to exercise all system functionality and provide feedback on problems and enhancements through the online defect tracking system. VC3 will work to resolve all incidents as quickly as possible and will review enhancement lists with the Customer to identify new features or cosmetic changes that are essential for the first released version of the system.
The deployment phase will be complete when the Customer approves and signs off on the solution. Acceptance testing is similar to integration testing except that it will be performed by the Customer employees that will interact with the system on a day to day basis. These users may identify issues or features that were not discovered during the design phase. VC3 will provide the Customer with the integration test plan in order to ensure that all functionality is tested.
Back to Top
During the deployment phase, VC3 will install the system in the production hosting environment. If the Customer elects to host the application internally, VC3 team members will come on site to install, configure, and test the application. If the Customer desires for VC3 to host the application, VC3 will install the application in the secure VC3 data center and configure the necessary secure links to the Customer for integration with internal systems. VC3 will also handle DNS registration, SSL certificate purchasing, and all other configuration necessary to get the application running smoothly and securely. VC3 will also assist the Customer in training end users through the creation of online help, user guides, or hands-on training sessions.
-
Training
By the time the system is ready for production, the Customer project team members will be very knowledgeable of how the system functions. However, other employees of the Customer and external users may benefit from additional assistance. VC3 has experience creating both context sensitive online help and bound user guides to assist new users. VC3 also has training facilities for conducting hands-on training for up to 10 users with individual flat-screen workstations and an overhead projection system.
Back to Top
|