Our developers are polyglot programmers - we know that there‘s always more than one way to solve a technology problem, and our clients value our ability to approach challenges from different technical angles. We hire and train experts in the latest programming languages and environments. And to make sure they stay at the top of their game, every developer dedicates four weeks of each year to professional development activities. We‘ve never seen another firm match that kind of dedication to the craft of coding.
Here‘s a sample of the tools and environments our programmers have real-world experience with:
- Ruby on Rails, Java, Scala, F#, .NET
- Mobile - RubyMotion, Objective-C, Java(Android), PhoneGap
- HTML5, CSS, Javascript, jQuery
- Window, Linux, OSX
- Rails, Sinatra, Spring Web MVC, jRuby
Development Done Right
Our developers know how to help their clients employ the Agile practices that will provide the most immediate value. Based on our extensive experience helping a variety of organizations adopt Agile, we examine what development processes are working well for you and where improvement opportunities lie. Together, we‘ll hone your strengths by introducing and improving Agile practices at a brisk but safe pace. Make no mistake about it, we are advocates for continuous improvement, and we‘ll do what it takes to ensure you benefit from our expertise and experience.
Some of the Agile practices and principles that we help you navigate are:
Test-Driven Development
We create a safety net around the code base by writing automated tests that verify feature completion. And we do it before we write any production code.
Continuous Integration
No one works in a silo. Many times during the day, developers integrate their work with the larger team, to make sure that everyone is always working on the latest update — and to minimize surprise "end of project" integration problems.
Refactoring
It's not just about new code, it's about all the code — which is why our developers have permission to simplify existing code whenever possible — for a better and easier-to-modify code base.
Collective Code Ownership
When everybody can extend or improve every developer's code, bottlenecks are eliminated and better code is crafted because everybody is involved.
Pair Programming
Two programmers working together at a single computer — for better knowledge-sharing, increased productivity, and higher quality output.
Ten-Minute Build
The less time it takes programmers to see the results of their work, the more creative — and effective — they can be when applying it to solve client business problems. So we keep deploy times as short as possible.
Informative Workspace
To avoid project progress bogging down, we fill developer workspaces with "information radiators" - useful charts and diagrams that keep everyone up to date on the health of the project at a moment's notice.
Just Enough Documentation
Often documentation standards are out-of-date minutes after they're, well, documented. And they slow everything down. That's why we minimize documentation before implementation, and focus on it at project end for greater efficiency and accuracy.
Incremental Requirements
By allowing programmers to work in small batches, they can more quickly implement their work, demonstrate how it works, and make it available to the wider team faster and more efficiently.
Ten Minute Standup Meetings
No one likes meetings because they have a tendency to go on and on. That's why we limit ours to ten minutes, and require every one attending to stand — ensuring highly focused discussion of progress, health and upcoming coordination — so everyone can get back to work.
Iteration Retrospectives
Every step of the project, our programmers come together to discuss the tactics that worked well — as well as those that need improvement - to insure that everybody is continually improving.
Project Retrospectives
Because we are constantly learning — from the projects we're working on and from the projects we've completed, we hold half-day and full-day reviews of all the issues and ideas we've uncovered to make the most of every project moving forward.
Kaizen (改善)
The Japanese principle of continuous improvement - a concept that not only makes things better, it makes people better. We employ it in everything we do.