Our team has been building applications since before the web was conceived. Today our primary focus is on the agile development of web-based applications built using Ruby on Rails.
What We Do
We focus on solving our customers needs using Ruby on Rails. We've found Ruby on Rails to be the most productive and sustainable development platform to build our clients long term solutions on. We tried it on ourselves first with our Kase Manager and Modal Tracker products.
We can help you with your web start-up, line-of-business application, software as a service offering, or internal intranet application needs.
In a sense, we've been in the start-up business for a long time. The members of our team have helped many companies launch their first web-based offerings. Additionally, we have deep start-up experience in the Internet realm going back to 1995. We get it.
Our team will help you develop your ideas and define a realistic achievable 1.0, build it and launch it.
Line-of-business applications focus on the core of your business operation. Our team can take your project from conception through implementation to launch and provide ongoing support and services.
With our experience designing and implementing large systems, such as MORI and Quadran, we have the expertise to deliver large complex applications. We understand the needs and concerns of an organization automating the core of their business operation. We've been there and done it. We can do it for you.
Software as a Service
We got started doing Rails while implementing our first Software as a Service offering. We've been through the cycle. We can help you design your application and get to a 1.0 release quickly and efficiently.
Our team has experience developing internally facing intranet applications for organizations large and small. From small apps exposing existing data, to more complicated offerings, we can deliver in a timely fashion.
How We Do It
We are dedicated to delivering working software to our clients. This focus has lead us to adopt certain practices, including:
- All of our developers work in teams of two.
- We employ behavior and test driven development practices: if the software is not tested, it's not done.
- We use short iterations, usually one or two weeks, with reports to you, the client, at the end of each iteration.
- We believe in working software. Our goal at the end of every iteration is to demonstrate working functionality. We release early, and release often, to be sure the software does what you want.
- We believe in transparency to you, the client. The status of your project is always available via Pivotal Tracker.
A Typical Engagement
Because all of our developers work in pairs, our typical engagement starts with two developers. Starting with more than two developers is usually unnecessary. Our goals in the first phase of your project are to:
- Define the major stories and features you want your system to have and enter them into Pivotal Tracker.
- Create specifications for the major features using Cucumber.
- Create detailed mockups of the application interface using Balsamiq Mockups.
When these three tasks have been completed, the stories will be assigned to developers to begin implementation. (We don't need to capture every feature and story to get started, in fact that's almost impossible to do. We need a good representative set.) The number of teams working on your project is at your discretion. Our experience has shown us that small teams are the most efficient. We typically work with one or two pairs of developers for most projects. If your project is large, with a work load that can be worked on in parallel, it might be possible to add more developers, we will work with you to find the most appropriate sized team.
You're In Control
During the development of your project, as features are completed, their status will be tracked in Pivotal Tracker. Once a feature has been marked delivered by our team, you have the ability to sign off and either accept or reject the feature at that point. You are always in control. Our highest goal is to deliver the software you need, even as those needs evolve.
Behavior Driven Development
During the first phase of your project, our team will define the features using a tool called Cucumber. Cucumber allows us to write feature specifications in plain English that can be executed to verify the application. Additionally, during implementation, our developers use a "specify first" methodology where executable specifications are developed, then the application is implemented to satisfy the specification.
The specifications of features and application functionality define the behaviors you want your application to have. These specifications allows us to successfully deliver verifiable software that meets your requirements.
During development, as our developers work, they continuously run the specifications against the developed code. At all times, our developers goal is to deliver software that implements the defined specification and at no time breaks functionality that has already been completed. Testing continuously assures that we keep things right.
During development, the latest working version of your application will be available for you to test and monitor. We believe in releasing functionality early and often. During the implementation phase of your project, it is common that our team will deploy multiple versions of your application per day. Frequent releases allow us to create a virtuous cycle of feedback that improves the application and helps us satisfy your real needs.