GSN Games is completely satisfied with Program-Ace's technical expertise and the quality of services they provide. We look forward to collaborating with Program-Ace again...
Software development is a complex process consisting of distinct stages. The clear delineation of stages helps to better manage, develop and maintain an application. The exact stages may vary depending on a given project's requirements, duration, team size, etc.
Below is a broad outline of our software development process.
In order to deliver a bug-free software solution that meets all the business requirements of a client, our team clarifies all business-related and technical issues and works on the project in close collaboration with client the throughout the whole project development cycle.
1Project definition. The first stage of any project is to define client's unique needs and requirements. During pre-production, our company discusses the initial project requirements, business vision, project budget, copyright concerns, etc. with the potential client.
2Analysis. The purpose of this stage is to make a Project Specification based on the Vision Document and software requirements specification (SRS).
3Proposal. The Project Proposal is prepared in order to clarify all business-related and technical issues.
4Architecting. This is the first stage of development.
5Development. Our Offshore Model provides the framework for the perfect remote execution of any project.
6Tuning. After showing the Beta Version and before the final QA, our customers have the opportunity to make modifications to the software requirements. We call it Tuning.
7Quality Assurance. Quality Assurance tasks are conducted throughout the development process to ensure that the final product is of the highest quality.
8Delivery. In most cases delivery is made in accordance with FTP protocol.
9Warranty. Our standard warranty includes a 1-month guarantee period.
The first stage of any project is to define the customer's unique needs and requirements. During pre-production, our company discusses the initial project requirements, business vision, project budget, copyright concerns, etc. with the potential client.
After the potential client forwards the Request for Proposal (RFP) to us, we automatically store it in the company’s database. Then the client is assigned a dedicated Sales Manager (SM), who is responsible for handling communication between the client and our development team, as well as resolving any issues that arise during the project.
Pre-Production also includes the following steps:
Business Ethics. At this stage client can sign a Non-Disclosure Agreement and should complete all other preliminary paperwork.
Pre-Project Consulting. The SM supplies the client with all the necessary information about our company, expertise, team, etc. and answers all of the initial questions.
Business Requirements Definition. Business terms and restrictions are the key elements to any project.
Business Model Definition. At this stage we complete the Vision document which describes the purpose, objectives and logic of the proposed software. This stage is not required if client already has a Vision document or a completed Project Specification.
Outline Estimation (optional). This stage may be performed before the project has been started for small projects (under 300 man-hours).
Contract for Development. After the Vision document has been completed, we clarify any remaining general issues and sign the contract for development.
Software Requirements Definition. Effective analysis of customer requirements is a critical factor in any successful software development process. Therefore, we pay a lot of attention to this stage.
Full list of software requirements:
The principal deliverable for this phase is Software Requirements Specification Draft (SRS Draft). When we have finalized your budget and other requirements, we can go on to analyse the project and propose a suitable solution.
Note: We can proceed with your SRS if you are a professional software development company or if you have already completed this phase.
The purpose of this stage is to make a Project Specification based on the Vision Document and SRS Document. There can be two possible situations:
In either cases, this stage involves the following:
Once we have the client’s budget, Business Requirements, SRS draft, and Project Specification draft, we will compose a suitable Technical Proposal Draft.
Once the customer approves the Technical Proposal Draft - as well as our time and cost estimates, the draft is upgraded to a final Project Specification.
The Project Proposal is prepared in order to clarify all business-related and technical issues.
A Project Proposal covers the following points:
1) Terms of Service. We offer very attractive conditions for our customers such as: payment by milestones; product support; customer support; end-user product support; monitoring; etc.
In the Project Proposal we state:
We are ready to consider any of client’s additional requirements concerning conditions of the service.
2) Development, Project Management and Testing Team planning. Careful team planning is the most efficient way to optimize the result of a project. Depending on the project's size, length, complexity, and our previous experience, a certain team of developers is chosen. Typically it consists of:
Team leader – the most experienced developer in the team
3) Time and Cost Estimation. The cost of our services is calculated using our time costs and hourly rate. Based on the composition of our team and the software requirements, we estimate the total sum of man-hours necessary to complete the project. The total cost of development can also include other charges such as unique hardware, third-party services, etc. At this stage, we provide only a draft cost-estimate. Some changes are possible when we begin to develop the complete project documentation during the Architecture Stage. In most cases, our Time and Cost Estimations drafts are highly accurate and do not vary more than 10-15% from the final cost.
4) Timetable Design. We develop a timetable for each team member as well as a general timetable for the entire project, which is based on the total man-hours of work. The timetable is a list of all necessary work, beginning with project documentation and ending with functional implementation and testing. This level of detail helps both sides see how the project will progress. Additionally, upon the client’s request, any of the steps can be designated as a "checkpoint".
5) Define Milestones, Checkpoints and Deadlines. In order to meet deadlines and control intermediate results, we divide the Timetable into separate milestones:
As previously stated, upon the client’s request, checkpoints (demonstration of certain results on a certain date) can be attached to any phase (upon the customer's request).
This is the first stage of development. During this stage we complete the documentation necessary for the rest of the development process, including:
Our Offshore Model provides the perfect framework for the execution of any out-sourced project.
Usually during the Development Stage, the active participation of the customer is not required. Using the exact specification approved by customer, we work independently and accurately to carry out every phase of development.
If necessary, our team can work closely with the client’s managers. This is typically required for large projects or partial outsourcing. In such a case, our AceRemoteProject™ system coordinates all necessary interactions between the client and our development team. If it is a situation in which our team is working as part of the client’s team, then we are more than comfortable using the customer's preferred project management software.
The Tuning Stage, which is optional per the request of the client, and the QA stage typically require more active participation from the client.
Most development companies do not allow clients to change the software requirements until the project is completed in accordance with the original specifications.
Our clients, however, have the opportunity to make modifications to the software requirements after the release of the Beta Version and before the final QA. We call this "Tuning".
During this stage we request daily active participation, daily contact and the immediate notice of desired changes from the client. This, in turn, allows us to produce a better product in a short space of time.
Quality Assurance tasks are usually spread throughout the development process to ensure that the final product is of the highest quality.
Standard Quality Assurance measures include:
We develop a custom, comprehensive strategy to test each application. You'll also be provided with a definition of these tests, the data requirements and the actual and expected test results. In addition, you will receive exact documentation of our usage of time, your budget and resources.
In most cases delivery is made in accordance with FTP protocol. Delivery includes:
Deployment. For web-based projects (Internet, Intranet, Web), the delivery also includes deployment onto a server for the customer:
For web-based projects, Deployment is done during the QA stage in order to test software in real conditions.
User Training. Besides usual training, this phase also includes support for non-standard problem solving, adjustment of system parameters, and client support for any stage of product development.
Project Acceptance. The client’s confirmation of a successful delivery and their 100% satisfaction.
Our standard warranty includes 1-month warranty period with.
If a considerable amount of post-production support is necessary, you can use our AceSupport™ services.