How we build software that just works.
What to expect when you work with us.
We're obsessed with building quality software that just works. As a team, we're constantly looking for ways to make the software we write better. What we've learned over the years, we've adapted into a process that we use for all of our development. Every line of code we write follows the process below.
Before any programming can begin, we'll have a meeting with you to define your requirements. We'll create mockups and work with you to blueprint a system that can be built efficiently to meet your needs. If you don't know what you need, we'll work with you in this step to figure out the best way to solve your problem quickly.
During this step, we'll help you to define a minimal viable product (MVP) that will represent the first usable form of your application. The MVP isn't a complete product, but it is the first usable version that will allow you to gain feedback. By getting feedback early, you'll be able to adapt your application to better meet the needs of your users.
After we've defined the requirements, our developers will break down your requirements into small parts known as "stories". Each story describes a small piece of work that we need to complete to fulfill the requirements. This is the first step where we start to get a sense of the amount of work involved.
To get a rough estimate of the costs involved and how long it will take before you can use your new application, our developers will perform an estimate for each story defined in the step above. By using a combination of the estimates on all stories, we can define an estimated completion date. Stories can be added or changed at any time with an instant effect on the estimated date. This way, as your requirements change, we can adapt our development schedule to better meet your needs.
Isolated test driven development
As a developer completes each story, he works in isolation from all other changes. Automated tests are written to define how the story should function, then code is written to make those tests pass. Automated tests serve to document and validate the working of each story so that as your application grows, new stories can be added without breaking the functionality of work that's already been completed.
Before we allow any code to be merged with the released application, it undergoes an internal code review. All changes are reviewed by at least one other developer to ensure that the code meets our quality standards. Our developers have strong talents in different areas and, by utilizing code reviews, we're able to produce code as a team that's stronger than code written by any individual.
After each story is complete and has been approved through a code review, we combine all of the changes that define the story into a single batch and merge the changeset into the released code. This provides a great advantage in maintenance because every change is now defined in context of the story. When we need to debug a particular piece of code, we can see how it was introduced and the full set of changes that defined the need for it.
After all of the steps above are complete, we are ready to instantly deliver the updated code to your running application. With automated tests, an internal code review and acceptance process, we have the confidence to update your running application instantly, whether you have 50 or 50,000 users. When you work with us, you can expect frequent updates with new features that do not break your existing application.
We build software that just works.