Welcome to Cykod. We are a fully-integrated, self-funded web-development startup located in Boston, MA.

Are all small web consultants doomed? (Details at 11)

As with any small business where every individual ends up performing many different tasks, finding time to do the actual work your company does is sometimes more difficult than it should be.

This has led me (and I imagine many other small business owners) to become somewhat obsessed with personal efficiency - figuring out how to extract the most out of each day, while keeping ourselves mostly sane, fit and fed.

Developing a complicated piece of software make the issue even more severe as I've found that my level of productivity is directly related to the amount of mental inertia I have on the current project:

Hour 2 working on a complicated project is considerably more efficient than hour 1. Day 2 of straight interrupted work on a complicated project is a significant multiple more efficient. Day 3 approaches that magical level of efficiency that I've heard described as "the zone" - that period where everything else melts away and your hands magically emit gorgeous code haiku's - perfectly sized, efficiently abstracted pieces of DRY goodness.

Now the time it takes to get in the zone (3 days in the example above), can vary widely depending on the level of mental focus, familiarity with the development environment and the size and scope of the project. Small projects that are easier to fit your head around are likewise easier on your mental processes.

What does this have to do with small web consultants?

If your experience is anything like our own, then the graph below is probably in line with your experience:

The longer you do this, the more complicated the projects you will be taking on will be. This isn't necessarily a bad thing, as the more complicated projects are also generally more interesting both intellectually and financially.

However, unless your are an abject failure at your work and none or your previous clients ever call, the graph below will also be relevant:

Taken together, what do those two graphs mean? Firstly, that as your new work gets continually more complicated, you'll have less and less time without new interruptions. Meaning less and less time in the zone, meaning that complicated web app your could have built in 1 month of solid 'zoned-in' work will end up taking you half a year due to the constant interruptions and bug fixes for your previous work. The client won't be happy with the adjusted timeline and neither will your pocketbook.

Taken together, what do those two graphs mean? Firstly, that as your new work gets continually more complicated, you'll have less and less time without new interruptions.

This isn't meant to be a "Magic Bullet" blog post - I'm not sure what the ideal solution for this problem is - we've done a number of different things to try to mitigate this problem.

First - For significant-sized projects standardize on one platform you are happy with for the majority of your client work as early on as you can [ We picked Rails, and then Webiva ]. By building off of a standard platform your minimize the cost of the zone-destroying context switches as you move from PHP to .NET to Ruby to Java. Keep the experimentation with different languages and frameworks to smaller projects and your personal time.

Secondly - the best code you can use is the one you didn't have to write. There are lots of open source options out there for both libraries and higher-level functionality. Make sure the license fits with what your doing (and the client's expectations), otherwise be prepared to release your code to your client under a compatible license (or in the case of the AGPL - be prepared to release your code to everyone under a similar license) If it fits your needs and looks like someone else is going to be actively maintaining it - it's a great alternative to writing a bunch of code yourself.

Thirdly - adjust your schedule to maximize the hours where you can work without interruption. We've taken to getting about around 5:00 AM and not responding to client emails until 9:30. With the right morning schedule I can get a number of focused hours in before the first crisis arises.

Lastly - as soon as you are to the point where you have a little bit of cash in savings and don't have to worry about making rent and putting food on the table, get as picky as you can about the projects you take on. Make sure the client seems compatible with your style of work and that the project itself interests you. If it doesn't, your going to have a hard reigning in the mental focus to keep yourself from scouring reddit and slashdot every 5 minutes.

The above four strategies kept us going and growing to the point where now we're headed into the start up world and are focusing primarily on internal projects. We still do consulting projects, but they are primarily with our existing clients, which keeps the surprises to a minimum.  I don't know if there's a better solution other than growing the size of your staff and/or accepting a drop-off in quality or quality of life, if anyone has any ideas I've love to hear them.

Posted Friday, Aug 28 2009 05:34 AM by Pascal | Development

Leave a Comment

Display Name:


Your Email (Optional, not displayed):

Add a Comment:

captcha