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?
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).
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
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.
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?
I have been involved in precious few fun projects in my life, and I know it's because we as an industry don't *get it*; from individual talent, on up through management. What we need here are change agents, and I think you're on to something.
Being in this industry for a long time, well, what seems long for someone my age who still twiddles bits, I agree about the fun thing. In fact, I rate the work environment, the people, and the problem domain of the solution way higher than that actual technology I use. Sure, working with JRuby or the latest and greatest would be more interesting, but if the environment or problem are lame, well...I'll be miserable. Basically, I can tolerate the pain of C++ and ATL COM, etc., on a MSFT platform if I'm working with the right people, even though it's now legacy technology, and not as exciting as the newer Flex and Python stuff I try to promote, innovate with, and enjoy. Go CoCreateInstance! Hmmm....now that I'm thinking about it maybe I should take a pay cut and join all these young 25 year olds in Web 2.0 fun!
Oh, also, I'd be interested in hearing about consulting firms that actually care about their consultants. My experience is pretty dismal, and I've worked with a lot of them. Usually it boils down to, don't pay the technical talent, hire as much H1B visas as possible, oversell on the project with an unreasonable deadline so the Client Partner/sales-guy gets a fat bonus, etc.... I'm interested in why more tech firms don't operate like design/law firms. You know, have real bonuses (not the $1500 - $3000 yearly stuff), and where a techie can be 38 years old, making great money for being a thought leader, etc...and still get to play on the technology side. Seems like to make any money now days, you gotta become management, and invest in a golf game. And on the fun-based scale, this is not!
Bruce, This is exactly what I've been working at doing for the last two and a half years. I've had some success, but I'm just groping my way through this and hope to learn a lot from other people's experiences too.
So far, I've found that working for free almost never works. As soon as you propose something controversial or ask hard questions they give your advice the same value that they paid for it. Since these are the times you can make the most difference for them, having them place little value on your input takes much of the fun out of the project.
On the other hand, many of the companies I want to work with are small and can't afford what I might charge a large company. If a client also does consulting, I charge them the highest rate they charge their consulting clients. This has worked well twice so far, but that's certainly not statistically significant.
An approach that worked for a non-profit science museum was to charge a very low rate ($25/hr) and show it as a large discount from my standard rate on each invoice. It required some real effort on their part to fund but allowed them to see that they were getting a pretty good deal.
I am also willing to consider all sorts of creative payment options; royalties instead of hourly rates, trades of goods or services, company equity instead of hourly rates, and so on. The basic idea is to trade immediate cash flow for something of potentiallly greater value later in return for assuming some risk.
For example, on a music product design project for a company with cash flow problems I charged them 25% of my normal rate due in 30 days with the balance of 150% of my normal rate paid as a royalty against future sales of the product. This is a big gamble for me, but it's a fun project and could pay a premium if the planets all align properly. That would be the kind of win/win I'd love to see.
I'm Chief Engineer at Art & Logic; thanks for the mention.
I can say that we do do our best to keep our people from burning out (I just had my 10 year anniversary with the company). The original goal of the founders of the company was to create their own dream jobs as developers.
I'm trying to be careful to not be obnoxious and commercial here, so apologies if I stop over the fine line.
1) We aren't a typical consulting shop -- we're small, and almost never do onsite work unless that can't be avoided. Clients who call up and order a boatload of programmers are referred elsewhere. Our place in the market isn't as a supplier of bodies to write code, it's doing custom software development (meaning that we handle all of the project management in house).
2) We recruit continuously and maniacally -- as you noted, not everyone can handle working without a manager breathing down their neck, and we need people who thrive in that situation. Is that whole 'best and brightest' thing a hoary cliche? Well, sure, but it doesn't make it less true that those are the people that we pursue to work for us. (The sad flip side of that is that people who've always been the alpha dog wherever they've been may not have the right mix that we're looking for at any given moment)
3) We avoid work that looks boring or clients that look like they'll be trouble. When clients have turned abusive (for example), we've fired those clients. The founders of the company, along with many of our staff, come from backgrounds in music and pro audio, so we pursue work in those industries when possible, because that's what we like to do.
Is every day a trip to the moon on gossamer wings? Of course not; it's a job (if it was always fun, we'd charge people to work for us, right?). We work hard to make it a great job.
Hmmm. I know what you mean about work and pay... I recently took a new job at a company which couldn't pay me nearly what I used to be making, but the company environment and the problem space is so much more fun, that I don't mind the drop in pay I took.
Good luck with trying to do the same with your consulting...
Having a lot of leads certainly helps you choose fun jobs. If you throw out a large net, you can pick and choose the most "fun" jobs in the catch. Also once you establish relationships with companies that provide fun work, you get referrals to other fun projects. It's not all fun, there's still work to be done, but it certainly is more fun than any other job I've done.
I've been offered more money to work at other jobs and have turned them down. I've worked for firms that just do the same boring type of jobs over and over. It doesn't use my full potential so it gets old really fast. I love to be challenged and to be able to learn from projects other than just provide knowledge for them.
My favorite thing to do is to designing new and unique systems. I'm currently doing a lot in Python and ActionScript and loving it.
I guess that opens up a question as to whether some kind of LinkedIn-type social-network can help tie up consultants with better gigs.
A friend of mine got me to join http://www.behance.net/ - which seems to be for freelance "creatives" After something I wrote on my blog, they've added "programming" as a creative category of work you can offer; which I thought was quite responsive of them.
But ultimately there's gonna be less money on fun gigs because there's a greater supply of people willing to do them. Unless we can make sure that the fun gigs are more profitable and proliferate. Actually, that shouldn't be so weird, should it? Individually programmers are more productive when having fun. Doesn't that scale up?
If so, why are there so many unfun projects with lots of money to hire consultants?
Is it likely you'll have fun as a consultant unless the team itself is having fun? Or at least has having fun as a goal? Or at least can imagine "having fun" as being a legitimate goal?
If not, that suggests not one, but three, problems to solve:
1) a pricing model
2) a way of discovering fun-capable teams, or of evaluating teams for their latent fun-susceptibility
3) a way of supporting the creation and survival of fun-capable teams. At one point, I proposed that the Agile Alliance narrow its focus to helping teams, including helping them push back against external forces that drain work of joy. http://www.exampler.com/blog/2007/05/20/help-me-stir-things-up/ But there wasn't enough agreement on that. So I've fallen back to making slightly rabble-rousing posters, which I will send to any reader who requests one. http://exampler.com/propaganda.html
Hang one on your bullpen wall, send Bruce a snapshot, and maybe he'll give you a price break.
Hmm... maybe you could say something like, "To get my 60% Co-Participant Discount, you'll first need to send some of your existing team members to one of the following Open Space or Sprint events which I'll be attending..." And, if they're a miserable Dilbert-land, they'll probably balk at that.
Part of the problem is that many folks look to consulting when the project is in trouble. Even interesting problems are usually not fun in these situations. At least that's my experience (not as a consultant, but in companies who hire consultants).
Whenever I discuss salary with someone, I always say that there is more to compensation than money. I don't know if anyone ever really hears that.
I'm looking to move into different problem domains, I've been a systems type with C/C++ experience, and say to folks that I'm willing to trade opportunity for money. I don't think anyone believes me when I say this.
A Craig's List type of place would be great, but I wonder how many companies would use it?
This really rang true for me. The most fun I have had on projects are the ones where the pay was lower. These jobs were long hours + tight deadlines but every night I could not wait to get back the next day to do it all again. Ever since going back and working for the consultancy company the pay has increased but the enjoyment has dropped, there must be a balance?
I would also love to see a Craiglist type website for "fun" jobs