Throughout years of my professional career I’ve heard all sorts of ideas what makes a project attractive for people working on it. A favorite technology. Greenfield work with no legacy code. Scalability challenges. Number of users. Potential to change the world. A genuine idea. Big money involved. Freedom to choose any tools. Code quality. Probably a dozen different things too.
Since I joined Lunar Logic a number of projects I’m involved in a given time period went significantly up. It is so since on the top of a couple bigger endeavors we run quite a bunch of small projects. It’s great as I have an occasion to see, and learn from, many different environments.
This experience influenced my thinking of the factors that make a project attractive. In fact I’ve seen a project that scored really high in most of areas mentioned above, yet still everyone hated it (and vice versa).
Why? I think we focus on the wrong thing. No matter how cool is technology, scale or the idea if people involved in a project suck big time nothing is going to save the experience.
If you’re like “yeah, I should have thought about the team too” I’m not heading this direction really. In fact conflicts within teams are kind of rare and typically people learn how to cope with each other quickly.
However if a client is toxic, well, that’s an extreme case of bad luck.
I mean, extreme in terms of severity, not in terms of frequency. The fact is such clients are pretty damn common.
This is exactly why I pay so much attention to the people on client’s site when we consider a new project. Are folks who we’re going to cooperate with on a daily basis OK? Whether collaboration is going to be smooth? If so, I don’t care that much about how cool the code, the product or the technology is.
Even if there is legacy code with poor test coverage and the idea is boring like shit but the guys on the other side are great people would still like to work with them. Actually, it is likely that there isn’t any other side at all – we’re all in it together.
The opposite is also true. Take the coolest thing ever and work on it with a micromanager as a client and you will hate his guts in less than a week. With reciprocity, of course. And it’s not about micromanagement. Take any flawed client: a sociopath, an “I don’t give a damn” guy, a bureaucrat, or what have you. Same thing.
Actually when I go through all the stuff teams liked or hated to work on I see the same pattern – show me the client and I will tell you how happy the team is. In Lunar Logic this is seen even more vividly because given our extreme transparency we simply make ourselves vulnerable in front of our clients. That’s an awesome tool to build trust. At the same time it can be abused to bring misery upon us.
Fortunately, for whatever reasons, the latter is kind of rare.