****JavaScript
based drop down DHTML menu generated by NavStudio. (OpenCube
Inc. - http://www.opencube.com)****
Our Methodology and Project Delivery
Process
The following is an example of a typical
Application / Software Development project delivery process
at Thejes identifying the major project phases, milestones
and associated deliverables and work products. The actual
application development and project delivery process and
related work products will be customized based on specifics
of the Client project requirements.
“High Level” Business
Requirements reviewed with Client
Submit Project Proposal (and review
with Client as required)
Client Sign-off on Project Proposal
and Initial SOW Contract
During the Concept phase (also known as Feasibility or
Discovery) “high level” business requirements
are documented and reviewed with the Client. Generally
the Client will document the “high level” business
requirements with assistance from Thejes consultants as
required. Depending on the project, sometimes the “detailed” requirements
analysis is also completed during this initial project
phase.
Based on the requirements we will develop and distribute
a Project Proposal to the customer in response to the RFP
request. The Project Proposal includes a Rough Order of
Magnitude (ROM) Estimate Range for the project (“Straw
Man” estimates) including an initial forecast of
the probable project delivery timelines. The Client review
and sign of on the Project Proposal and/or Initial Statement
of Work (SOW) generally signifies the close of this phase.
“Detailed” Business
Requirements completed & reviewed with Client
“Detailed” Business
Requirements - Client Sign-off
External (High Level) Design
Complete and distribute External
Design to Client
External (High Level) Design -
Client Sign-off
SQA Test Planning
Software Quality Assurance (SQA)
Test Strategy & Planning
Review Test Plans with Client
(and obtain Sign-off)
Conduct Project Risk Assessment
Revised Project Estimates based
on Design & SQA Test Planning
Detailed Project Plan / Schedule
Obtain Client Approval on Final
Estimates & Schedule (Modify and Sign-off Final
SOW)
The Planning phase starts with “Detailed” Business
Requirements Analysis with our Business Analysts working
closely with Client Subject Matter Experts (SME) and stakeholders.
The finalized “Detailed” Business Requirements
Document including the prioritized in-scope requirements
are reviewed with the Client and then formally approved.
Sometimes a more accurate (interim) project estimate will
be prepared after completion of detailed requirements,
which is sometimes referred to as a “Tin Man” estimate.
During the final stages of the “detailed” business
requirements analysis the Application Architecture and
External (high level) Design activities will commence.
An Application Risk Assessment (technical review) is completed
at the end of the Design activities. The planning phase
will also include formulating the project Testing Strategy
and development of Test Plans for Software Quality Assurance
(SQA).
We will also complete a formal overall Project Risk Assessment
in conjunction with the Client stakeholders, and develop
appropriate Mitigation strategies and Contingency Plans
for the identified Risks. Upon completion of the external
design and test plans we will revisit the project estimates
to provide a Firm Quote (“Iron Man” estimate)
generally at about 90% confidence level. Based on these
more accurate and firm estimates we will develop a detailed
Project Plan and Schedule with firm dates for key project
milestones and deliverables. The Client approval of the
firm estimates, committed project schedule and the Final
SOW signifies the end of the planning phase.
Develop Test Cases, Test Data & Test
Environment Set-up
It is during the Development phase (also sometimes referred
to as Construction) that the actual coding and development
of the business application will take place. The development
phase generally starts with Internal Design (a more detailed
design) based on the pervious External Design Document
(EDD). Then we will proceed to Coding / Programming the
application according to the technical design specifications.
Unit Testing is carried out as each individual coding component
or unit of source code is completed to ensure it is working
according to design specification. In procedural programming
a unit may be an individual program, function, procedure,
web page, menu etc, while in object-oriented programming,
the smallest unit is always a Class; which may be a base/super
class, abstract class or derived/child class.
Once all the required individual coding modules are completed,
Code Integration activities will tale place, including
some quick testing to ensure the code integration is working
fine. Close to the completion of all coding activities,
Code Review will take place (by peer developers, or facilitated
by a technical lead) to ensure that the developed code
adheres to required coding standards and best practices.
This phase will also see development of Test Scenarios
and detailed Test Cases based on the Test Plan. Required
Test Data will also be created, and the Test Environments
will be setup in preparation to commence formal Software
Quality Assurance (SQA) Testing activities. The close of
this phase is signified by the completion of all development
activities, and the application is ready to be passed on
to the SQA team to commence testing.
System Documentation, User Manuals
and Training Materials
The Qualify phase generally begins with a Systems Integration
Testing normally carried out by the development team to
ensure all the API interfaces between interfacing applications
in scope for the project are working fine. The SQA team
then commences Functional Testing on the application, and
as defects are discovered they are sent to the development
team for fixing. The fixes will be re-tested by the SQA
team to ensure the defects are addressed, and in addition
Regression Testing is performed to ensure that previously
working functionality has not been broken by the fixes.
As required the development team will perform Performance
Testing to determine how fast some aspect of a system performs
under a particular workload. This testing can also serve
to validate and verify other quality attributes of the
system, such as scalability and reliability.
Stress / Load Testing will also be carried out by the development
team to determine the stability of the system. Stress Testing
involves testing beyond normal operational capacity, often
to a breaking point, in order to observe the results. Load
Testing generally refers to the practice of modeling the
expected usage of a software application by simulating
multiple users accessing the application services concurrently.
As such, this testing is most relevant for multi-user applications,
often one built using a Client/Server or Three-tier/Multi-tier
Architecture model, such as the Web, Application and Database
Servers the and a Web Browser and end user Computer for
the Client.
Deployment (or Implementation) Planning will also take
place during this phase, including creation of any required
System Documentation, User Manuals and Training Materials.
Once the SQA team is satisfied with their testing and all
major defects are fixed, the application may be also tested
by the Client which is referred to as User Acceptance Testing
(UAT). The conclusion of the Qualify phase is signified
by the Test Report sign-off by the Client, and authorization
to promote the new application to production environment.
The Deployment phase commences when the application has
been fully tested and all major defects have been fixed
and resolved to the Client satisfaction. For larger and
more complex applications using a Three-tier/Multi-tier
Architecture model, to be deployed in a Server Farm type
hardware infrastructure, we will first deploy the new application
to a Staging Server.
Website development usually involves Staging and Production
servers. The staging site is used to assemble, test and
review new versions of a website before it goes into production.
Normally before updating a new version of application code
to the production server it is updated to staging server
for testing. The staging server will resemble the production
environment, where the SQA team and end users can do the
user acceptance testing activities.
Once the application have been satisfactorily tested and
verified on the Staging Server environment the new application
code will be deployed to the Production Server environment.
Deployment to the production server generally takes place
during regularly scheduled system maintenance windows (like
weekends and after business hours) to minimize interruption
to end users and risks to impacted applications. Production
Verification activities are performed by the SQA team and
select Client end users (immediately after deployment to
production) to ensure the new application is working as
designed. This is generally a quick testing and verification
of critical application functionality in production environment.
Now the new application has “Gone Live” and
is available to end users to access for normal operations
and processing.
Sometimes to minimize the risk to business in deploying
a complex new application, it will first be deployed to
a Pilot Group of end users to iron-out and fine-tune any
business process issues. The application may then be deployed
in stages to the remaining end user community. A key activity
prior to deploying a new application to end users will
be to provide them with adequate training on any new business
processes and procedures for accessing and using the application.
Following the successful deployment of an application to
production it will generally be under a Warranty Period
during which the development team will be readily available
for support to fix any major production issues or defects
immediately.
The project is then formally closed-off with the completion
of the following remaining activities:
Lessons Learned meeting with all
project stakeholders (sometimes called Post Implementation
Audit Review) to identify and discuss what we did well
during the project, including any opportunities for
improvement. The results of this meeting will be documented
and published as a reference and learning for future
project teams.
A Client Satisfaction Survey will
be conducted to solicit formal written feedback from
the Client on the Thejes delivery team’s performance.
Finally the Thejes Project Manager
will complete the Project Close-out by obtaining formal
acceptance / sign-off on the new application and project
delivery from the Client Sponsor. In addition all key
project documentation will be backed-up and stored
for future use, and a CD of the relevant system and
project documentation will be provided to the Client.
Payments for the final project invoice (and any other
outstanding project contract payments) will also be
collected from the Client at this stage.