I’m glad to see that there’s been a healthy amount of interest in the
site and concept thus far. I want to talk a bit about scope because
a majority of the questions seem to be coming from that direction.
A comment from David O’Hara:
I’ve been reading some of the links in your “About” and am quite
curious about your ideas and philosophies on design. Hopefully, there
will be some forthcoming posts on them. hint hint
Absolutely. Although, I think it will be more like relaying existing
ideas and philosophies that have come about organically that I’ve been
lucky enough to observe rather than anything I’ve personally sat down
and figured out myself. Great systems are grown, not designed.
I can’t find the quote at the moment but I’d like to paraphrase Clay
Shirky,
I’m a hopeless anti-visionary - I find that when I concentrate too
heavily on what might happen in the future, I miss what’s working
right now.
That’s 90% of this site’s premise. We have, at this very moment, a whole
slew of great technologies that have come about organically through years
of field experience that are being ignored and brushed aside by a large
portion of the IT community because they are:
- Simple
- Not designed (in the Cathedral style)
In fact, you might consider lesscode.org an experiment to see how far we
can push the concepts put forth in Shirky’s Situated
Software combined with the theory that great software is
evolutionary and not intelligently designed
.
What happens all to often in collaborative peer development is that we
find excellent ways of doing things but since there’s rarely an “expert”
employed to evangelize and formalize these concepts or a PR department
to prepare a press release, the concepts never reach the larger
community mainstream or are perceived as being “unprofessional”. We need
to turn that thinking around.
Many believe we need simply to adopt the PR and evangelism techniques of
the established industry but that’s a mistake, IMO, and attempts to do
so have failed in the past. There has to be a better way, and I think
forward looking companies like Redmonk, Propylon, and
37signals are blazing that trail in different areas. They are not
trying to adjust their radically different models to the established
industry, they’re forcing the established industry to adjust to their
model and they can because they know their model is better.
So I think the first step is to admit that our system of values are
really very different from those of the established industry and to stop
trying to pretend otherwise. Instead of trying to blend in, we should be
distinguishing ourselves and doing a better job of explaining why we
make the technology decisions we do. Because, I have to tell you, right
now the majority of decision makers (in corporate IT at least) believe
that J2EE (or whatever it’s called now) and .NET are the only platforms
capable of producing “real” software. But don’t blame them, that’s what
they’ve been told - we haven’t been vocal enough in rebutting the
industry story.
If we’re going to make a run at this, we need to accept and state
confidently that our practices are superior in many ways and then start
putting some more definition around why that’s so. We need to bring the
industry’s values in line with our in own. In many cases, this means
convincing decision makers that values like buzz, “enterprise class”,
and promised capability should be replaced with values like
simplicity, strong team dynamics, and proven capability.
I really need to learn how to end a post; after two years of doing this,
I’ve still not gotten the hang of it. But I’d like to leave you with
some more bits of recent philosophy that I think are interesting and
relevant: