Development Methodology

Our development methodology focuses on embracing reality without throwing out the dream. We realize that there are many competing forces at work during any development cycle. Cost, time, resources, quality of resources, risk management…. these all have to come together in a the right blend to complete the task at hand that is part of your overall project and vision. Bringing these things together is more than just getting the job done and meeting requirements; it’s a matter of working with the stakeholders and making sure that they continue to work the way they are most productive and enjoy; while at the same time guiding and providing the technical expertise and innovation the effort. At each milestone, we begin a short fresh process of reevaluation, assessment and rescoping so we can measure twice and cut once. Making sure you have everyone on the same page in the same book is essential and doesn’t take much time. It establishes clarity in defining what will be built and in what phases best coordinates client and developer expectations so we can best serve you. We assess what was done at the last milestone, the objectives completed and it’s progress towards the end goal. In the end software is being developed that must be used and reused in a way that does it’s best to do it’s job and simply work.

Software integration with your team:
We believe strongly in utilizing the methodologies that your development team is already supporting when integrating our code and solutions. In these areas we aim to bring valuable, synchronized elements into your existing process. We bring experience solving hard problems to the table here. Our programmers excel in removing the blocking factors that keep existing projects from proceeding smoothly. Communication is the most important factor in all endeavors, second only to the skills directly related to the solution at hand.

Small software development efforts:
Small software development efforts are where we coordinate the project to involve an agile strategy with as few hard rules as possible but no fewer. It is essentially a streamlined version of our large scale development process but it is more appropriate for projects from 1-6 man-months in length. At certain scales practices geared towards larger development may encumber the project, recognizing this we have an independent although closely related strategy to meet the needs of those conditions. Changes take place as frequently as needed at discrete controlled phases so a plan is always in place to maintain and grow as requirements change over time. This process works well for projects with fixed; well defined requirements; as well as those requiring more agile methods.

Large scale development efforts:
Larger scale development efforts require a more formalized process. Our philosophy is a variation of the classic spiral process, agile but at the same time taking advantage of utilizing any low impact pre-planning mechanisms we can. The key here is minimizing rework as requirements changing during the development life-cycle become more expensive at later stages. Missing the ball because of insufficient preplanning is still a very common obstacle to completion at many software development houses. On the other hand software development by its very nature a process must be as agile as possible. We embrace this by building it in to our preplanning. We anticipate bend points where agility is needed and build those in. We find this process works well and keeps customer understanding and synchronization with our expectations at a maximum while keeping development costs and time frames as low as possible.

The customer and the customer’s project comes first – we aim to give support and expertise in the ways that will maximize our talents and best fit with their existing process in order to hit the trifecta of timely, high quality cost effective development.