Methodology
Quality software results from understanding the client’s specific requirements, careful planning, and precise construction. Our software development strategy is the product of years of experience in real-world business environments. Our experience is what separates APP from other development organizations.
We can bring that experience to your development project.
Planning
Planning is the key to a successful outcome. APP relies on a careful, yet concise planning process to guide your software development project. These procedures provide a “flight plan” for a successful development effort, reducing real dollar outlay and lost opportunity costs to your clients.
Requirements Definition
Your software project will be successful because we focus on solving the specific business problem. APP designers meet early and as often as required to determine business requirements, as well as the technical requirements, of the project. A project is not considered successful unless it fulfills or exceeds your business requirements, is manageable, and can evolve as needed.
Risk assessment
The goal of any quality software development organization is to minimize risk. The APP software development process minimizes problems by determining the potential areas of risk early in the project, and recommending alternative approaches before they become an issue. By working through possible risks early in the project, the potential for unforeseen problems is minimized.
Design
In designing system architecture, APP believes in Einstein’s philosophy. We believe that wherever feasible, “make things simple as possible”. Today’s Internet technology based systems can be quite complex, so every simplification effort leads to ease of comprehension and maintenance in the future. Moreover, since few systems, especially Internet-based ones, remain static for long, ease of adaptation and future enhancement is a crucial consideration.
Construction
At APP, construction begins with a thorough knowledge of the problem domain. Every day, in each module constructed, every developer makes dozens of micro-decisions that affect the quality, usability, and focus of the finished product. We believe that domain knowledge, knowledge of state-of-the-art development techniques, and customer requirements promotes construction of modules with inherent quality.
Staged delivery
APP organizes each project as a series of milestones, each of which has well defined deliverables for client review and approval. The emphasis in the early milestones is on delivering a functional segment of the system for evaluation. This system will have rough edges, but will demonstrate overall functionality. This “proof of concept” minimizes one of the biggest risks in any complex project – integration. By demonstrating end-to-end system functionality early, APP avoids the last minute integration issues that can delay project deployment.
QA and Testing
Through the milestone approach and our development process, we assure that quality is built into APP software solutions, not “tested in” at the end, although general testing is an important part of the APP development process. We believe in the agile development approach of continuous testing.
Continuous testing states that no core module is considered code complete until unit and functional test modules are also completed. These test modules exercise the code modules and verify their functionality. The test modules, when grouped together, form a test suite that can be run at any time to verify system quality.
Another important part of the quality process is simulation testing. Part of the APP testing process involves simulating hundreds or thousands of users and running millions of operations through a new system. This simulation testing finds threading problems, locking conflicts, memory leaks, and other problems that cause long-term or heavy load instability. Performance problems and system bottlenecks that show up during simulation testing can be remedied before production. They can also be run after delivery to verify system functionality and performance.
These steps assure clients that they have a solid, reliable system delivered by your development team.