Our development methodology comprises seven phases:
- Define the Project’s Requirements
- Create the Proposal
- Develop and Approve the Functional Specifications
- Develop the Software and Conduct the Alpha Release
- Test for Quality Assurance and Conduct the Beta Release
- Conduct the Final Release
- Make Enhancements and Offer Ongoing Support
The following sections describe each of these seven phases in greater detail.
Phase 1 – Define the Project's Requirements
In the first phase, we collaborate with our clients to make sure that we understand how their business works, their goals, and their marketing plan. This is how we make sure that we completely understand the requirements of the project.
Once we understand your business's challenges and specific needs, then we define the scope of the project and begin to identify the development approach and the appropriate technologies. This creates the basis for collaborative success through efficiency, work management, and final products with exceptionally high quality.
Naturally, if our clients can provide a detailed RFP (request for proposal) or a detailed project specifications before the project begins, we can skip most or all of the tasks in this phase and advance to the proposal document.
Phase 2 – Create the Proposal
In the next phase, we use the information we collected in Phase 1 to draft a detailed proposal. Each proposal contains the following:
- Our vision for the project as a whole, including the goals for the final product, a description of the final product's functionality, all constraints (including the work environment, budget, and timeframe), and any other requirements that need to be fulfilled.
- Our estimate of the size of the project, the labor hours needed, and the anticipated cost for software development.
- Our draft plan for the project, including an approximate timeline and a list of all the most important milestones.
Once the client has approved our proposal, we move on to Phase 3.
Phase 3 – Develop and Approve the Functional Specifications
The client may suggest changes, corrections, or additions to the proposal document. We always try to amend the project's scope as needed before development work actually begins, since this is the best way to avoid unnecessary expenses and stay within the project's budget. We engage in a rigorous back-and-forth process that results in our functional specification document. It contains the complete set of detailed specifications for the final product that we are developing. It includes all the requirements for reliability, performance, and the user interface, as well as any non-functional characteristics.
The document also contains a description of the main components of the software's architecture and how those components interact with each other. Having a thorough design clearly laid out in writing helps us avoid having to make last-minute changes after resources have already been invested in unwanted software development. It also helps us keep on schedule, since last-minute changes to software architecture can be difficult and slow to implement. When we follow a clear plan, we also know that the final product will easily integrate with our client's existing systems.
Throughout the course of the project, the plan and estimate are revised as needed so that the our client always had accurate information about the project's scope, budget, and timeframe, as well as our progress in meeting the clearly defined milestones.
Once the client indicates approval of the functional specification document by signing it, we can move on to the next phase where we actually begin developing the software. Once that phase has begun, any changes in the scope of the project must be requested and discussed through the use of our form for change requests.
Phase 4 – Develop the Software and Conduct the Alpha Release
Software development begins once all the project requirements and the software's architecture have been clearly defined in writing.
For each project, we identify intermediate deliverables that are shared with the client on or before defined milestone dates. This allows the client to monitor our progress. Clients can review each module, element, or system as it is completed and make sure that it is aligned with their objectives and on-track to create a final product that meet their business needs. Careful review of these intermediate deliverables is important, as it can facilitate the identification of any errors or problems as early as possible.
Remember that the further the project progresses, the more costly it becomes to correct errors. Our software engineers test for errors immediately after completing code programming, looking for relatively minor logic errors. They also test classes to check for functionality and reliability at the level of units. Once a few programs that belong to a single module have passed those tests, they are tested together for modular function. Likewise, once several modules have passed those tests, they are grouped together for larger testing that ensures they fulfill the requirements of the project. In this way, eventually the entire system passes demanding tests for functionality and we can rest assured that the final product meets the client's needs.
Once this testing has been completed, we conduct the alpha release in which the software is given to the client for a thorough review.
Phase 5 – Test for Quality Assurance and Conduct the Beta Release
After the alpha release, we engage in extensive testing for quality assurance and conduct the beta release. All of the software's code is checked for its functionality, reliability, and consistency. Our quality assurance team looks for any deviations from our standard procedures and makes sure that the final product meets all the specifications. If any bugs or other errors are found, they are immediately corrected to comply with the requirements of the project.
Once our quality assurance team has completed its internal testing, the software is deployed at the client's site for beta testing. This way the software can be observed in its intended environment, where the client can test and review it as much as desired within the pre-set time period that was established in the project plan. The client's feedback is used for final debugging and additional testing as needed.
Once the beta release has been approved, it becomes the final release and the project moves into the phase of final release.
Phase 6 – Conduct the Final Release
The sixth phase, final release, involves delivering the tailored software application to the client and deploying it on site. Our technicians install the software, making all necessary configurations for a successful product launch. We then closely monitor the system's performance so that we can offer immediate assistance if there are any problems. Our client's complete satisfaction is our top priority in this and all other phases. Our friendly and knowledgeable professionals train the client's employees as needed, making sure they have all the requisite knowledge. They also deliver any user manuals or other technical documentation that was described when the scope of the project was defined.
Phase 7 – Make Enhancements and Offer Ongoing Support
Orient Software continues to provide ongoing technical support long after the original project has been implemented. For a pre-established time period, we correct any bugs or other errors absolutely free. We also remain committed to enhancing the software applications in recognition of changes in information technology. Such enhancements are critical for keeping your software application relevant for your market and useful to the end users. To this end, we can enter into additional agreements with our clients to provide additional enhancement and support services, making sure that our customized software applications remain useful to our clients for years to come.
Foci for Our Work
Communication and Project Management
In each phase of our development methodology, we are fully commitment to providing clear communication, exceptional project management, and complete transparency for our clients. The project manager has full responsibility for communicating with the client on everything related to the project. He or she also reports Orient Software's progress at each and every milestone. Our clients are encouraged to discuss any and all concerns with the project manager throughout the development process. Our project managers always respond to inquiries and requests and quickly as possible, because we know that this is critical for the success of the project and for our clients' satisfaction.
At Orient Software, we pride ourselves on providing exceptionally high quality throughout the development process. Our quality-assurance staff members are involved in each and every stage of our development methodology, inspecting deliverables at each milestone. They make sure that our team adheres to our internal quality-assurance policies and procedures, and they keep us on track so that the final product meets our clients' requirements for functionality, budget, and timeframe.