(I have cross-posted this to theĀ Oasis Digital blog.)
Over the last year or so, I’ve spent perhaps 50 hours rethinking what kind of business Oasis Digital should be. I’ve studied business models. I’ve made spreadsheets. I’ve looked around that numerous other consulting firms. The results of all that… are slowly emerging. Stay tuned.
In the meantime, though, I noticed something very interesting: the firms that appeal to me most, in terms of web site content, community involvement, portfolios, marketing approach, etc., are disproportionately Ruby or Ruby-Rails shops. I admire the “vibe” of the Ruby community:
- Strong focus on design, to the extent that some Ruby-centric development firms have web sites which could pass for visual-design firms instead.
- Ruby developers seem unusually aware of the extent to which syntax and conciseness matter.
- There is much discussion of craftsmanship, though I’d need to survey a broader swath of production code to determine whether this discussion has a basis in reality.
- Seemingly contrary to the above factors, Rubyists also appear to be unusually pragmatic.
- This pragmatism translates to real-world financial impact: many developers make a good living with Ruby, and many firms are very happy with their Ruby projects.
- Ruby events are numerous, nationwide.
There are numerous Ruby- or Ruby-Rails-centric development firms, and Oasis Digital is not one of them (we are perhaps a 5%-or-so Ruby shop, with Ruby expertise to effectively attack automated sysadmin, integration projects, and so on). We aren’t going to become a Ruby-centric-firm, either; and there are some technical aspects of Ruby that don’t impress me.
Rather, we want to bring some of the cultural qualities seen in the Ruby community, to other languages and tools. We care about design much more than most firms, and it shows in our GUIs. We care about user experience, and we are obsessed with quality, working results.
One of the things that makes me love Ruby on Rails is the emphasis they put on “doing things right”. Basically, they make it easy to do things right, and hard to do things wrong. For instance, they make it really easy to get started with testing your code. And the framework makes it easy to separate concerns. In addition, the community stays focused on good practices, largely following the lessons of the Pragmatic Programmers.