Archive for March 2008

Does “Process” Work in Software Development?

origami

UPDATE: There’s a Part 2 now.

When I started in the web development business about a decade ago, I worked at a small agency with a few smart people, and we were basically winging it. As the dotcom bubble expanded at a frenzied pace, we grew along with it, and inevitably we had a couple of projects take sharp turns south. People suffered on both sides, and it became clear that winging it was not scalable.

We needed a process – one we could articulate to clients, propagate through the organization and of course put into action in a repeatable way.

This is what “process” is supposed to do. It exists to mitigate unpleasant surprises by telling stakeholders what they can expect from a project. It’s also supposed to save teams from continually reinventing the wheel.

I worked with my bosses at that first agency job to define such a process, and we were very proud when it was complete. Some months later I left that job for an agency on the West coast. As it happened, I arrived just as this company too was in the midst of a campaign to define a process. People from every part of the agency worked on it for weeks, and the final product was a lovely thing to behold. We made posters for the office, and glossy booklets to give to would-be clients.

My next company – a large telecom – used a version of RUP that was the most over-engineered process I’ve ever experienced. When they laid me off, I returned to the agency world. I worked for two of the biggest interactive agencies, and both had processes that were beautifully-rendered in company collateral.

It might not surprise you to learn that all of these processes looked pretty much the same on paper – characterized by big phases with catchy labels. In fact it was only in these labels where the various processes really differed – one company’s “explore” is another’s “discover.” Even the language the agencies used to sell their respective processes was the same, with a lot of emphasis on words like flexible, adaptable and proven.

Finally, it’s worth adding that all of my agency work was in the service of clients who had their own processes, so at one time or another I’ve had to use variations of waterfall, RUP, agile, spiral and triple lindy. Kidding about that last one.

They all share similarities, but the really striking thing these processes have had in common in my experience is how quickly they broke down and became meaningless when put into practice – even by solid teams of nothing but smart people.

I had been a big believer in process, but because of repeated failures I eventually came to see the whole idea of “process” as a fantasy designed to woo clients and placate bosses. I began to believe that assembling a small team of really smart people and simply allowing them to wing it is the right approach after all.

At the very least, this approach doesn’t raise false hopes. If projects are destined for chaos or collapse, isn’t better not to expect them to go smoothly in the first place?

I’m joking of course. There are many reasons projects go south, and there are many ways to help make sure they don’t. Working within the framework of a heavy duty process is not the solution, but having no process at all amounts to blind luck, because successful projects depend on the right mix of a whole range of ingredients that aren’t likely to converge if you’re just winging it.

This is starting to run a bit long, so I’m going to push the rest to a sequel. In Part 2 of this series on process, I’ll talk about the ingredients that need to converge to make sure projects go well.

My Favorite Web Services

As a user experience guy, one of the things I do for my job is try out every new web service that comes along. Most of them don’t really stick, and some I avoid simply because of god-awful naming. I’m talking about you, Frrvrr. Seriously, the Web 2.0 Company Name Generator could have done way better. Anyway, the following is the shortlist of the services I actually get value out of on an almost daily basis…

del.icio.us logo del.icio.us
There’s too much good stuff on the Internetz. I find a handful of things every day that I don’t have time to read right away. I also read a lot of good stuff that I know I’ll want to find later or refer back to. Enter del.icio.us. I must have a couple thousand URLs bookmarked in there now, but I never have trouble finding them. The social component is a nice value-add, but del.icio.us would still be essential to my Internet survival without it. My only complaint is the lack of support for multi-word tags. Commas would have been a better choice than spaces as a delineator.

Plaxo logo
I discovered Plaxo a few years back when I was trying to consolidate and clean up a few different address books. It was good then, and it’s awesome now. With hooks into Gmail, Google Calendar, Yahoo Mail and Calendar and LinkedIn, plus a sync tool for Mac OS, Plaxo is the keystone of my personal information management. Recently they added a social networking suite of features called “Pulse,” which makes sense, but I have no use for it myself. I’m not sure what it does that, say, LinkedIn doesn’t already handle for me.

Pandora logo
I used to alternate pretty much equally between Pandora and Last.fm, but eventually I found myself using Pandora more and more and Last.fm less and less. Pandora just picks better music. Last.fm is a social network, but all I’m interested in is a steady stream of good tunes. I’m sensing a pattern here, three apps with social networking components I don’t use. I’m an introverted person. Case in point I suppose. Last.fm uses collaborative filtering – the opinions of your friends and peers – to choose music it thinks you’ll like. Pandora uses a proprietary algorithm based on an editorial analysis of hundreds of attributes of each song. What’s more, Pandora learns from your own consumption of the music it plays and gets better and better.

LinkedIn logo
Maybe I’m not so anti-social after all. I started using LinkedIn as a way of keeping tabs on people I worked with in the past, especially as they moved and changed jobs. Beyond that, I used it occasionally to help friends find jobs and to recruit people to work for me. Recently, they launched an “Answers” feature, where people post questions and the community responds. I’ve asked a few questions myself and gotten useful answers, and I enjoy browsing the pool of other people’s questions.

Yelp logo
I don’t know the exact ratio of good luck to good thinking responsible for the wonderful world called Yelp, but they’ve managed to create something incredibly useful and utterly addictive. The various ways to connect and communicate with other people are especially engaging. You can rate other people’s reviews along several dimensions (useful, funny, cool) and send each other quick little compliments that are then displayed for all to see. Add talk threads, a local events calendar and a host of other useful features – all wrapped in a smart and efficient UI.

Wikipedia logoWikipedia
My route to Wikipedia usually begins with a Google search for some obscure tidbit of trivia. A few hyperlinks later and I’m hopelessly hooked, and I can kiss an hour of work goodbye.

google logo
Specifically Google Reader and Google Analytics. I used to use Bloglines to follow my feeds, but I switched to Google Reader because it’s able to keep track of exactly what posts I’ve read (and not read). Simple as that. As for Google Analytics, I get a darn good analytics app for free, and Google gets some data about my website and my visitors that it couldn’t get any other way. Win win.

WordPress logo
The engine that powers this blog. It just keeps getting better and better, and it’s free. The WP community gives you help when you need it, and they’re always cranking out new ways to extend the core software. Code is poetry indeed.

Notably absent from my favorites are a few very popular services. People tout these all the time, and some of my friends give me dumbfounded looks when they find out I’m not a fan of…

  • Twitter – I just don’t feel any need to get constant up-to-the-minute updates about anyone, and I have no interest in keeping anyone that updated about me.
  • Facebook – I hate how Facebook forces you to spam everyone. Imagine ordering a cup of coffee at Starbucks and having to order drinks for everyone else in the store in order to pick yours up. I am, however, totally addicted to Facebook’s new Boggle-like game called Prolific.
  • Flickr – I’m actually a fan of Flickr, but I’m a casual and infrequent photographer at best. Also, I can’t stand the pressure to come up with witty captions for everything.
  • Technorati – I use Google. Rubel was right. Enough said.
  • Last.fm – See Pandora, above.

Finally, there are a number of services that really intrigue me and have great possibilities. They are doing interesting things, adding value to the web and pushing it in the right directions. They just don’t fulfill a frequent or persistent need of mine, so I don’t have any compelling reason to use them on a regular basis.

  • Ning – New-ish venture from Netscape founder Marc Andreessen. An application platform that promises, “Create Your Own Social Network For Anything.” I have friends who think it’s the bomb diggity, but I’ve only scratched the surface of it myself.
  • Dapper – A web service that enables you to turn any website into an API. It’s pretty slick, and it’s tools like this that are pushing us ever closer to a truly semantic web.
  • Yahoo Pipes – This is a preview for how basic software engineering will be done in the future. Oooh the future.
  • Freebase – More semantic fun. A database of “the world’s information,” drawn from large open (structured) data sets.

I know this list might seem pretty random. I’ve failed to even mention quite a number of notable services, many of which I have used and enjoyed to some extent. They just haven’t graduated to the level of the things that benefit me every day.