Saturday, April 23, 2005

Fits and Starts

I really enjoy working in the start-up environment. I love the pace, the energy, and the enthusiasm, as well as the crap that goes along with it. There's also a camaraderie that forms, when the chemistry is right. Many solid friendships are formed out of these environments. The common struggle to make a name/fortune/killer-application seems to bond people together.

We all like to think that it's just a job. It's a lifestyle.

It allows a developer to be as creative as possible in there work. More often than not, the problems are second only to university research programs in terms of cutting edge. One can push the limits of the technology. Often this is just to be cool, but, just as often, because there's no time/money to really get bigger, better hardware.

There's a joy in putting as much into it as possible. There's also a joy, if it's a product company, of knowing that a customer uses the product. It gives a true feeling of accomplishment. Certainly, customers are a pain in the ass, but the feedback is really valuable. It can become a real partnership in developing a great application.

They can get really stale, though. That's the problem with start-ups. There's a point between making or breaking that the creativity can stagnate. Whether it's waiting for success or waiting for the next round of funding, there comes a point where things can't move forward with out a change.

It's also the point where every start-up executive believes that it's time to become a "real company." This means lots of process, documentation, managers, managers, managers. As a developer, and (at least I'd like to think) a creative one at that, this can become very stifling. I've been in, but never through, all the stages. That last one's the toughest.

Much of the cause for being stifled is our training. Many developers (I won't give myself the moniker "hacker") have been trained as Computer Science students. In a majority of the programs there is very little time spent on how to be a good software developer in industry. Its all very academic. The focus is on solving little problems with little solutions. This requires very little in the way of documentation (the code speaks for itself. Usually it has a terrible slurred voice and speaks in guttural, single letter words, but nonetheless...). Students don't have any deadlines aside from a due-date.

Students (at least student hackers) are also still in that stage of discovery. They are really enjoying learning about languages and what can be done with them. What are the limits, what are the benefits and the detractions. They are in those ivy halls of innovation, where limits are pushed and broken every day (I'm not say that the academic life is all wine and roses. There's a lot of shit work being done: getting grants, getting published, departmental politics, that sort of thing).

This feeling can be found in early-stage start-ups. The bounds have not been put in place (again, exceptions made for money). Much of work is research and development, writing prototypes and throwing in something really cool. It means late nights hacking and beer. There's is a fair amount of beer.

Beer (or alcohol of some form or another) is a really important part of the start-up process. The lubrication provide lets loose ideas. The mutual inebriation of the team generates excitement as the ideas pour forth. Like any ideas formed when alcohol is involved, ninety percent of it is total crap. But there are a few gems that come out of those discussions.

It's in these wonderful, free conversations that a real camaraderie is formed. Often these are discussions that include most members of the company, including the founders/CEO/top-dogs. It helps in developing a certain loyalty to the management. Like officers in the trenches, the infantry starts to believe that they'll be taken care off when they're sent over the top.

Often a false belief. Here's where I inject a slight note of cynicism. Unlike army officers, execs are out for themselves, just as much as the developers should be. They'll lay employees off, in order for the company to survive. The are officers of the company, and the company is not its employees (although, I believe this is a fallacy on their part). No loyalty should overlook the fact that the developers need to watch out for there own needs and happiness. Chasing the big bucks is tempting. It's glitter can be blinding.

That being said, it's worth the risk. I'm shopping around for something new. I miss the fresh start provided in a start-up, the cutting-edge, the do-it-yourself feeling. I miss building something new. I miss working on things I've never done before. I've toyed with the idea of starting my own.

Now that's the ultimate risk.

Lot's of reference and reverence to Paul Graham, who writes some great essays.

No comments: