Our
Approach
We have successfully delivered a wide variety of web applications:
on time, on budget. Here is a how we approach a new project:
Requirements Analysis
A typical project at GoodCore Software begins with the project
manager on our end engaging in discussing requirements with the
client. We identify the objectives of the project, the budget and
the time constraints, and invest the effort to understand client's
vision about the software solution they are aiming to build. A high
level of emphasis is placed on eliciting requirements which may
not be obvious straightaway. Time and again, we've seen the benefits
of investing into this phase.
Prototyping & GUI design
Making a prototyping of the application along with GUI design helps
all stakeholders to get a feel of a working system at the initial
stages of the project. A prototype is very useful to crystallize
and further refine requirements. This phase helps reduce project
risks and introduce certainty into the schedule and cost.
Database Design
Once the requirements and GUI design are signed off by the client,
the stage is set for detailed database and application design. Effort
goes into ensuring that the database design is logical, not overly
complex, and flexble to handle future requirements. We have the
skills and the experience to develop scaleable database designs
optimized for large Internet audiences and high performance.
Application Design
Our technical architects break up the application into the logical
tiers (Presentation, Logic, and Data Access) and specify the class
hierarchy for an object oriented design. Typically, this doesn't
need to be done from scratch. The technologies we use for our projects
provide the base framework for this purpose e.g. the Zend Framework
for PHP based projects, .NET development framework for .NET based
applications, and frameworks like Struts for J2EE based development.
Programming
Backed with a rigorous requirements analysis and technical design
effort, the stage is all set for coding to begin. Attention to coding
conventions and frequent peer reviews throughout development ensures
a high quality code that is well structured, documented, and flexible.
Testing & bug-fixing
Skilled quality assurance personnel thoroughly and systematically
test the application and prepare defect reports. The process of
defect-fixing and testing proceeds iteratively until the software
is considered stable to be deployed.
Deployment
The software is deployed and put in place with application monitoring
and periodic data backups. Typically, we prepare a deployment manual
that documents the steps to deploy and rollback releases of the
application. |