To ensure that our clients always receive top-quality software products on time and within budget, GGA employs a rigorous project methodology, which is premised on a holistic view of systems engineering. This approach recognizes the vital importance of human interactions – between our management team and our clients, as well as between our clients and the systems we build. This philosophy informs every stage of our software development process – from gathering project requirements to delineating detailed specifications, executing the project, and testing the resulting systems. After all, meeting or exceeding client expectations is our ultimate goal.
Careful requirements gathering is an essential first step in any software or database development project. In our experience, the time spent up front to gather detailed functional requirements eliminates process delays, improves system quality, and greatly reduces "function creep" with its associated cost overruns. In addition, requirements gathering lays the foundation for a framework of mutual education, brainstorming, negotiation, and progress tracking.
At the start of every project, GGA's programmers and project leaders from the Cambridge, Massachusetts office work together with our clients to develop a detailed understanding of their needs. This process typically involves a series of meetings where our software and database experts collect functional requirements from users, resolve conflicting requirements, establish and prioritize project goals, and identify critical risk and success factors for the project.
Once the functional requirements for a product have been gathered, GGA's project leaders work with the client to translate those requirements into detailed project specifications. At this stage, the team resolves any conflicting views of the product or the overall project goals, defines the interaction of the product with each user group within the client's organization, and establishes a delivery time and cost estimate for the project.
From our experience with past projects, we recognize that it can be difficult to predict how a complex system will perform and how it will look and feel, until it is deployed. For that reason, the best approach often is to build a prototype system at first and then make iterative refinements, adding new functionality as needed. This approach is often the fastest way to bring a product to market.
As a project moves into the development phase, GGA's Cambridge team maintains continuous contact with the client and with our programmers and content specialists in St. Petersburg to ensure accurate communications and constant project oversight. Our managers and quality control personnel in St. Petersburg supervise every detail of the project and report weekly to the Cambridge office. This uncompromising approach to quality assurance and project oversight provides complete accountability for every stage of the project and ensures that the final product fulfills or exceeds the client's expectations.
In today's highly competitive marketplace, releasing new software quickly is often the key to success. There is tremendous pressure to be the fastest to market with the right product or service. However, the accompanying sense of urgency can lead to shortcuts that compromise product quality, resulting ultimately in unsatisfied customers, lost revenues, and a diminished reputation.
With GGA, you will not sacrifice quality to achieve timely results. Our software quality assurance (SQA) procedures start the day the project specifications are finished and continue until the project’s completion. GGA has developed an on-line system Track Master that allows our team members and clients to monitor quality assurance, input SQA issues, track bug fixes, and follow project item changes at their desktops.
Our quality assurance program encompasses the following: continuous tracking of quality assurance issues on-line with Track Master test strategies for program functions and expected performance parameters; continuous generation and implementation of test scripts to track program output in the development process; stress testing, risk and failure analysis, and defect analysis; automated testing, when appropriate; detailed QA documentation; and optional SQA training programs for clients.