When clients go right
There seems to be a trend among freelancers to complain loudly about the stupidity of their worst clients. It occasionally makes for amusing reading, but in principal, I don't think that's it's professional to do so. Even anonymous clients who, while not being named, still get shamed, deserve better. If you're doing this, and expecting to be treated like a professional, you should probably stop; as I have mentioned before, if the client relationship breaks down, then you are probably not communicating properly.
I generally try not to talk about my specific clients at all on this blog, not because I have to try to avoid saying horrible things about them, but because my clients are my business. It would be silly of me to jeopardise my business for the sake of a funny story.
Today, though, I'm going to ignore my self-imposed rule of "not talking about clients", and tell you a little about CPAP.com*. There's a few things that make this client one that I really enjoy working for, and they're things that I wish I had with all of my clients (not that I'm unhappy with any of my clients, but these guys are especially good to work with).
- "Refactor" is not a dirty word - They understand why refactoring old code is important, and will often set "code cleaning" targets as projects. This in itself is a huge thing, because they understand that even without new features being added, they're making an investment in having a better code base.
- Flexibility - I am a remote contractor. My life isn't necessarily based around office hours, and they understand that. If I tell them that I'll be away, or busy, then there's no argument about it.
- New technology is not feared - If I can justify why some piece of new (or at least, new to them) technology is a better fit for a problem, then I'm free to use it. There's no fear of new technology.
- Exciting problems - Over the last year or so, I've been thrown at a number of projects which give me exciting, challenging, problems to work on. This is what I love doing, and they know that getting me intrigued gets the best results.
- Full support from every direction - Need a new server? Just ask. Need manpower from another developer? Just ask. See a way to revolutionise a business process? Just ask. The level of support from management, IT, and the other developers is amazing.
- No need to compete for my own job - I'm a remote contractor, working in a team with a number of other remote contractors. Normally, this would be a setup for stress and competition to ensure that you still have a job next week. There's none of that stress, because remote contractors are treated just like in-house developers.
- Your invisible work gets appreciated - So often in a programming role, you could spend hours writing a piece of software, or fixing a nest of bugs, only to be met with a "is that all?" when you finish. There is an understanding of the complexities of coding within the company (even among people who aren't related to development/IT at all), so even if they can't outwardly see the changes, they understand what went into them.
- Developers get heard - This one almost took me by surprise when it first happened; I solved a bug, and responded with the cause of the problem, and how I would fix it. I was given the go-ahead to fix the cause right away. I was expecting it to go to the bottom of the "nice things to do" list, but it didn't - I got to resolve it immediately. This also happens throughout the rest of the company. Big changes are happening to coding standards and testing because one developer or another wrote a manifesto saying "We should do it this way, instead. Any objections?". Coders aren't just consulted when the decisions are made, they're allowed to actually make decisions.
- Friendship - I have, over the past year or so, not just worked with the people at CPAP.com, but actually become good friends with many of them. One of the best weeks of work that I've had so far as a freelancer was when myself and two other remote contractors were flown into the country (one from Canada, one from Russia, and myself from Australia) to spend a week in the office, hanging out, writing code, and getting to know everybody better.
These are some of the qualities that make a client an absolute joy to work for. I don't expect them all from other clients, but it makes me enjoy my job that much more.
Maybe this will become a trend - client praising.
Probably not, it's not that funny to read.
- - - - -
* I've spoken to them about this, and they're happy for me to talk about them on here.