Computing Thoughts

Fun-Based Consulting

by Bruce Eckel

October 12, 2007



Summary

I got a consulting query over the internet the other day; they were desperate for someone to do a particular project and it seemed like I might be able to help.


It didn't look like a cattle call -- they provided reasonably detailed information about the task, with links to documents and background material.

There was an important clue in the message when they said that several others had been capable of doing it but couldn't start soon enough, and that they needed someone immediately. It's certainly not impossible that something happened and the person doing that part of the project became sick or injured, and the whole project -- otherwise well-managed -- was being held up by the lack of that one person. And that none of the other programmers on the team could step in and take over.

Starting to sound unlikely yet? I'll wager that no one reading this blog has ever seen a situation like that. You have, however, seen the situation where someone, perhaps the entire team, quits because they can't stand it anymore. The fact that this company couldn't wait a little while for those other contractors, who are undoubtedly cheaper than I am, means that things are probably not going so well at the company.

I wrote them back within a few hours of receiving the request, but they never replied. So it probably was just a well-done cattle call. Still, how would they know that they never want to actually work with me, to the point that they want me to put time in to reply to them but they are rude enough not to answer?

I do charge quite a bit per day when I consult. These are short-term engagements that involve a lot of intense struggle and evaluation, usually trying to discover what's gone wrong or how to change things so they work a lot better.

I charge a lot because it's hard, sometimes painful, work that requires whatever experience and insights I am able to bring to the problem. But I don't actually want to work with rude customers. I want to work with fun customers who are working on fun and stimulating projects.

The value of a positive working experience is very high -- not just for me, it turns out, but for most people in our profession. In Demarco & Lister's book PeopleWare, they have studies showing that programmers don't really care how much they're getting paid. Their primary value is for a positive experience.

My high fees (not as high as some, certainly) are a behavior-modification mechanism, as well as a backup plan. The behavior modification is that it forces a company to be serious enough to put out the money, and to make good use of my time. The backup plan is that, even if the experience turns out to be miserable, at least I'm getting paid well.

But maybe this is wrong thinking. By structuring my system to work with difficult clients, I may only be inviting difficult clients in. Is there a way to invert the system so that instead it only attracts fun clients?

Because I realize -- better late than never -- that I didn't actually get into this business because I want to deal with difficult clients.

For me, the experience is paramount. I would much rather charge a more reasonable rate if I could be doing fun work with fun people. How do I do that?

Is There Open Spaces Consulting? I used to charge a lot for seminars, for the same reason. The seminars required that I lecture, and give exercises and coach people through those exercises and keep everybody on the forced march so that I could say that we "covered" the material. At the end of the week I was exhausted and didn't want to do another seminar for awhile. It wasn't fun, but it made money. Then I discovered open spaces. After an open-spaces style event, I am energized and ready to do another one the next week. I have fun and learn along with everyone else. Basically, I just organize the event, provide some structure and then get out of the way and become a participant. It's so much more fun to do open-spaces style events that I don't want to give traditional seminars any more, and I've modified my flagship Java seminar appropriately. I'm (slowly) working to create an electronic delivery system for traditional-style seminars (my primary initial motivation for learning Flex) so that I can just do them once, in a studio setting, and people can consume those seminars under their own control. From a financial standpoint this change to my approach for live events is wrong. I'm making significantly less money, but the fun far more than makes up for it, so I don't care as long as I can survive (and I always have a number of irons gestating in the fire; I don't rely on any one source of income to get by). Recently I've had a consulting experience with a customer which was the opposite of what I charge a lot for. It was downright fun, and I came away excited and energized. It slowly seeped into my brain that I wanted more experiences like this, but how? I would much prefer to work with a company that's doing something fun, in a fun, stimulating environment with fun, stimulating people. Even if that company can't afford my regular consulting fees. In fact, I'm happy to work for less in such a situation. I'm still getting paid, but I'm being paid mostly in fun, and less in money. (If a job isn't fun, I'm much more likely to blow the extra money doing something to recover from it, anyway). If you've been to a naturopath after dealing with conventional Western medicine, that's more the kind of experience I want to give. You've already seen the results of the usual turn-the-crank approach to problem solving, now you'd like to do something a little more thoughtful and insightful, and have a better experience in the process. I'd like to be the software naturopath so that we can all have a better time. I have no idea how to even begin presenting this to a potential client. "Hmm, you're in a real pickle here and anything I try to do for you will involve significant pain, so you're eligible for my full consulting fee." You often don't know until you get there whether it's going to be fun or painful, and by then it's too late. The complementary approach to my move away from seminars and towards open spaces would be, I suppose, to say "I don't do painful consulting anymore." In open spaces, we try to figure out what people really want to talk about or work on, and put up options. People migrate to what's important to them. What would be the analogy of this for "open spaces consulting?" Do I require that the team I'm working with is already using agile development and a dynamic language? That's probably a good sign, although a team that clicks is not necessarily using a formal agile approach, and a language like Scala isn't dynamic but would be fun. And how does one even negotiate such an arrangement? A company has a lot of incentive to make unrealistic claims, especially because people know that a person likes to feel successful, so once that person buys in they are likely to try to slug it out, even after they discover that the claims the company made aren't true. This experience, in fact, is what made me strike out on my own in the first place. I believe there are groups out there who are working on really interesting projects in a fun environment. Every once in awhile I see evidence that such things exist. And I think I might be able to contribute something to some of those groups. I'm probably not alone in my desire to become connected to such groups -- including lots of people who want full-time jobs. But our traditional way of thinking about "hiring" is completely broken and counterproductive for making these connections. It will require an inversion-of-control style change on the order of open spaces to fix the problem (and I'm still amazed that open spaces even works, and especially that it works so amazingly well).

Do An Experiment The first open spaces meeting that I organized evolved from an event that I began with Martin Fowler, as a result of an idea that I was bandying about much like I am with this one. Martin listened for awhile and then said "let's try a small experiment," which started the whole process rolling. That suggestion of "trying a small experiment, then evolving," has become one of my pocket maxims for solving problems. So, without knowing what the outcome will be, I'll try an experiment. Are you working on a project that's especially interesting and fun, unfettered by cog-thinking and supported by your management? Do you think I might be able to do something to help? I'm interested. (You can contact me here). Yes, I want to be paid what you can afford. And it's obviously easier to measure dollars than it is to measure fun. But I'm actually more interested in fun than in dollars, as long as I can make the dollars work and the schedule fit in with my other projects. I will be spending some time in San Diego with my folks this Fall (2007), so if you're located there that could be a good time (no travel or lodging expenses; reduced costs to other parts of CA). Here are the kinds of work I find most attractive (Programmers: leave a comment about what things you like to do): Analysis, Design, Prototyping and Sprinting at the beginning of a project Exploratory experimentation to discover whether an idea or technology is a good fit Python Development with Nose testing Building Flex UIs Agile Techniques, Test Driven Development, Pairing, Highly interactive team environment Special needs I do have a lot of other things going on and my time requires flexible scheduling. But still, if I can help on a fun project I'd like to try to work something out.

A Craigslist for Fun-Work? If this process of connecting person with work (whatever the process turns out to be; please add your ideas as comments) evolves into something scaleable then perhaps we can build a Craigslist-style version of it so that other people can also discover fun work. And, trying to think outside the box, maybe there are already consulting groups out there who primarily focus on the quality of experience of the associates rather than putting "make more money" at the top of the list. If "we don't make stuff, we make decisions," as Seth Godin says, then a consultant who is relaxed, rested and happy is more likely to make good decisions, which will produce better medium and long-term profits than a company that sends out bodies disguised as consultants. Google adwords produced an interesting hit: Art & Logic, who seem to be doing a lot of smart things, including working out of your home office (which certainly isn't for everyone; some people need the structure of the office). Their claim that they hire the "best and the brightest" seems cliche, but if they follow through with their talk of making their consultants love the work, then it could be true. But I'm always suspicious about such claims; they're easy to make and I've known too many ex-Thoughtworks people, another "best and brightest" company, who got burned out through overwork (which seems like short-term thinking). Are there consulting firms you know of that realize that their only asset is their people, and put the quality of the experience of the consultants first? What other ideas do you have about connecting the right people with work that inspires them? Here's my web page about consulting.

Talk Back!

Have an opinion? Readers have already posted 14 comments about this weblog entry. Why not add yours?

RSS Feed

If you'd like to be notified whenever Bruce Eckel adds a new entry to his weblog, subscribe to his RSS feed.

About the Blogger

Bruce Eckel (www.BruceEckel.com) provides development assistance in Python with user interfaces in Flex. He is the author of Thinking in Java (Prentice-Hall, 1998, 2nd Edition, 2000, 3rd Edition, 2003, 4th Edition, 2005), the Hands-On Java Seminar CD ROM (available on the Web site), Thinking in C++ (PH 1995; 2nd edition 2000, Volume 2 with Chuck Allison, 2003), C++ Inside & Out (Osborne/McGraw-Hill 1993), among others. He's given hundreds of presentations throughout the world, published over 150 articles in numerous magazines, was a founding member of the ANSI/ISO C++ committee and speaks regularly at conferences.

This weblog entry is Copyright © 2007 Bruce Eckel. All rights reserved.