Now that Joel Spolsky has ‘retired’ from blogging at Joel on Software (in the format the site has been known for, at least), Jan Willem Boer is reading the entire back-catalogue of entries and condensing the knowledge within each essay into a single sentence (or two).
The result is a stunning list of tips on running a small business, programming best practices, productivity tips, technical hiring practices and entrepreneurship.
The business could benefit from the publicity of getting an investment from someone who is thought of as being a savvy investor.
The investor will add substantial value to the business in advice, connections, and introductions.
The business can potentially have a big exit or become a large, publically traded company.
The founders are happy to give up some control to make the business more successful.
And when a company should not consider it:
The founders are risk-averse and are willing to trade a much smaller payout for lower risk.
The founders are technical without substantial business experienceÂ and wish to maintain absolute control forever.
If the investor is mostly “dumb money.”
If you’re going into an established field with a lot of competition.
If the product is immature and unproven.
If the founders don’t have enough of the right kinds of industry connections, or the idea is not compelling enough, so that raising VC would take months or years
If there is any other way to raise the kind of money you need.
A number of pieces have been writtenÂ disagreeingÂ with Spolsky’s article, suggesting that either StackOverflow does not fit these criteria or that the reasoning is just plain wrong. 37signals’ post covers both.
Five Whys is “a question-asking method used to explore the cause/effect relationships underlying a particular problem. Ultimately, the goal of applying the 5 Whys method is to determine a root cause of a defect or problem”. Developed by Taiichi Ohno–one of the inventors of the Toyota Production System–the oft-cited example is as follows:
My car will not start. (the problem)
Why? – The battery is dead. (first why)
Why? – The alternator is not functioning. (second why)
Why? – The alternator belt has broken. (third why)
Why? – The alternator belt was well beyond its useful service life and has never been replaced. (fourth why)
Why? – I have not been maintaining my car according to the recommended service schedule. (fifth why, root cause)
What I’ll probably remember most about the trip is what I learned about company culture and how it’s affected by scale. Giant corporations such as Google and Microsoft are like cities full of relatively anonymous people: You don’t actually expect to see anyone you know as you walk around. Going to lunch on either campus is like going to the cafeteria at a huge university. The other 2,000 students seem nice, but you don’t know most of them well enough to sit with them. Meanwhile, a typical lunchtime at my company is like Thanksgiving dinner: There’s a big meal you get to share with a bunch of people you know and like.
I particularly liked Spolsky’s reaction to his discovery that while Microsoft’s campus-wide Wi-Fi network is closed-access and requires registration, Google’s was free and open: “I had to wonder: What might we be doing at our company that is similarly a waste of time?”.
It made me think: What might I be doing that is similarly a waste of time?
There have been times in my career as a developer when I went for weeks at a time without being able to get anything done. As they say, I’m not in flow. I’m not in the zone. I’m not anywhere.Â [â€¦]
Once you get into flow it’s not too hard to keep going. Many of my days go like this: (1) get into work (2) check email, read the web, etc. (3) decide that I might as well have lunch before getting to work (4) get back from lunch (5) check email, read the web, etc. (6) finally decide that I’ve got to get started (7) check email, read the web, etc. (8) decide again that I really have to get started (9) launch the damn editor and (10) write code nonstop until I don’t realize that it’s already 7:30 pm.
Somewhere between step 8 and step 9 there seems to be a bug, because I can’t always make it across that chasm. For me, just getting started is the only hard thing. An object at rest tends to remain at rest. There’s something incredible heavy in my brain that is extremely hard to get up to speed, but once it’s rolling at full speed, it takes no effort to keep it going.Â [â€¦]
Maybe this is the key to productivity: just getting started. Maybe when pair programming works it works because when you schedule a pair programming session with your buddy, you force each other to get started.