Christopher Hawkins - effective Software Development and Web Design project management

Monday, July 23, 2007

Monday Consulting Questions: Three Reasons Not to Work On-Site

I've been saving up questions for a while, so without further ado let me welcome another installment of Monday Consulting Questions.

Q. What is your position on working on-site? I have a new client who is pressuring me to work 100% on-site, and I don't know what to tell them.
A. When you say "working on-site" I'm going to assume you mean actually developing software on-site.

The general rule I've set for Cogeian Systems is that we do not do development work on-site. We have our own work spaces, our own machines, our own software and everything else we need to complete a project. We primarily do work at our own locations. Now, we do travel out to see clients for various reasons - meetings, installations, training, etc., and these things are work. However, it is not our generally our practice to generate work product (software) on-site. There are a couple of reasons for this, and I suggest that you as a consultant think long and hard about them.

First, my experience has been that developing on-site devalues your expertise in the client's eyes. Back in the early days when it was just me, I had a couple of clients nastily refer to how I was "just typing all day" and that they didn't understand why they were paying my rate - this despite the fact that what I was building was demonstrably saving them 3x my bill in labor costs each month. But for whatever reason, this client didn't care - all they knew was that a typist should cost $10/hour, yet there I was, "just typing all day" while being paid almost 10 times that. However, take that same client, go away for a week or two, come back with a big fat feature to install, and they'll think you were off working miracles for them. It's lame but it does happen.

Second, working on-site introduces the danger of the client treating a consultant like an employee. You're there every day, sitting at a desk like an employee, arriving at 8 and leaving at 6 like an employee, taking an hour for lunch like an employee, hell, they may as well treat you like an employee - that is to say, micromanage, second-guess, interrupt, and generally stop you from being effective. I know, I know, this sounds terrible for me to say, but I've called clients on this before and they admitted that I was right. There is nothing more dangerous than for a client to take an expensive consultant too casually and give them the employee treatment, thereby working against their own best interests. The most effective (and happiest!) consultant is going to be the least encumbered.

Third, working on-site prevents you from doing the things you need to do to grow your practice. If you're stuck behind the client's desk for 8 hours a day, when are you going to market? When are you going to recruit? When are you going to make or take prospect calls? Sure, you could do all these things after hours, but isn't it better to NOT do it that way? This is the kiss of death for anyone trying to found a consulting practice that they intend to grow beyond a 1-person operation.

So, the over-reaching meta-reason for not working on-site is simple: it is not an effective practice. It's not an effective way to get a project done (which is bad for the client) and it's not an effective way to grow your business (which is bad for you).

Now, the exceptions.

For certain remediation projects, there is no way to avoid working on-site. Although we do 90% of our work via some sort of remote services, there are times when you need to be physically at the location, and that is fine if that is what the job requires. We're just not going to work on-site for every little mundane task.

Personally, I think that a client who wants a consultant to be on-site full-time has a trust problem. And if a client cannot trust my team and I, then we probably shouldn't be working together. Again, this is a hard line I'm taking, but I think it is a useful one.

Of course, there are folks out there who don't really want to be a consultant, they want to be a contractor - that is, contracted labor meant to augment the client's W2 staff. There's certainly nothing wrong with this kind of arrangement, as I know a few guys who make it work with some combination of on-site and off-site development work. I simply don't recommend this as a long-term method of operation for anyone who is looking to build a consulting firm.

Q. What do you do when a project requires technology that you are not familiar with?
A. Now, this is an interesting questions. I have always said that my company specializes in the Microsoft platform of technologies; if someone called us to do, say, a PHP project, I'd have to politely decline. However, I have recently decided that this stance does not mesh with my oft-repeated claim that we are actually in the business-problem-solving business. So, I'm currently looking for competent PHP and MySQL resources so that I can apply my take on effective development practices and extend my company's offerings to include the LAMP ecosystem. I might even pick up some PHP skills myself (more on this later). But, I'm digressing.

When faced with a project that includes or requires technologies that neither I nor my team are up to speed on, I do one of a few things:

If the unknown technology is a strong majority of the project, I will refer the client to someone else.

If the unknown technology is a strong minority of the project, I will accept the project and subcontract the parts that include the unknown technology.

If the unknown technology is a minimal factor in the project, I will strive to understand it (or have one of my team members strive to understand it) to the degree that is required to complete the project.

Do you have questions about the custom software/consulting business? Email me your question and I'll try to use it in a future installment of Monday Consulting Questions.

08:45 AM Permalink

Friday, July 20, 2007

Friday Dream Projects from the Blogosphere

The Friday Dream Projects thing caught on fairly well. I got wind of a couple of other blogs that posted their own Dream Projects.

First, we have one from James at Blue Jazz Consulting, who then followed up again this Friday with a new set of dream projects. Good show, James. I really like the idea for a CRM version of Remember The Milk.

Then Jeff Donnici got into the act, posting a couple of his own Dream Projects last Wednesday. Jeff wants to do programming for a new kind of poker machine for casinos. Sounds cool.

As for my own dream project this week, I've recently been daydreaming about how cool it would be to build a self-service patient scheduling app for health care providers.

If you can book your own flights online (within the parameters of what the airline makes available), there's no reason why you can't also book your own doctor's appointment (within the parameters of what your doctor makes available), right? As with most of my dream projects, this seems to me like the kind of thing that probably already exists, but it would still be fun to build one!

What are your Dream Projects? Post 'em on your blog or eMail them in and I'll post them here.

11:45 AM Permalink

Monday, July 16, 2007

Withdrawing From The Echo Chamber, 2 Weeks Later

It's been 2 weeks since I decided to delete all my bookmarks, un-subscribe from all my feeds, stop reading blogs, and generally disconnect from the entire blogosphere. How is it working out for me?

It's wonderful.

Now, I've had a few lapses, mainly because people keep eMailing me links to blog posts and saying "come on, you HAVE to read this one". So, in the past two weeks I've faltered on these occasions:

  • I posted a few comments on Ian Landsman's blog. Ian is a friend, so I felt compelled to check out his latest stuff when someone suggested it.
  • I posted a comment on Scoble's blog, again after being eMailed a link suggesting a particular post was worth checking out.
  • I read Mike Gunderloy's criticism of my dis-connecting over at Web Worker Daily.
  • I peeked at both Joel on Software and Signal v. Noise.

That's pretty good, I think. Total time spent on all that was less than 20 minutes; I used to spend more than that per day when I was subscribed to 100 different feeds and trying to stay on top of everything, all the time. Now, I figure that if something important to my business pops up, it will make itself known to me organically.

I've also had a few bookmarks organically work their way into my routine over the last 2 weeks: one for Cubespace, a co-working facility in Portland, OR, where I'll be spending a week later this month (I'll be renting a slot at Cubespace to work at that week), and one to a ZenCart customization tutorial (I'm doing my first ZenCart project this month). What makes these bookmarks acceptable is that they each pertain to work, both have a finite context, and both can (and will!) be deleted once they have served their purpose.

OK, OK, that's all well & good. But part of my reason for disconnecting was to improve mental bandwidth and just feel better about my informational diet. How are things going on that front? Again, wonderful.

I no longer feel like I have the weight of the world on my shoulders with regard to having to know everything that's going on in the industry all the time. Why did I feel like that in the first place, I wonder? The answer is, who cares? I'm on my way to being free of it. My eyes are open and I'm dedicated to cherry-picking my informational interruptions from amongst the things that actually benefit me professionally.

Is anyone picking up that 30-day disconnect challenge I issued? If so, I'd like to hear from you.

08:01 AM Permalink

Monday, July 09, 2007

11 Clients You Should Fire, 2 Years Later

I can hardly believe it's been just over 2 years since I wrote 11 Clients You Need To Fire Right Now; it seems like it was just a few weeks ago. That is, without a doubt, my most popular article. It even was published by Software Development Magazine back before SDMag was acquired by Dr. Dobbs. Clearly I struck a chord amongst folks who have problems with ill-behaved clients.

Here we are two year later, and I'm wondering if anyone actually took it to heart and fired their problematic clients. I can happily report that I have dropped several clients off the roster here at Cogeian Systems over the past 2 years, and I think that business is better for it. Sure, total revenue is a bit less than it would be if I had kept those clients, but the quality of the business we're doing over here is much higher. It's absolutely been worth it. All dollars are not created equal; I'm much more interested in accepting the projects that will actually result in good work and a good experience for all. It's better to take 75% of the work and feel 100% good about it than the reverse, I think.

If anyone has a good story to share about how they've improved their business by firing a client, feel free to email me, I'd love to hear it.

03:59 PM Permalink

Friday, July 06, 2007

Friday Dream Projects - The Kick-Off

I find that my company does a lot of similar projects. Even though we're primarily a bespoke development shop, I can't help but notice that there is a ton of overlap between a lot of our projects. Sometimes it feels like we're doing more copy-paste-modify than actually designing unique things that work in unique ways. My company is staying busy, but there are certain types of projects that get my personal creative juices flowing more so than others.

So, every Friday, I'm going to post a few of my "dream projects". Now, I don't expect that someone is going to read my blog and say "Oh my goodness! Christopher is dying to do a Martian Balloon-Farming management system, and that's just what I need! I've got to call Cogeian Systems right away!" That's not why I'm posting this. Of course, if that were to happen, I'm not going to say no (attention, all Martian balloon farmers: bring your checkbook!) I think it's important to externalize the things that you really want to do. When you say them out loud, or post them someplace, they seem more real.

Plus, I'm hoping to start a meme. I may not be reading blogs right now, but it sure would be nice if a whole bunch of other bloggers posted their dream projects too. Anyway, here we go:

Today's Dream Projects

  • Bonus compensation management system - I used to work for a company that did HR software, and worked on apps that handled bonus/incentive compensation, salary management, performance management, and succession planning. It was great stuff. But what I loved most of all was working on the bonus comp system. Thankfully, that's the product I spent most of my time on. I've done a couple of lightweight bonus comp projects over the past 5 years, but I'd really like to do another one, a bigger one. Lots of fun for everyone. I like the idea of helping people to get paid. There are a number of such systems on the market, but it would be cool to do one custom for a firm that needs something tailored to their specific compensation processes.
  • Martial arts technique catalog - I'm imagining an interactive training tool for martial arts schools that would walk a person through a variety of moves and counters, allowing for the presentation of unlimited combinations. There is no substitute for live instruction and sparring, but it sure would be cool to have a tool like this to supplement the live training. I'd be very surprised if something like this is not on the market already, but I'd love to do a customized version for a school that has a unique take on training.
  • Film production management system - Making a movie can be a BIG project. I have a friend who works in television production and has done a few documentary films and man, you should hear some of his stories. It's a crazy business. I'd love to build something that would help manage the chaos, using standard project management ideas and adapting them to the complications of film-making. I know there are off-the-shelf systems that do this, but it would still be a lot of fun to custom-build one that has a unique take on the process of managing a production.

That's it for today. My dream projects probably seem silly to some of you, but your might seem silly to me, too. Plus, they change every week (if not every day). I usually think of this stuff when I'm in the shower.

What's your dream project?

01:30 PM Permalink

Wednesday, July 04, 2007

Responses to Clearing Mental Clutter

A colleague let me know that Web Worker Daily has commented on my post about withdrawing from the echo chamber. That's pretty cool, I like WebWorker.

First off, let me say that it is not lost on me that I would have noticed this myself had I not deleted all my feeds and bookmarks. Har-har, the joke's on me, I get it. This still makes for nice reading on a day off of work.

Second, Mike Gunderloy thinks I am prominent. Excellent.

Now, on to the meat of this post. By saying that:

...web workers have focused on ways to fine-tune and channel attention so as to find the necessary information at the right time."

Mike seems to be advocating that you carefully evaluate each and every one of your links, each and every one of your social sites, each and every one of your newsfeeds, hemming and hawing over "gee, maybe this one could stay", wondering if you made the right choice, carefully crafting a suite of interruptions that you deem acceptable.

I say, to hell with that. If you're running a business then you've got bigger fish to fry. Plus, we already have a way to find the necessary information at the right time. It's a little site called Google, maybe you've heard of it. I'm glad that Mike can make this kind of soft-pedal approach information clutter work for him, but in my experience you need to take direct and massive action if you want to be really effective.

Now, I did indeed take a radical approach by simply deleting all of it. And I do indeed think that it was the right step to take. However, the spin that Mike puts on it is that I - in true ultra-hermit, Unabomber style - have decided to permanently and completely withdraw from the outside world. This is not accurate.

Mike seems to think I'm advocating sticking one's head in the sand and letting the industry pass one by. I'm not sure how he comes to the conclusion that disconnecting for a while is akin to never learning new skills and letting your firm die.

Look at the last sentence of my previous post again:

Basically, if it's not helping me to secure or complete projects for my company, if it's not helping me to make money, if it's not improving my life in some way, it's mental clutter and it's out.

You see, I have no doubt that some of these connections to the echo chamber will eventually be back in my routine - if said connection helps me in some way.

The heart of the matter is, which of these outside influences and sources of connected-ness will earn their way back organically, by being a legitimate boon to my life and my business? And which will turn out to have been nothing more than baggage that I was holding on to un-necessarily, simply because I felt compelled to for some reason? That's the real test.

I issue a challenge to Mike, and to all of you who are reading this - disconnect, if you can. Disconnect, if you dare. Ditch your feed-reader. Ditch your Favorites folder. Drop out of your social networks. Just for 30 days, disconnect. Then, start allowing connections back into your daily routine organically. Resist the temptation to maintain a bookmark to some blog just because you feel like you're supposed to know what's going on within it's contents. Why are you supposed to know? Is it because you really benefit from it, or is it just because you feel compelled to be "in the know" with all the cool kids and A-listers? Resist bookmarks to "resources" that you don't really need. Is a given bookmark providing you with real knowledge, or just tabloid information about the industry? Is a given bookmark that once provided useful knowledge still relevant? If not, do you need to maintain it?

Make your online distractions earn their keep. Then delete them every year or two, and make them earn their spot all over again. Be ruthless in the distractions you accept. There is an entire world out there trying to pull your attention away from the things that will make you effective, productive and prosperous. Don't just give your attention away, make things earn it, then earn it again.

03:37 PM Permalink

Monday, July 02, 2007

Withdrawing From the Echo Chamber and Clearing Mental Clutter

I think I read too many blogs. Perhaps you do, too

I know that Scoble manages to keep up on umpteen jillion blogs, but even with the aid of feedreaders, it's daunting. And there's just no payoff. In fact, I am beginning to believe that being too connected to too many blogs actually is a negative.

There is a limited amount of overhead that the human brain can sustain and still be highly productive. I believe that every feed I follow, every blog I read regularly, every bit of connected-ness I currently have to various destinations in the tech blog echo chamber is like a lead weight, slowing down my brain. Furthermore, I'm not convinced that being highly connected to the blogosphere is even healthy.

There's too much focus on what the other guy is doing - which designer has a clever CSS hack this week, which company is launching what Web 2.0-related app with no revenue model this week, which Microsoft technology (which obsoletes some other Microsoft technology) is on the drawing board this week, who's making a billion, who's losing a billion, who has mind share, who's leveraging the Long Tail, who's reached the Tipping Point...guh. It's as though everyone who writes or reads a tech blog have all actually agreed to bullshit one another, and act like it's all perfectly normal.

Guess what? I don't care about your web app. I don't care about the latest developer technology MS is working on. I don't care about the 19-year old whiz kid who just sold whattimeisit.com to Yahoo for a billion. But by being so plugged in, I have sometimes managed to fool myself into thinking I do care about these things.

What I do care about - passionately - is profitably solving problems for my clients. Being overly connected distracts me from that. So, I'm going to opt out for a while. Clear out the awareness baggage. De-program. And, thankfully, focus my mental bandwidth on how to continue effectively and profitably solving client problems.

I'll continue updating my blog, of course. Being less connected will probably mean that what I write will be more informed by what's happening out in the real world where software is used to keep real businesses running than by the online chatterbox where the focus is on who's doing what.

Are you feeling like it is time to clear out the attention clutter and cut back on your connected-ness to the blogosphere too?

The same goes for the hundreds of items in my Favorites bar. All that takes up mental bandwidth, keeping the idea in the back of my head that all those bookmarks are there for a reason and that I have this mental commitment to go back and look at them again and possibly DO something. But really, those bookmarks just sit. So I deleted every single one. Now, I'm going to have to re-create a few, because they were for things like client websites and such, but the point is that if it doesn't get re-created during the course of my work, then I didn't really need it.

I'm also deactivating my accounts with online forums and social networking sites. Again, just having those accounts forms a sort of mental commitment to visit them, keep up with people, keep abreast of the latest, and feel obligated to DO something that doesn't necessarily help my productivity.

Basically, if it's not helping me to secure or complete projects for my company, if it's not helping me to make money, if it's not improving my life in some way, it's mental clutter and it's out.

11:45 AM Permalink

About Christopher

I am the founder and principal developer of Cogeian Systems, specializing in custom software development, web design/development, and crisis management for software projects.

Everything you see in this blog is my own personal opinion, based on my experience in the software field.

©Copyright 2004 Christopher Hawkins | web design: Cogeian Systems