Rob Eberhardt's Corporate-vs-Consultant post has prompted me to talk about my experience with self-employment vs. employment.
I did the self-employment thing from 1999 to 2003. I was single during most of that time, and had no kids. Then I came to work for Business Integration Group. BIG was at around 10-11 people when I joined and now we're a little over 40. I'm now married with 2 kids.
I can't imagine going back to self-employment. I worked like 50-60 hours on a good week, 100+ hours on a busy week. The pay was so inconsistent that it was not lucrative. However, I admit that I am a BAD businessperson and a marginal PM. I committed to too much work and didn't document deliverables. So I'd end up giving a client $20K worth of work for $12K cash (paid 3 months late) a lot of times.
Working at BIG is great. The HR director and the VP of Business Development (sales guy) are the only non-billables. Even the 2 owners are billable. So that really prevents the feeling of "working for the man." And I work a lot less hours now than I did when I was on my own.
When I was self-employed, I thought I had it made. I could use whatever technology I wanted and I didn't have to justify it to any non-technical boss. In fact, we released a quarter-million-dollar ASP.NET application for Procter and Gamble while .NET 1.0 was still a release candidate. To do this, we had converted our 40% complete ASP project to ASP.NET during Beta 1. We then of course had to rework the whole thing again when Beta 2 came out and changed a ton of stuff. Talk about bleeding edge! No one else was putting out applications of this size in ASP.NET. I felt like a genius.
Then I took the job at BIG because I couldn't pay bills anymore. Being recently married, paying bills became a priority.
My first day, Beth greeted me and said, "you're going to be working with Jess; he knows everything!" My heart sank. I was going to be stuck working for some dweeb that didn't know anything about ASP.NET; yet he'd found a way to convince the bosses that he was an expert. I'd be stuck doing everything the wrong way even though I really was an expert at this stuff. This was going to be hell. What have I done to myself?
Well... it took me about 6 weeks to realize 2 things. One: Jess really does know everything; I don't know how, but he does. Two: I know very little.
When I was self-employed, I had one development partner. He and I thought alike on almost every problem. We would make minor changes based on the other's improvements, but we were never challenged to think differently.
During my 5 years at BIG, I've found that there isn't anyone here that I can't learn from. I realized this during my 2nd year at BIG. I was leading a team of about 15 developers (including some from the client), and at least one of them taught me something new every single day. The team I have today continues to show me new tricks constantly.
Also, I worked from home full-time for about 5 years before coming to BIG. But I cannot imagine working from home full-time again. Being in the office with all of these folks fosters some amazing things. We have so many ad-hoc whiteboard sessions and discussions that I don't see how a virtual office could ever produce the same results.
BIG is fortunate that we have a very smart group of people here, so I know that I wouldn't find this environment everywhere. But as each year has passed, I've realized that I know a lot less than I thought I knew the year before; and that's a good thing. There's no better way to grow your knowledge than to realize how many gaps you have to fill.