We create software that delivers real value to your business or organization. This goes beyond simply churning out code. Our approach to software development is summed up in these three ideas:
- Start simple and evolve - We believe in an evolutionary approach to software development. This helps prevent speculative over-investing in features that may not be necessary. We build what we know you need, and evolve from there.
- Deliver early and often - We don't wait until the end of a "project" to put working software in your hands. We typically build and deploy new features at least every two weeks.
- Flexible plans - We keep our plans flexible, and revisit them often. That means that when new information is uncovered, it creates better plans instead of broken plans.
Some of the specific elements of software construction that we emphasize:
- Software architecture - how do the “big pieces” fit together to address the real-world problem?
- Testing strategy - how do we ensure that the software works as expected, and continues to work correctly in the face of change?
- Technical practice - identifying the tools, techniques, and standards that protect quality and boost productivity
- Automation - create efficiency and improve time-to-market by eliminating opportunities for human error and leveraging computers instead of humans to do tedious, repetetive tasks.