While at the Web Of Change conference in September of 2005 I spent a fair amount of time talking to Mike Gifford of Open Concept Consulting about CivicActions and our business model and how it can be a model for new open source web development consultancies. Upon our returns to the real world, Mike wrote me with some questions, at that point I brought Henri Poole, one of the founders of CivicActions into the discussion. What follows is the text of a week or so of email messages between the 3 of us. I have edited for consistency and added clarifying remarks where necessary. Both Henri and Mike have taken a look and approved this version of the conversation.
Michael Gifford: Henri, I spent a great of time exploring business models that are used by the other companies that were present [at Web Of Change] and trying to draw on the collective experience in the group. OpenConcept is presently owned entirely by me and I engage a group of sub-contractors for specific projects. Unfortunately, juggling their time and availability has proved to be rather time consuming and not particularly effective. Phillip Smith was discouraging me from re-organizing my business along the lines of a traditional business model. Someone told me to ask Gregory [about CivicActions,] and the business model that [you have] developed really speaks to me. I want to bring on more skilled programmers, provide them with a stable source of income and be able to build better tools for my clients. I need to help cultivate more Drupal coders. I also like the Drupal Guild concept and look forward to cooperating with you and other shops. I’m hoping that you might be able to share any documentation you might have that would help me adopt it. Once I have gone through what is available it would be great to be able to call you up and ask you a few questions. Henri referred Mike to a recent (at the time) article about civicactions that appeared in a Berkelely Daily Planet.
MG: Took a look [at the article]. I didn’t realize that you were as virtual a company as that. I’m wondering how you train new folks and bring them into the fold.
Henri Poole: We haven’t really figured out a way to bring people up to speed who aren’t already very competent in their domain. As for the other training, we just spend a few hours over the first week getting folks familiar with the essentials. We take it slow and walk them through the ropes with our time accounting, technical environments, and they learn pretty quickly about our work process. We have daily meetings with the entire group.
MG: Now how do you do this virtually? I’m looking at setting up some space to allow for in-person training/supervision in the first two weeks. After that I’d assume that they would be comfortable enough to work remotely. Also, because your staff are virtual, how does a group meeting work? Just a big conference call every day? That’s a pretty big commitment of time. I’m guessing that you also have IRC/SILC/IM channels open for communication in the day.
HP: We have a ‘daily scrum’ – a 20-30m phone call each morning at 9:30am Pacific where we each go through our daily list of todo’s. We also take the time to chat. Most of us also have IM open all day long as well.
MG: Interesting. So you do this partly to see where folks are at and also as your virtual watercooler – so that you can check in to see who is feeling under the weather, etc. Sounds like this is pretty key part of your communications plan. It must just be a “round” or something like that if it is all done on a conference call.
Gregory Heller: We typically choose some way to order ourselves on the call. When I first started we did things like going in hight order, or east to west, age, temperature where we were—little things that helped us get to know each other a little bit more.
MG: How many people are generally on the call? How many people at most could be on the call?
GH: Our team has been pretty stable at around 7 to 10 over the last 6 months, and most days everyone makes it on the call. It takes us between 10 and 30 minutes to get through the call depending on how much chit chat there is. I think that the call can work as long as it is under 30 minutes. Any more than that and i think that we will start to see a declining ROI. When we have a larger team and team members are working on different discrete projects, we may be able to do fewer full team calls and more project specific team calls.
MG: What technology are you using?
GH: We use FreeConferenceCall.com, most of us have unlimited cell minutes or unlimited long distance on our home phones, so there is no real overhead to this. Sometimes people call in from the car en-route to a meeting or as they are walking to their local coffee shop for a cup. I have called in via SkypeOut from a free wifi hotspot in a city park.
MG: In amongst all of the other things that CivicAction’s is doing, I did just want to double check that you did want to open up your business model, right?
HP: Everything we do is open. We just ask to be paid for our time. Our work product is released under GPL, AGPL, or Creative Commons Attribution Share Alike 2.5.
MG: This kind of transparency is certainly something that I have always aspired to as well.
HP: It’s actually quite easy. And, the odd thing, it’s actually made our business operate more smoothly.
MG: How old is the business again?
HP: We started in the summer of 2004
HP: We are not proprietary about anything. Period.
MG: Ok, what about what staff are paid and what a client is charged? If you’ve got different levels of experience, people working in more secure term positions or more independent project specific contracts do you let folks know where the money is going?
HP: A little tricky. We don’t actively oppose transparancy here, but haven’t had to deal with the issue of what contractors are paid. People haven’t asked.
MG: Sorry for bringing it up. From this though it would seem that you are paying individuals based on their experience and your need. That you haven’t set a fixed rate for term contracts/admin support/project management/design work.
HP: As for what we charge our clients, everyone knows if they look at the proposals, which are there for each member of a team
MG: Yeah. Totally makes sense to put those in for sanity checks.
HP: We pay $25-$80 per hour to contractors, depending on skills [and the task]. We charge 50-125 per hour, before discounts.
GH: We have a published rate sheet, and our clients pay an average of $100 an hour for our services. Everyone has a professional services agreement that outlines the terms of their engagement. Some are on a weekly retainer, others are on a straight hourly rate. We recently started experimenting with contractors fix bid on discrete parts of projects as a way to create a space for developers who are not familiar with Drupal to learn on the job without the company taking a bath on their hours. (Recognizing that the job is worth something based upon how long it would take a skilled developer to complete it, and fixing the bid at that level.) Other team members then provide some support to the junior developer.
MG: So I would assume that your term contractors get paid less per hour than you project specific contractors in that there is greater security in having a 9-5/M-F type position than knowing that you are just wanted to optimize this application for 10 hours.
GH: Right, but the goal is explicitly to bring people into the company who want to be a part of it as an owner at some point.
MG: My core developers are pretty good at hacking away at a code base to figure out what does what. But I don’t think that there are enough folks with these types of skills out there. You folks have more Drupal experience than we do (by far), so it occurred to me that for some contracts it might be worth us buying say an hour a day of one of your programmers time for a week or two to bring a new coder up to speed quickly. I don’t see this happening very often, but I’ve been asked recently about a moodle install and the client suggested that it could take 65 hours to do the install and basic template modifications. A coder familiar with the moodle code could probably do it in 5hrs (but there aren’t enough skilled coders familiar with the product). So it occurred to me that this is the perfect place to build in some training into the budget.
GH: I think what you are suggesting is a perfect feature of the Drupal Guild. The problem right now is that most Drupal developers are overloaded with client work, so finding the time to help out other shops is really difficult. The Drupal Guild (which unfortunately could not add hours to the day) could, by aggregating many developers make it possible for skilled developers to give 1 or 2 hours a week to reviewing code of trainee developers. Depending on the membership structure of the guild, this work could even be compensated.
GH: Back to privacy and openness. Is everything open and out there for the public?
HP: We do keep some things close to the vest (confidentiality wise) for our clients best interests, but we don’t sign any confidentiality agreements.
MG: Yup. Lawyers are expensive and not very open about anything.
HP: Our proposals with our clients also state that all of the work they they (the clients) contribute to our joint efforts will be licensed under GPL, AGPL, and CCASA2.5.
GH: In this way, our clients are also contributing back to the open source products they use through user scenarios, module specification, help and training documentation.
MG: We do this as well. Just makes so much sense to do it this way. Development companies can’t help but re-use code/experience/ideas from one project to another so why not just formalize and extend that?
MG: So, does the map below describe some off the people and types of relationships that CivicActions has (or would like to have): GH: Mike, this diagram does represent the guild as i have envisioned it. Except that “project specific contractors” may become “fixed term contractors” as in, contractors who are on retainer with the organization. I would also probably put some “permeable” border around fixed core. fixed term and project specific contractors. In my mind you have the core, surrounded by the fixed term, with the project specific a little further out.
MG: It would be interesting also to look at what is the model that CivicActions aspires to create and where are the stumbling blocks in implementing it. Also, there must be some general documentation on this type of structure available from other partnership models?