Wednesday, September 01, 2010

Consulting Firm vs. Startup

Ubermind I just started working for an iPhone App and Rails web application consulting firm in Seattle called Ubermind. They are filled with really great people and the atmosphere is easy to work in. I just started this week and I'm already struck by the differences between startups and consulting firms.

I've been in startups for the last 15 years. And, until this week, I hadn't realized how startups are emotionally different from other businesses. In a startup, you really never get a chance to stop and look at what you've done. You never get the feeling really being finished, you're always planning that next feature.

The atmosphere is very different at a consulting firm. You don't tend to spend an entire day working on a client's projects directly, so the other time you have is spent analyzing new projects, tools, frameworks, testing environments, etc. You actually get time to research new technology, and each new client brings completely new needs that make you consider new solutions.

This is a significant difference. Releases in consulting firms are major milestones. The project is shipped and you are done. Employees are shifted to other projects. The cycle starts over again. The next time you may choose to use PostgreSQL instead of MySQL, or try Rails 3.0.

With new technology being introduced so rapidly in web development, I felt like I was falling behind when I worked at a startup, we picked our technology and approach and stuck with it. I don't feel that way in a consulting firm.

In a startup, where you're racing to prove features are needed, it's harder to rationalize all the tests that you'd want to have. In consulting, it's encouraged and absolutely necessary. It's an important part of the process and I can now see why test driven development is so widely recommended. It's usually recommended by those working in consulting firms.

I have wondered why all the speakers (and published authors) at Rails conferences are from consulting firms. Most of the critical gems I use are from consultants or consulting firms. Broad-use innovation comes from consulting. Firms tend to solve common problems like authentication, content management, file uploading, delayed jobs, to name a few.

If consulting considers solutions that have broad use, startups tend to develop a proprietary solution for the deeper problem - a custom content management system, or a custom search tool.

For any of you thinking about Consulting VS. Startups you might give this some thought to see where you fall. I love startups and will always be involved with new product ideas in some way, but if you want more opportunity to learn broadly and try new technology first, I'd recommend consulting. Especially in the Rails community, that's where the innovation is happening the fastest.