The Rule of Three

Every programmer ever born thinks whatever idea just popped out of their head into their editor is the most generalized, most flexible, most one-size-fits all solution that has ever been conceived. We think we've built software that is a general purpose solution to some set of problems, but we are almost always wrong. We have the delusion of reuse. Don't feel bad. It's an endemic disease among software developers. An occupational hazard, really.


This is a companion discussion topic for the original blog entry at: http://www.codinghorror.com/blog/2013/07/rule-of-three.html
1 Like

Wait, soā€¦ you do have your 3 partners or you donā€™t? And is there a lot of competition or are you desperate for just about anyone with a moderately visited website?

Weā€™re still evaluating who Partner #3 will be at this time, if youā€™d like to be considered, read through http://www.discourse.org/buy/ for additional information.

Is Discourse as popular as you describe it? I had an impression that the project slowly caved in. I tried it a few times, so have my friends. Then I havenā€™t heard a thing about it since the launchā€¦ until now :slight_smile:

How deeply do I believe in the Rule of Three? So deeply that I built two whole companies around the concept.

Oh, yeah? Let me know when youā€™ve build the third company :wink:

What will be discourse when it is launched since it is open source? I mean do you plan it for premium hosting, or you want to make money just by support, plugins and marketplace, or anything else? The whole idea of open source really astonishes me since there is no actual advantage of going this way (at least I donā€™t see it yet).

Interesting approach.

Do you have any formal promotion/gating criteria for evaluating when to begin the next application test for your software? Such as a audience size, engagement etc?

Also, do you wait to hit this criteria(assuming it exists) before starting the next one?

Thanks.

Is Discourse as popular as you describe it?

Where did I describe it as popular? Is forum software popular? Are forums popular? Itā€™s not exactly a sexy category, which is something weā€™re trying to fix.

I had an impression that the project slowly caved in.

Discourse is moving its way up the top 50 projects on GitHub, based on https://github.com/popular/starred at least. Currently at around #41 and rising.

I mean do you plan it for premium hosting

Yes, this is covered in detail on http://www.discourse.org/buy/

Such as a audience size, engagement etc?

Each partner needs to be significantly bigger than the last one, thatā€™s the only rule. 5x-10x if possible.

By ā€œthat hyphenated siteā€ you mean ā€œExpertSexChangeā€?

For software reuse Rule of Three does make a lot of sense. This rule can be extrapolated to every Startup. Even Paul Graham persuades ā€œBetter to make a few users love you than a lot ambivalentā€. All the best.
BTW, is there any ā€˜larger than life moustache-twirling, cape-wearingā€™ enemy for Discourse? :slight_smile:

Is it public knowledge who the first two Discourse partners are? Are they using Discourse in a live environment yet or still working through things with you?

Iā€™ve never heard of EE (well till today) or maybe thatā€™s because Iā€™m no Expert? Oh well Discourse is Good. Used it on 2 forums already :slight_smile: cant complain. Keep it up!

The first two seem to be How To Geek: http://www.howtogeek.com/142551/building-the-how-to-geek-community-the-discourse-project/ and Boing Boing: http://boingboing.net/2013/06/27/can-we-talk.html

The 3rd partner could well be Ubuntu, see http://ubuntu-discourse.org/ .
(It gets quite buzy since the current security leak of the old Ubuntu forums.)

This is actually pretty fascinating. Iā€™ve always wondered why Stack Exchange became a bunch of splintered sites, and this article sufficiently explains that itā€™s because of your interpretation of the ā€œrule of three.ā€ I still think SE should have been one site with multiple main categories instead of separately-branded ā€œmini meā€ sites, but at least I now understand why you thought the approach made sense.

The rule of three is good here because it reminds people that reusability does not come free.

So many times I see teams in paralysis at the beginning of a project, because while they could solve the problem trivially, they must be sure that the entire system is perfectly abstract, generic, flexible etc. Next they will start the waves of refactoring, long before anything has been completed.
This is for making code that will almost certainly be used for a narrow focus only, not a reuse library.

So, your estimates arenā€™t 6-8 weeks then?

Is this blog ever going to be for us again? I donā€™t come here very often any more because all the articles are simply singing the praises of whatever new thing Jeff Atwood is working on today.

What a coincidence! Iā€™ve been reading this blog for years, but have never posted.

Today, I just uploaded an early version of a new .net web development framework that Iā€™m open-sourcing: https://github.com/DanielLangdon/ExpressForms

The audacity to think that I, of all people, know anything about how web development should be done!!!

Sorry, I know that this is off your specific topic, but it reminds me a little set of posters I did last year on the topic of code reuse:

http://depressedpress.com/2012/09/16/sunday-coding-humor/

In this case Iā€™m not talking about those ā€œBig Aā€ application like StackExchange or Discourse, Iā€™m talking about the little things that you end up doing over and over and each time you do you start with copy and paste and spend just a little extra time polishing a bit here or improving a comment there.

Those little snippets that you use again and again and whenever you do you feel just a tiny bit better about yourself as a coder.