In 1999, I left my nice, comfortable position at a great company to go work for “RealtyCheck.com.” We were going to make millions, I tell you. I mean, we had ".COM" in our name, and it was 1999! What could possibly go wrong?
The company dress code was shirt and tie four days a week. I should have known we would never make it.
Nearly ten years later, in 2008, my friend Chris McMahon wrote on a test discussion list that Socialtext was hiring. I responded, jokingly, that I was only interested if I could work from home. It turned out the whole software development team worked from home, and Chris offered to recommend me. The next three years were among the most exciting, joyful, fast-paced, personal and professional growth years of my life. They sharpened my technical skills, stretched my social skills, reinforced my habits of study and writing, and helped launch my career as an independent. I am proud of the tool we built. (I am using it to compose this article.)
When my time at Socialtext ended in April 2011, I took a few moments to take stock of some of the lessons I had learned. Here are a few of my favorites:
1. It's not about where you work. It's about how you collaborate. In graduate school, we learned that communication beyond four walls was expensive. The solution we were taught for distributed teams (and outsourced and offshore work) was to try to get things correct up front, thus limiting handoffs and communications cost and friction.
That trick never worked—at least not in my experience. The terms we used were so vague and the domain knowledge so deep that we ended up investing a huge amount of time in rework and communications. When the agile and XP movements were touting co-located teams in the early 2000s, let's just say I was not surprised.
Ten years later, I have to admit, I think we got it wrong.
Instead of trying to “get things right up front” to prevent collaboration, we should have been working to change the culture to make communication cheaper—and doing more of it. Tools and techniques like Office Communicator, core hours, Twitter, Skype, VNC, pair programming, GNU Screen, and, dare I say it, Socialtext, make it possible to lower communications costs to very close to what they are for physically co-located teams.
One of the companies I worked for used to have a project management culture of “busy-ness.” Leaders were never at their desk, and it would typically take two days to get an answer to email. Compared to that, I'll take distributed but available any day.
2. Startups have a different profile for risk than established companies. Large, established companies are generally making money right now. They can change nothing, coast, and continue to make money by sheer inertia. Startups aren't like that. Instead of coasting, they will continue to burn cash until they run out of business. This creates an incentive for a large company to protect its old lines of business, and for the startup to constantly change.
In other words, if you like change, innovation, and rapid experiments, consider a startup or a large company organized as a portfolio of startups.
If the decision makers have any acumen, the startup will be much less likely to tolerate dead weight, politics, or drama. The risk is simply too great. At a software company, this means you are more likely to be able to spend your time building a great product and less likely to be stuck in wasteful meetings or documentation.
I didn't realize how much these sort of success factors impact culture and behavior until I came to work for Socialtext. In other words, if you aren't a great culture fit for your current environment, there might be a reason. When you look for the next place, consider these factors carefully.
3. Autonomy and choice are undervalued in North American business culture. If you can work for a company that values these things, take the job. If you have an opportunity to lead a company and to add some of these things, do it. And, consider it a blessing.
4. Test setup should be cheap, quick and easy. Disk space is cheap. CPU time is cheap. Virtualization is cheap. What is expensive is human time spent testing or waiting for a server to spool up. If you can't spool up your very own test server, load it up with a reasonable amount of data, and get to a good testing point in around fifteen minutes or less, beware, because your competition probably can.
5. What you are doing now is a season of your life. Seasons last for a little while. Eventually, they end. That means that the things you hate about your current season will eventually end, so rejoice.
The bad news is that some of the things you enjoy may end too, so enjoy them while they last.
I'm not a hedonist; I am not saying we should pursue pleasure for its own sake, only that we can find enjoyment and meaning in the moment as we experience it, instead of always planning the next big thing. (As an achiever, this was a hard lesson for me to learn, but it was worth learning.)
6. All of this is going to end. Yes, we may get to work on a few big projects. You may one day look back at something special and say, "I contributed to that!" But, ten years from now, it is unlikely that anyone will remember that story you worked on to “add middle name to profile and display it on a half-dozen pages.”
However, we can hang our hats on our reputations and relationships. A huge part of why I pushed myself so hard at Socialtext—right next to building a great product—was the people in the trenches next to me—people like Luke Closs, Ken Pier, Audrey Tang, Chris McMahon, Jeremy Stashewsky, and Brandon Noard. I wanted to impress them.
If you are stuck on a dead-end project, if the application isn't cool, or if the business isn't great, take a look to your left and right. Ask what you can do to belong to a group like C.S. Lewis’s "sound craftsmen," who “will do those things which that profession exists to do and will in the long run be responsible for all the respect which that profession in fact enjoys and which the speeches and advertisements cannot maintain.”
Ten years from now, your company might be gone. But, If you really care, I suspect those relationships will still be around.
7. Be thankful for what you have. There's nothing quite like waking up one morning and realizing you don't have a job. Wait, yes, there is. There is not knowing where you will get food for your children, clean water, clothing, or shelter.
When Socialtext let me go earlier this year, I was perfectly poised to launch a freelance software career. If that didn’t work out, I still had my investments and retirement. If I needed it, I could have applied for unemployment benefits for additional income. Things might have been tough for a while, but my children weren't going to starve. We would have our daily bread and our health.
Someone once told me that we have no control over the past. Likewise, we cannot control the future. All we have is this moment in which we are living. That taught me the final lesson: to make every season as valuable as the time I spent at Socialtext. Life is too short for anything else.