Our Approach

Our experience has taught us that quality software systems can only be developed using a consistently repeatable process. A process can be consistently repeatable ONLY if it is simple to use. We use the basic principals from agile development methodology but use a more pragmatic approach that is tailored for each engagement. We strive in making all aspects of software development lifecycle consistently repeatable. Starting from requirements analysis and software design all the way to testing. Even all the environments (development, test, user acceptance environment, production) that our systems touch during the software development life cycle are consistent and promote a continuous and early deployments and integration.

Our approach is based on the simple philosophy of Iterating, Incrementing and Evolving a solution. We realize that a complex problem can only be solved by decomposing it into smaller manageable chunks. We insist on implementing, testing, integrating and deploying these smaller chunks from end to end. While evolving these smaller solutions, we pay close attention on how these solutions fit into the overall solution. We provide strong leaderships that can make hard decisions and keeps the project on track by never losing focus of the end goal.

The most important reason for our success with this approach is the principal of testing early and testing often. At the core of our approach is an extensive regression test suite that is executed everytime a component is released. What this means is that all aspects of the system are continuously getting exercised and challenges are identified and fixed throughout the development lifecycle. Since this process is based on learning and continuously improving the system while developing it, testing early and often is the only way to find and eliminate errors before they become problems.

This simple approach allows us to present a working (even if incomplete) system very quickly to the stakeholders allowing them to come up with new and interesting ideas that generally results in a solution that better satisfies their needs. The flexibility of our approach, the small iterations and a rock solid test suite helps us in managing these changes effectively; finally delivering a robust system that satisfies our customers needs.