Monday, November 3, 2008

Reasons Why Developer Life at a Startup Is Good

I work at a small company as part of a three-man development team. Some days I marvel at the amount of opportunities this provides, and I thought I'd talk about a few of them, and why they are awesome:

1) You own a big part of your work.

You are often as much as 50% of the development staff. You have broad freedom to implement whatever you see fit. If you identify a problem and you have a solution in your mind, pitch it, and if you have time, you can do it.

There isn't someone looking over your shoulder who will swoop in and fix whatever you messed up. Some people might see this as a bad thing, and I suppose it can be, but it's also really really good. If you write something and toss it into production, it's your time that will be spent rushing to fix it after someone hits the problem and submits their bug report. This makes you more careful, and makes you think about end users while developing, something that's often lost when you are in a bigger shop, abstracted away from the users by five layers of organization.

2) You can really get broad experience in a short amount of time

Just this last couple of weeks, I did the following:

1) Scoped and scheduled a project
2) Set up a LAMP server for a PHP project
3) Did work on the PHP stuff
4) Did work on some Java stuff
5) Evaluated jQuery plugins for a new UI component

At most jobs, you do a whole lot of the same thing over and over again, as you can take advantage of the economies of scale provided by larger staff. While division of labor is a Good Thing, it's not that great for someone who wants to grow their skill set and solve new and interesting problems as part of their everyday work life.

3) You shouldn't work with much dead weight

As I mentioned above, when you work at a startup, often you are more than 10% of the team, maybe even more. Now, while it means that your contributions are crucial, it also obviously means that a lack of contribution is also critical. It's a case of the "chain being as strong as its weakest link". If everyone is doing their job on the dev team, but nobody is marketing, or the marketing and sales teams are incredible, but the developers can't realize the vision, then you are going to fail. It's high pressure, high reward, and usually this means poor performers will either quit or be removed if they are not pulling their weight. This is a significant difference between startup life and big-company jobs.

4) Your opinon counts

If you feel strongly about something, you have the ear of people in charge. You were hired to do this. You weren't hired to be a rank-and-file programmer. That isn't good enough. Learn about the domain you are working in, learn about how the business works, make suggestions. Come up with new things and new ways to do things. You can directly impact the way the company runs, and how it's products work or are positioned. This empowerment shouldn't be squandered.

Now there are a few bad things about working at startups, but not really as many as there are when working in a bigger company, and for someone who relishes challenges and learning, I strongly suggest that you try it out someday.