The weakness in our value chain with the customer was really in our core product.
Funny language from Domino’s CEO David Brandon (Translation: The company’s service and delivery were fine but the pizza sucked.)
You’re reading Signal v. Noise, a publication about the web by Basecamp since 1999. Happy !
The weakness in our value chain with the customer was really in our core product.
Micromanaging is something we only accuse other people of.
We’re exploring some very cool ideas to clarify the stream of notes and emails in Highrise. We want to make it easier to scan the streams and differentiate notes from emails from comments. Along the way we’re also cleaning up a lot of complex, overly-DRY code. It’s a great project, but it’s not quite as simple as it sounded at first.
Our initial plan sounded simple:
“Redesign the recording streams.”
“Recording” is an abstraction for the things that appear in streams: notes, comments, emails and more. They’re just notes that appear in a stream, like a blog index. How hard can it be?
When I started working on the new design and touching the code, I realized that recordings have a ton of dependencies. I made a quick and dirty graffle to keep them all in my head:
Recordings appear in multiple places: “aggregated streams” like cases and the dashboard, and “non-aggregated streams” like the stream for a particular person. Recordings include comments, and comments are mixed in with all other recordings but also appear in dedicated “comment streams” on recording perma pages. Recordings can be filed, they show privacy status, they have special states if you move them out of the current stream, and on and on. None of these things are obvious at first glance.
And none of this is a problem. We can even use this new design iteration to reduce the complexity. But it’s a good reminder that things often look simpler on the surface. When you dig into an established feature there may be a lot of dependencies and factors that only the source code and some careful spelunking will reveal.
The hardest part about making good software that ships on time is knowing what and when to sacrifice. As programmers and designers, we often fall in love with our requirements and are unable to kill our darlings. We mistake what we said we’ll do with what must be done. It’s rarely so; you can always do less.
What stops most people from doing less is the fear of failure. The misconception that if you don’t get it all done, the rest is worth nothing at all. That without this feature or that tweak, nobody will want to use it at all. Bollocks. Most software has a tiny essence that justifies its existence, everything after that is wants and desires mistaken for needs and necessities.
The easiest way to force the insight of what can be lived without is by playing a game of constraints: You have to ship on Friday, you can’t add more people, you can’t work nights. Fixed resources, fixed time. All that’s left to give is scope. It’s amazing how creative the cuts and sharp the sacrifices become when you’re backed into a corner. It’s when you have to choose that you make the best choices.
For every 1 day estimates of a task, there’s a simpler version of that you can do in 3 hours, and an even simpler still you can do in 30 minutes. Back yourself into a corner and these versions will vividly appear before your eye. You can always do less.
David Simon, creator of The Wire, talks about why merely chasing eyeballs is the wrong path:
You better have something to say. That sounds really simple, but it’s actually a conversation that I don’t think happens on a lot of serialized drama. Certainly not on American television. I think that a lot of people believe that our job as TV writers is to get the show up as a franchise and get as many viewers, as many eyeballs, as we can, and keep them. So if they like x, give them more of x. If they don’t like y, don’t do as much y. We never had that dynamic in our heads. What we were asking was, “What should we spend 12 hours of television saying?”
He’s talking TV. But when launching a business, there’s a lot to be said for starting from a point of view and knowing what you want to say too. When you do that, you have an anchor for everything you do moving forward.
What do you have to say? What’s your purpose? What do you stand for? Where do you draw the line? Where do you want to lead people? What do you want to spend your days doing?
For example, Whole Foods stands for selling the highest quality natural and organic products available. They’re not selling the x that most people want. They’re saying, “We don’t do x. We do y.”
That approach lets you spend your days building something you actually care about.
Plus it gives you a hook. Everyone else is doing “give them more of x” so that winds up being generic. Avoid that and you get to pitch something different: It’s not TV, it’s HBO. It’s not a regular grocery store, it’s Whole Foods. It’s not [generic category], it’s [your product].
While working on a new project, we came across some compatibility problems in a plugin that we want to use in that project. We have a known solution that works and doesn’t require the plugin, but if we can make the plugin work without too much additional work it’s worth using it. We have a limited amount of time to finish this project due to our new iteration system, so we’re feeling some time pressure, but we don’t really have enough information to make a good decision yet.
Rather than making an immediate decision, Jeff decided to spend another 30 minutes with the plugin to see if he could make it work. If we can solve the compatibility problems in those 30 minutes, it will be a nice win and we can make use of the plugin that we want to. On the flip side, we already have a known solution to the problem. Even if we’re not able to solve the problems we’ll only lose a half an hour, so it’s worth the time to do a very short spike to see if we can fix it.
Memo sent by “Who Framed Roger Rabbit?” director of animation Richard Williams to his animation department. “Even now (an unbelievable 22 years later) the most hardened critic would have difficulty finding fault with the near-seamless interactions between [Roger Rabbit’s] live-action and animated characters.” [thx JH]
Some recent posts at the 37signals Product Blog:
Highrise
Free tool lets you create forms that write to your Highrise account
HighriseWidgets.com lets you “easily create custom forms that post directly to your Highrise account.”
New York Times readers suggest Highrise as better C.R.M. solution than Salesforce or ACT
“We traded down from Salesforce.com to Highrise by 37signals and feel it was the best move we ever made. The product runs smoothly, has a crisp user interface and is simple. It is what it is and does the trick.”
PowrFone brings your Highrise data to iPhone caller ID screen
A few seconds before the call reaches your iPhone, a push notification will pop up on your iPhone. The screen-pop provides a full display of caller name, phone number, deal, next task, and tags so you’re prepared to take the call or forward to voicemail.
Basecamp
ReadWriteStart: Basecamp will help “kick-start your company and keep it organized without breaking the bank”
“We here at ReadWriteWeb use Basecamp on a daily basis for managing ongoing projects and reviewing edits of our stories. Developed by 37signals, Basecamp offers a great interface with an easily read dashboard of the latest activity, as well as to-do lists, milestones and email alerts.”
New version of Agile Agenda’s Basecamp Edition released
Agile Agenda, which integrates with Basecamp, is an app that helps you plan a project schedule by calculating start/end dates, GANTT Charts, and estimated project and milestone completion dates.
Beacon is a new Android app for Basecamp
Beacon is an Android app for Basecamp. It offers full offline viewing of all your projects, messages, people, comments, to-dos and milestones. It also gives you the ability to add a message, comment, or milestone. And lots more.
Campfire
Campfire API now available
Attention developers: Campfire now has an official API (Basecamp, Backpack, and Highrise also have APIs).
Getting Real
How “Make It! Mid-Century Modern” was inspired by Getting Real
“Under-did our competitors: other books in the same niche include more than 50 projects; we chose 12 we knew we could do really well, really quickly.”
Reader Daniel Nitsche suggests checking out this lecture by Don Watson (MP4 file: 139MB / 41 minutes) on the absurdity of corporate speak.
There are some great points in there, sprinkled with humour.
Powerpoint is the ultimate in the depletion of English. It just doesn’t approve of sentences. It makes them into dot points. On politicians: we’re now more interested in the questions being asked by the interviewer because we know the interviewee won’t answer the questions anyway. On private organisation speak: “Dear Valued Customer”—would you write to your mother that way? (Dear Valued Mother). The invention of a mission statement is too late. The worst companies in the world are using mission statements.
Fun example from the lecture: Someone wrote a letter to Watson’s 90 year old mother that began “Dear Applicant.” Unclear what it was all about, she passed the letter to him. He wound up responding with a letter that started “Dear Bureaucrat.”
Here’s an interview with Watson.
The language I think is poisoned, generally. And it’s poisoned in the name of efficiency for some strange reason. It’s as if the whole culture has been corporatised in one way or another. Does it really matter? Well I think it does. I think language is how we know each other. Speak that I may see thee.
Therefore … I mean, If you talk like this to your friend down the pub you won’t see him there next week.
Watson’s Weasel Words site collects awful yet funny examples of managerial language. Why Weasel Words?
‘In 1916 Theodore Roosevelt declared that the ‘tendency to use what have been called weasel words was “one of the defects of our nation”.’ ‘You can have universal training or you can have voluntary training, but when you use the word “voluntary” to qualify the word “universal”, you are using a weasel word,’ he said: ‘it has sucked all the meaning out of “universal”.’
Words that suck all the meaning out. Good way to put it.
It’s all a reminder to give anything you write a decent bullshit test before sending it out. Would you ever talk to your mother or your friend that way? If not, why is it ok to talk to a customer that way?