Getting Real by 37 Signals (Category J)

Posted by Ravikiran K.S. on January 1, 2006

The smarter, faster, easier way to build a successful web applications

How To Write Vigorous Software

Vigorous writing is concise: A sentence should contain no unnecessary words, a paragraph no unnecessary sentences, for the same reason that a drawing should have no unnecessary lines and a machine no unnecessary parts.

This requires not that the writer make all sentences short or avoid all detail and treat subjects only in outline, but that every word tell. - From “The Elements of Style” by William Strunk Jr.

Caveats, disclaimers, and other preemptive strikes

“These techniques won’t work for me.”,
“You didn’t invent that idea.”,
“You take too much of a black and white view.”,
“This won’t work inside my company.”

The starting line

1. Build Less

Instead of outdoing, try under-doing - Solve the simple problems and leave the hairy, difficult, nasty problems to everyone else. Less features, Less options/preferences, Less people and corporate structure, Less meetings and abstractions, Less promises.

“Under-do your competition - Do less than your competitors to beat them.”

2. What’s Your Problem?

Build software for yourself - A great way to build software is to start out by solving your own problems. If you’re having this problem, it’s likely hundreds of thousands of others are in the same boat. There’s your market. Wasn’t that easy? When you solve your own problem, you create a tool that you’re passionate about. And passion is key. Passion means you’ll truly use it and care about it. And that’s the best way to get others to feel passionate about it too.

Scratching your own itch - As the designer or developer of a new application, you’re faced with hundreds of micro-decisions each and every day: blue or green? One table or two? Static or dynamic? Abort or recover? How do we make these decisions? If it’s something we recognize as being important, we might ask. The rest, we guess. And all that guessing builds up a kind of debt in our applications – an interconnected web of assumptions. -– Dave Thomas, The Pragmatic Programmers

Born out of necessity - Campaign Monitor really was born out of necessity. For years we’d been frustrated by the quality of the email marketing options out there. One tool would do x and y but never z, the next had y and z nailed but just couldn’t get x right. We couldn’t win. We decided to clear our schedule and have a go at building our dream email marketing tool. We consciously decided not to look at what everyone else was doing and instead build something that would make ours and our customer’s lives a little easier – David Greiner, founder, Campaign Monitor

You need to care about it - When you write a book, you need to have more than an interesting story. You need to have a desire to tell the story. You need to be personally invested in some way. If you’re going to live with something for two years, three years, the rest of your life, you need to care about it. – Malcolm Gladwell, (from Book - A Few Thin Slices of Malcolm Gladwell)

3. Fund Yourself

Outside money is plan - These days it doesn’t take much to get rolling. Hardware is cheap and plenty of great infrastructure software is open source and free. And passion doesn’t come with a price tag. So do what you can with the cash on hand. Think hard and determine what’s really essential and what you can do without.

Constraints force creativity - Run on limited resources and you’ll be forced to reckon with constraints earlier and more intensely. And that’s a good thing. Constraints drive innovation. Constraints also force you to get your idea out in the wild sooner rather than later - at least, start generating some revenue.

4. Fix Time and Budget, Flex Scope

5. Have an Enemy

6. It Shouldn’t be a Chore