Lessons from GitHub's First Year
tom.preston-werner.com
tom.preston-werner.com
Here’s a seemingly paradoxical piece of advice for you: Listen to your customers, but don’t let them tell you what to do. Let me explain. Consider a feature request such as “GitHub should let me FTP up a documentation site for my project.” What this customer is really trying to say is “I want a simple way to publish content related to my project,” but they’re used to what’s already out there, and so they pose the request in terms that are familiar to them. We could have implemented some horrible FTP based solution as requested, but we looked deeper into the underlying question and now we allow you to publish content by simply pushing a Git repository to your account. This meets requirements of both functionality and elegance.
Think like a doctor. When the patient turns up, he or she may have a diagnosis in mind. But it is up to you to study the symptoms and deduce the condition independently of what the patient thinks.
Remember: a potted request from a client is a symptom of some deeper problem they wish to solve.
Imagine you’re tasked with building a computer controlled gun that can accurately hit a target about 50 meters distant. That is the only requirement. One way to do this is to build a complex machine that measures every possible variable (wind, elevation, temperature, etc.) before the shot and then takes aim and shoots. Another approach is to build a simple machine that fires rapidly and can detect where each shot hits. It then uses this information to adjust the aim of the next shot, quickly homing in on the target a little at a time.
The difference between these two approaches is to realize that bullets are cheap. By the time the former group has perfected their wind detection instrument, you’ll have finished your simple weapon and already hit the target.
* It just works
* Inline image viewing
* You can customize anything via Propane[1]'s custom javascript support.
I don't know about any clients on Linux, but, Colloquy (and most IRC clients for Mac, I suppose) use a WebView from WebKit to display text, so they'll have points 1, 3 and 4 covered. And point 2, if you don't need chat history.
(disclaimer: I contribute to Colloquy for both iOS and Mac.)
Point 2 is actually the most important point for us. Since Tom was the only one that liked irssi, the rest of us lost the backlog and that was a deal-breaker.
(And happy to hear you use Colloquy! :D)
OT: I think convore will go the same way, unless the crew can seriously address the SvN problem.
Anyway, when I worked at an all-remote company, we just ran our own IRC server. Then all the channels were work-related. Of course, it was pretty easy to also join other networks, which we did (but would do anyway).
I wonder if he didn't publish it because he started with the idea of publishing ten lessons. Might have been better to assign the number after the article was written.
"In the time since I wrote this we’ve grown from four people to twenty-six, settled into an office, installed a kegerator, and still never taken outside funding"