transparent

Best Practices


Through years of experience, we’ve recognized that the few simple guidelines explained below can dramatically increase the likelihood of success.

Avoid Unnecessary Overhead

The first rule is to only follow those rules that make sense for our clients’ needs and environments. We are happy to recommend industry-proven approaches that could improve and maximize the effectiveness of existing processes, but it is far more important to integrate with and maintain our clients’ best practices. In this way we ensure that we only implement what clients need and do not add unnecessary overhead.

Mitigate Risks

It’s not the easy times that define us, but it’s the hard times that separate the experts from the lucky. That’s why we stress procedural and technical steps that prepare us for all circumstances. Just following these best practices goes a long way in preventing surprises.

Keeping stakeholders and clients involved in every step of the project, from requirements gathering to support, allows us to identify and escalate risks as soon as they’re discovered. SCRUM (or any other flexible methodology that’s matched to clients’ needs) provides a framework for responding quickly to feedback and identifying issues early.

As far as tools are concerned, source control is an easy way to prevent loss of work and confusion amongst teams. Automated builds reduce required developer time and create a simple, consistent check of working code. Both manual and automated code reviews allow us to catch bugs early and reduce the total cost of ownership.

Choose Tools Wisely

We always recommend using proven technologies unless there is a critical business need to be an early adopter. New technology introduces significant risks that should be thoroughly understood before implementation. One way we evaluate specific tools is by researching what other organizations use them and finding out what successes or issues they encountered.

Deliver Value Early

The quicker our projects can provide value to our clients’ business, the more effective they’re likely to be in the long run. First and foremost, clients should feel comfortable off-loading responsibilities to us with the confidence that we can work independently and communicate clearly.

Although not appropriate for all projects, we encourage test-driven development, which integrates quality assurance into every step of coding, thus reducing the likelihood of defects and eliminating the need for a separate unit testing phase. We also recommend unit testing to ensure a stable code base even when test-driven development doesn’t make sense.

Continuous integration pushes new features into production right when they’re ready and makes catching and fixing defects simpler.

Adhere to Coding Standards

Coding standards aren’t arbitrary rules intended to oppress developer creativity. They make transitioning code between authors far easier by ensuring readability and maintainability, and they increase the chances that defects will be caught early. Our standards are in line with industry standards and incorporate UML modeling.