|
Red Squirrel Reflections
Dave Hoover explores the psychology of software development
|
|
Tue, 23 Jan 2007Like many small consulting companies, Obtiva was built upon a longstanding relationship with a large, local client. A client like this provides a strong foundation on which to build a business. As I said in my 2006 Retrospective, my primary goal for 2007 is to spend an increasing amount of time in our Wheaton office leading our Rails projects. To achieve this goal, we will need to bring in a steady stream of new projects. I'm happy to say that January has proven to be a good start. We kicked off two new Rails projects: negotiations software for a large bail bonds company and (yet another) social networking application for a major television network. While these projects are wildly different, they have one thing in common. Both clients are located in California. Why is that significant? Go read Mike Karlesky's insightful post on Inshoring. While neither Obtiva nor Atomic Object can compete with the prices of our offshore brethren, it is possible for us to undercut our coastal colleagues. Moving toward distinct, shorter-term projects creates a need for a steady stream of new business, which is exacerbated by our expertise in Ruby on Rails and agile practices. We have found that by coupling a killer technology like Rails with the disciplines of frequent releases and test-driven development, we are able to deliver our projects ahead of schedule. This puts more pressure on us to bring in more projects, but it also increases our chances for repeat business, not to mention the morale boost our team feels. It's a positive feedback loop that I hope we'll still find ourselves in when summer arrives. Sat, 13 Jan 2007HooverObitvaMacBook:~ davehoover$ irb --simple-prompt >> 'rose'.capitalize => "Rose" >> 'RoseHoover'.swapcase => "rOSEhOOVER" >> 943222 + 3000000000000000000000 => 3000000000000000943222 >> Wed, 10 Jan 2007I'm not sure why anyone would want to run Watir scripts on a handheld device ... but since the iPhone runs on OS X and ships with Safari, I'm wondering how difficult it would be to get SafariWatir setup ... just because we can.[/projects/watir] permanent link Tue, 09 Jan 2007Pioneers: independent, yet cooperative I'm slowly working my way through The Spirit of Democratic Capitalism, a book that looks at democratic capitalism form a historical and theological perspective. Much of what I've read reminds me of the talks and writings of Nathaniel Talbott on homesteading. I read a quote last night that reminded me of a quality that makes many ThoughtWorkers special, and something I'm trying to cultivate at Obtiva. I'm talking about this contradictory quality of being fiercely independent, and yet cooperating almost continually with their colleagues. The quote that struck this chord was about a family that journeyed from upstate New York to the Iowa territory in 1842:They took pride in being free persons, independent, and self-reliant; but the texture of their lives was cooperative and fraternal. p. 135I immediately thought of Obie and Aslak when I read this. When the three of us were on our first project together at ThoughtWorks, I was star-struck by their development prowess. They are certainly intelligent, ambitious, and motivated guys, but the thing that struck me was the breadth and vitality of their personal networks. Colleagues were frequently IM'ing them with questions ... and whenever we were stuck, we didn't just have Google at our disposal, we had a responsive network of world-class developers to ask questions of. And we often did. This is a habit (and network) I have taken with me as I left ThoughtWorks. While individual qualities are critical for success, a cooperative network is a distinguishing asset that is hard to detect on a resume or portfolio. Wed, 03 Jan 2007Inspired by Jamis' post on assert_select I've just committed an update to my Watir on Rails plugin that adds support for both assert_select and assert_tag. Give it a try!
require File.dirname(__FILE__) + '/../test_helper'
class GettingStartedTest < Test::Unit::TestCase
include WatirOnRails
def test_getting_started
browser = open_browser("/")
assert_select "div#getting-started h1", "Getting started"
assert_tag :tag => "h1", :content => "Getting started",
:parent => { :tag => "div", :attributes => { :id => "getting-started"} }
end
end
Rather than asserting against the body of the response from the controller, I'm grabbing the HTML from the most recently opened browser.
[/projects/watir] permanent link Reviving the Lightweight Visual Thesaurus I've brought my Lightweight Visual Thesaurus back to life. I'm hoping to make some improvements to it this year, like supporting more browsers than just Firefox. |