Sunday, December 2, 2012

Bootstrapping by Contracting

For my new company, JustGolf, we opted to try to bootstrap some of our initial development by taking on a contract app development job. I would not call this a mistake, but it did have an unforeseen challenge that you should be aware of if you decide to bootstrap in this way. That challenge is avoiding the urge to get emotionally involved in the project.

When doing contract work, you must do your best work. You owe it to your client and your reputation depends on it. That sometimes means adding, or at least suggesting, the addition of features (large and small) outside the original statement of work — especially if it is clear that the lack of those features jeopardizes the potential success of the project. That said, if the project is a means to an end, the line has to be drawn somewhere.

Building Someone Else's Dream

The guys we contracted for were a couple of guys a lot like us: two guys with a dream and the motivation to make it happen. They wanted to build an Open Face Chinese Poker app, but weren't developers themselves; they're professional poker players. Because they were kindred spirits (not to mention nice guys), they were a lot of fun to work with.

In meetings with them, it was easy to get caught up in the excitement of their building a business. After all, they were doing the same things we were: setting up a Twitter account, a Facebook page, and a blog and starting to get some traffic. We helped them research their competition and brainstorm about how to position themselves against it. In development, we continued to add little features that we thought would make the app better.

This was all well and good until it dawned on us that we were building someone else's dream. One of the reasons that we left corporate jobs behind was to build our company, not someone else's. Here we were, back to working for someone else. We had let ourselves become emotionally attached to their company and separating from that was hard. It was time to get on with building our company and our first app. The mantra became "Get it done."

If you're considering bootstrapping a startup by contracting, let this be a cautionary tale. Know what you're getting into and keep some emotional distance. Otherwise, you may wake up one day and wonder why you never got around to building your killer company.

Sunday, November 4, 2012

Bozo Filter

Whoa! Time to dust off this blog a bit. To that end, a quick story from my now-previous job that dovetails well with my last post.

At Appconomy, we used See[Mike]Code to do technical phone screens. One or two developers would jump on a call and have the candidate write a couple of simple functions in the programming language of their choice. These were bozo filter kinds of coding questions, nothing complicated. Ideally, the process would take 10-15 minutes, including the initial pleasantries. We just wanted to make sure the candidate actually writes code before we would bring them in. We did this as a last screen before bringing someone in for an onsite interview -- after screening resumes and having our HR Director do her phone screen.

One afternoon, our HR Director stopped me and a colleague (coincidentally his name is Mike) in the hall. She said somewhat meekly, "I just had a candidate decline to do your coding test. He said, 'I cannot condone that kind of interview practice.'". Mike and I looked at one another quizzically and then he turned back to her. "Perfect, it's working better than we ever imagined."

I don't know what this person's real objection was, but if you are interviewing for a programming job, there are no valid reasons to object to writing a small amount of code as a part of the process. With few exceptions (e.g., your name is DHH), there is no reason to object to a bozo-filter. Just remember, if you're good enough to get hired (and if you're objecting, you must think you're a lock to be hired), you will eventually be the one who's doing interviews when you could be coding. When that day comes, you will appreciate having a good, fast filter in place.