Using Agile development methodology, we have successfully delivered a wide variety of software applications: on time, on budget.
A typical project at GoodCore begins with the project manager on our end analyzing our client’s requirements. 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.
Our team is skilled with eliciting requirements which may not be obvious straight away and documenting them in clear, concise English with minimal use of technical jargon. The software specifications document serves as a reference throughout the execution of the project and it ensures that our clients get exactly what they expected and agreed to.
In cases of highly innovative software when the specifications may not be fully clear up front, we utilize our flexible agile process to iteratively refine and complete the specifications at various stages of the project execution.
Our team builds prototypes of the finished software application to help you visualize and “play with” the finished software at the initial stages of the project. Iterative prototyping is also a very useful tool to invite feedback from our clients. This phase helps reduce project risks and introduce certainty into the schedule and cost.
Once the software specifications have been completed, we undertake detailed database and application design. We put in the effort to ensure that the database design is logical, not overly complex, and flexible to handle future requirements. We have the skills and the experience to develop scaleable database designs optimized for large Internet audiences and high performance.
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. We use modern and mainstream technologies that provide good support for a solid technical architecture for your software application e.g. Microsoft’s .NET development framework for .NET based applications, the Zend and Yii Framework for PHP based projects, frameworks like Struts for J2EE based development, and iOS and Android libraries for mobile app development.
Backed with a rigorous requirements analysis and technical design effort, the stage is all set for coding to begin. Our team adheres to coding conventions and performs frequent peer reviews throughout development to ensure a high quality code that is well structured, documented, flexible, and maintainable.
Our 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.
Our team is skilled with planning and executing the launch of large scale software with organization-wide impact. We deploy the software and put in place application monitoring, periodic data backup mechanisms, and other necessary support tools. Typically, we prepare a deployment manual that documents the steps to deploy and rollback releases of the application.
After your application goes live, we offer ongoing support & maintenance of software systems should you require such services. Alternatively, should you prefer to do so, we’ll gladly hand over the support to your designated team and provide the necessary hand over and documentation in this regard.