 |
|
|
|
At COA Consulting, we recognize that every customer has unique needs, and that
different projects require different methodologies. As such, every solution we
deliver incorporates best-of-breed processes to help our clients achieve
desired objectives, while meeting deadlines and priorities, as well as ensuring
the evolution of the application along their business model.
The first step in our Software Development Methodology is to determine the
appropriate development model based on the project's requirements in terms
of schedule, delivery, etc. This may be one of the traditional models or a
lightweight, agile software development model that involves feature-driven,
responsive development.
Each model is associated with a set of process procedures designed to maximize
benefits and reduce risks inherent to the undertaking. Whenever possible, Rapid
Application Development (RAD) frameworks and re-usable components are utilized
to reduce the development timelines.
COA Consulting's Software Development Methodology encompasses 10 phases:
|
|
|
|
Phase One: Requirements Gathering
& Definition
This involves gathering all the necessary information to define the project
scope and/or develop a prototype, including information on existing systems,
process specifications, onsite analysis, end-user interviews, market research
and competitor analysis. Steps include:
|
|
|
-
Requirements analysis, including application goals and objectives
-
Creation of vision scope document and feature list
-
Development of technical recommendations and high-level requirement
specification
|
|
|
Phase Two: Requirements Analysis
In this phase, a detailed analysis is carried out from the information gathered
in the Requirements Gathering & Definition Phase. Steps include:
|
|
|
-
Analysis and creation of Software Requirement Specification (SRS)
-
Creation of Use Case Specification and Diagram and generation of the Use Case
Model
-
Design business rules and flow diagrams
-
Validate the scope and estimates against the contract, including any necessary
revisions
|
|
|
|
Phase Three: Project Plan
In this stage, the project team is assembled, including careful selection of
engineers with the requisite skills. A detailed project plan is also created
that outlines the key milestones and dates for each deliverable.
Phase Four: Design
A carefully detailed Design Document and Process lays out the complete
definition of the application and maps the entire system, as well as the
functional process flow. The content contains the following main items:
|
|
|
-
Overall System Architecture
-
Class Diagram
-
Flow Diagram/Sequence Diagram
-
User Interface Design
-
ERD - Database Diagram
-
Implementation Model
-
Test Plan
During this stage, we provide clients with a fully functioning, clickable user
interface. Once approved, development will commence.
Phase Five: Development
In this stage, code is written and tested against design requirements and test
cases. Internal and inline commenting is completed, as is coding activity.
Completion of each module results in preparation of test cases and unit level
testing. Reviews are also completed to ensure that the developed code adheres
to the organizational guidelines for coding. Steps include:
|
|
|
-
Development of code base, per implementation and design models
-
Application source code is tested according to the test cases and test plan
-
Processes are documented
-
Use Case test results are created
-
Peer code reviews are conducted
|
|
|
|
Phase Six: Testing
The test plan, created in the design phase, outlines the types of tests to be
performed, as well as resources, tools and responsibilities for test-related
activities. Based on that plan, the various levels of testing are performed,
including:
|
|
|
-
Unit Testing, during which developers are responsible for the quality of the
module they are developing
-
Functional Testing, which involves generating test cases that are populated
with data and supplied to the QA team for evaluation
-
Integrated and System Testing, during which the entire application is deployed
on the test servers and various aspects of the application, such as the
platform support, browser support, etc., are tested. At this phase, automated
and stress testing tools are utilized.
-
User Acceptance Testing (UAT), which takes place upon successful completion of
all other testing
|
|
|
|
Phase Seven: Training
Training manuals and online help systems are developed and integrated into the
application in this phase. In addition, live training is provided to the
client, online or onsite.
Phase Eight: Deployment
In this stage, the application is deployed on the live server. Steps include:
|
|
|
-
Implementation on client premises or hosting server
-
Creation of Archived Software Artifacts
-
Client signoff
-
Installation of Remove Access Software, if appropriate and necessary
-
Transition of application to the maintenance team
|
|
|
|
Phase Nine: Maintenance, Support and Enhancements
The application will be monitored closely after deployment for a period defined
by the contract. Any post-launch issues that arise will be addressed in an
expedited fashion. If required, appropriate help desk systems will be deployed
to support the client's end-users. Enhancement requests may be made via the
project manager at this time.
Phase Ten: Defect Management
A fully integrated defect-tracking solution is deployed to enable users to input
and track new defects and enhancement requests. The system provides:
|
|
|
-
Streamlined software development and maintenance
-
Clear, updated information about the status of each defect
-
Full control over the workflow
-
History of work completed on each defect or enhancement
|
|
|
|
Client Communication
During the entire project lifecycle, it is important to facilitate regular
communication between COA Consulting and the client company. To deliver
projects on time and on budget, project managers communicate regularly with all
members of the project team, including management, team leads, project team
members and the client. Weekly status reports are created to ensure that
everyone is on the same page, which also allows the team to analyze how the
project is progressing. The status reports keep the client informed of:
|
|
|
-
Activities actually performed the previous week
-
Activities planned for the coming week
|
|
|
| Communication is also enhanced through
regular teleconferences, emails, web meetings and on-demand collaboration
systems. |
|
|