Tim Harvey :: Blog

Icon

I help organizations who feel stuck

Take your workspace seriously

I’ve always been fascinated with creating a proper and efficient working environment. I’ve taken a fair bit of inspiration from the terrific writeup and gallery put together by Mitch Haile on his setup. Key takeaways:

  • Have separate coding and administrative areas
  • For coding, screen real estate is king
  • Bush Series C office furniture rocks
  • Ergotron makes fantastic monitor/laptop mounts
  • I’m not a freak for owning/buying tons of books (in paper form, either)

BookshelfDuring my 5-year stint at a local cabinet shop, I had enjoyed the opportunity to design and install two completely different office setups; one standing-height workstation and the other a traditional L. When I started Literacy5 a year and a half ago, I went through a variety of setups before I settled on something I really liked (some through necessity, and others out of a need to experiment).

Separate coding and administrative spaces

Original layoutOne of the most valuable lessons from reading Mitch’s office FAQ was the way he created different spaces for his coding and administrative/non-computer work. In my original office layout, I used the corner section to setup my Mac Pro and three 22″ screens. The large bowed section functioned as my admin area. This worked REALLY well. My computer workstation area stayed immaculately organized while the admin area was always strewn with papers. That gave me the ability to keep extremely focused on the work at hand while coding, with zero distractions. When working on the business side of things, I could multi-task and juggle whatever I needed. My Macbook accompanied my to the admin area whenever I did my bookkeeping.

I eventually swapped the admin/computer spaces to support pair programming. Two of us could easily sit side-by-side at the large bow-shaped desk and each have our laptops out. While I didn’t use it that way very often, it worked out great!

SquaremouthAt Squaremouth, I keep my desk space as sparse as possible, still maintaining as much screen real estate as possible. As an aside, the Kinesis Advantage Pro has made a huge difference in the trouble I was having with my wrists. It’s a topic for another post, but switching to Dvorak at the same time worked out nicely.

I really like having the two Dell 2209WA monitors on their side…it’s perfect for terminal windows, chat sessions, and Basecamp. The Macbook Pro runs the monitor on the left with the iMac 27″ handling the one on the right. With a little creative SSH action, the left 22″ can tail the Rails logs and it feels like you have three screens natively on the iMac.

New layoutNow that I’m at Squaremouth, my home office needs have changed dramatically. We are selling our 6,000 sq/ft home/office and will share office space with our friends John and Betsy at a converted warehouse. The office will primarily support managing our home, helping out with the non-profit we do accounting for, and my side projects. I may not even keep a computer there full-time, instead relying on my Macbook Pro. The new layout will still have two separate workspaces, but they will likely be split between my wife and I. I may even setup a dedicated podcast/screencast recording area so that I can leave my mic setup and ready to go.

Get a decent chair, please

One of the lessons I learned early was that a crappy chair can ruin your productivity (not to mention your back) by the end of the day. I’m a young guy, so I don’t care to complain about my back for at least another 20-30 years. The office I worked in before starting Literacy5 spent the bare minimum on chairs, so I’ve sat in some doozies. I never thought much of it since I was doing primarily IT support work with some programming sprinkled in. At most, I might be seated for 2 hours at a time with frequent breaks.

After a few more people were added to my staff, I spent considerably more time at my desk managing projects, coding, and handling server support. By this time, I was sitting in my chair for 7+ hours each day with only the occasional break. I realized just how important a decent chair (and having the sense to get up regularly to stretch) was.

So after launching out on my own, one of my major goals was to make sure that I got some decent seating. Like any new business, I didn’t have the stability to drop $1k on a chair right away, so I opted for a standing height work area…no chair needed! I build the desk myself and it worked great for quite some time. About six months in, I found that I was doing fewer meetings to attract new clients and had a lot more long stretches at my desk coding. While I really love a standing desk, I found that I couldn’t be comfortable more than 5-6 hours a day.

When I built a new office, I finally had the client work to justify a decent chair. I got a terrific deal on a top of the line Herman Miller Mirra through eBay, spending about $500. The Mirra is the follow on to the tremendous Aeron (I’ve tried both and prefer the Mirra). That has been the best $500 I ever spent. I’m sitting in it now and a year later it looks new, works perfect and still gives me 9-10 hours a day in perfect comfort.

Can you be friends with your clients? I think so.

Over the years, talking heads have told us that one should keep your business and personal life carefully separated. While I’ve generally agreed with that approach, recent shifts in my client base towards more ideal clients has given me opportunities to head in a new direction.

Getting our families together

Working with John King from Metta Audio has been my first experience with a truly ideal client. The work we do together has been extremely interesting and engaging, as well as being a joy to build.

20100120 MilesWe enjoy working together so much, and appreciate each other as fun people, that it’s been natural to connect outside of work. Our families have gotten together several times for dinner and play time. I have to admit, it helped a lot that John and his wife Betsy (who is a stellar photographer) are really open and genuine people. Just reading their blogs made me feel like I knew them. Reading about their experiences made it pretty obvious that we had a lot in common.

Building solid foundations

The really amazing thing I’ve found is that as we’ve become friends in addition to business associates, our relationship has strengthened. I suppose that sounds obvious, but it has rather significant implications for the long-term success of any business. While I don’t seek to be friends with John to manipulate him, there are several tangible business outcomes as a result of our growing friendship:

  • Loyalty – Because the business relationship is not based on some fleeting detail like price, I feel more comfortable than ever that John would come to me first when he needs help. I get to spend more time doing the work I love and less time building up my client base. Plus, I’m more loyal to John! I work hard to take care of his needs and have gladly learned some new tools to fit his requests.
  • Profitability – I’ve found that every new client needs some level of training on how you do business and how your services can best meet their needs. By fostering long-term clients, you reduce this non-billable time and effort. Plus, when a client really values what you offer (both in terms of who you are as well as what you do), you can both arrive at a mutually agreeable rate for your services that’s almost sure to be more than what you might feel comfortable asking when doing the first project for a new customer.
  • Fun – Don’t underestimate this one! I’ve had more fun the last six months working for my ideal clients that I ever have before. That’s resulted in me doing some of my best work, feeling less stress, and growing my skills tremendously. I think you’ll find that this does have a measurable financial impact. Clients can tell when you love what you do and they’ll want to be a part of it with you.

Hitting the museum

Spending time with your clients doesn’t have to involve dinner at your home (although the intimacy of that can be powerful). For our latest excursion, my wife Sara and I invited John’s family to join us for a trip to the fabulous Indianapolis Children’s museum.

20100120 JennaA brief side note is in order…spending time with my family is the most important thing on my list when I’m away from work. So the last thing I would do is drag my wife and kids along to some boring business get-together with a client. Instead, we planned something that the family would love and invited John and his family to join us! This is important, too. While your clients will appreciate you for taking care of them, they will adore you when you do special things with their kids. But remember, this all needs to be something you do because you want to and love it, not some cheap to do list to curry favor with a client.

20100120 Miles and John

So we spent several hours at the museum cruising around and playing with the kids. Afterwards, we introduced John to Skyline Chili for lunch. It was a terrific day and everyone had a great time. I think we talked shop for less than 5 minutes the whole day (Which is good! No shop talk would have been fine.).

Getting several clients together

I’m looking forward to going again when John’s wife Betsy can come. Plus, it didn’t work out this time, but for our next trip, I hope that Matt Outten from Squaremouth can bring his family. Matt is my latest ideal client and has been really enthusiastic about getting our families together. He’s even been gracious enough to invite our family to come have lunch at his office each week when his family comes!

If you haven’t picked up the message yet, the critical theme is to share, share, share what you have, whether it’s a fun trip, a friendship, or knowledge. Give it away, you won’t be sorry.

When building web apps, utilize proper indexing

Rails does a lot of crazy wonderful stuff. The downside is that all that awesome power gives you the ability to make some pretty dumb moves. Just because I can get the URL for one of the sites my Am I Down? users get alerts for by using…

current_user.sites[0].host.url

…doesn’t mean that I necessarily should. That command generates some heavy SQL, running a join across several tables (after running a separate query to get the current user):

SELECT "subscriptions"."id" AS t0_r0, "subscriptions"."user_id" AS t0_r1, "subscriptions"."host_id" AS t0_r2, "subscriptions"."alert_id" AS t0_r3, "subscriptions"."created_at" AS t0_r4, "subscriptions"."updated_at" AS t0_r5, "hosts"."id" AS t1_r0, "hosts"."url" AS t1_r1, "hosts"."created_at" AS t1_r2, "hosts"."updated_at" AS t1_r3 FROM "subscriptions" LEFT OUTER JOIN "hosts" ON "hosts".id = "subscriptions".host_id WHERE ("subscriptions".user_id = 35) ORDER BY subscriptions.updated_at DESC, hosts.url ASC

That’s going to take 21ms to run, just for a lookup. Is that a big deal? Perhaps not. Indexes (in the right situations) may make that SQL query run at an acceptable level.

Real world problems

In the case of Am I Down?, my service that alerts you when your web sites go down, I run some pretty slick lookups back through the logs for a web site to see if the change we see in a sites’ status is significant enough to warrant an alert. Since there are thousands of web site checks going on every hour (currently over 20,000 each day), a 21ms SQL statement is seriously bad. You can see the result below:

20100119-db-indexing-screenshot

The solution

The logging table didn’t have an index on the host_id, so it took forever (20ms or so) to find only the log entries for the current host, which for various reasons happens 8-10 times per check. So almost a 1/4 second is taken up by SQL checks every time I checked a site. You do the math and that means you can only sustain about 1,200 sites (240 checks per minute, every 5 min) for each checking worker. Not good.

You’ll see that the there’s a vertical bar towards the right of the graph, after which the bars drop off considerably. That would be the point I added an index for the host_id. Suddenly the time drops to about 3ms. That’s more like 3,600 sites for each checking worker. Much better!

Improving your Rails app

For a Rails app, the Rails_Indexes plugin offers a great way to track down any obvious indexes you may be missing. To speed up queries and reduce the number of queries you make, take a look at Bullet.

Client stats for 2009

As we begin the new year, I would encourage you to review your business and see what unexpected insights you might find. I’m not talking about another look at your products or services, but rather at your processes, finances, and customers.

Starting to work ON your business, not just IN it

It’s easy for me to spend the whole year thinking about code, forgetting that it’s just as important to work on the business as it is in the business (check out the terrific book, The E-Myth for more on this subject).

For me, a major revelation came when I looked at my top customers as a percentage of sales a few months back:

Google Chart

Tail wagging the dog

Wowzers! While it felt like I had a bunch of customer jobs going, the reality was that 3 clients kept everything going. Worst of all, my top client of 2009 was my least profitable and most demanding (It’s worth noting that they had some very good qualities as well: very consistent work and they always paid on-time).

Based on some thoughtful review of these stats, I made a few changes:

Putting long-term relationships first

I saw that too much of my work was provided by clients that needed the services I offered, but had little need for the “Tim-ness” I bring. Partially, that’s because I initially pursued the marketing and design agency niche. Unfortunately, their margins are very tight and for many of the players, web is an afterthought. There’s very little really innovative development going on locally. Clients aren’t asking for it yet.

More than anything else, my work needs to come from organizations that find me irreplaceable. Not in that lame, “I’m the only one who knows how it all works” sort of way. Rather, it’s about finding and working with people who really appreciate the unique talent, perspective, caring, and personality you bring to every project. It’s about brining so much enthusiasm and productivity that the client can’t believe their luck in finding you. Those are things that cannot easily be replaced by anyone else.

My work with John King from Metta Audio has this feel. We both really appreciate what we bring to the relationship. He’s been kind enough to tell me that the chemistry we have as we work together is as much or more valuable than my coding. Plus, I’m always thrilled to work with him on something new!

Demoting the tough client

My favorite book for self-employed consultants, Book Yourself Solid, reminds us that we have to drop our worst clients. They sap our energy and we end up doing poorer work for everyone. I’m not one to fire a client unless there’s something drastically wrong, I’d rather have them fire me. If the work isn’t worth it, I may have to raise my rates significantly to maintain profitability. That way, the client can still get help and I don’t need to complain. If the rate becomes unreasonable for the work they need, the client can replace me. Along those lines…

I’ve known for a while that I needed to change the relationship my top client. 90% of their work was supporting an existing environment, and that’s not really my strength. And because the work is support-related, it’s almost always urgent and interrupts scheduled projects for other clients. My frustration was a clear indication that my rate did not reflect the cost of doing business with this client.

As I mentioned in a previous blog post, I began the transition in October. I completed several open projects and started discussions about eliminating the retainer I was on and associated minimum hours. Since their budget had tightened, it turned out to be a natural move for them, shifting me over to a higher rate that allowed them to only call when I’m urgently needed.

I work hard to protect my time on scheduled client projects, so we also agreed on a minimum billable time when they call. This ensures that I’m compensated for time lost to the interruptions and ensures that they don’t call frivolously. With over a month under our belt with the new agreement, I think it’s been a real success. I’m pleased to take their calls and help when they need it, and they’re spending less. Best of all, I’m freed up to do more of the work that I love.

Increasing the apps available

In addition to client work, I want to add to and continue growing the subscription services I’ve created:

Focusing on larger projects

My business thrives on doing ongoing work for a small number of stellar clients. Part of that is due to my personality. I can really do effective work on one or two projects a day. If I’m pulled away to make calls and juggle 8 projects, trying to move each forward in the course of a day, it feels like a disaster. I enjoy the larger development projects more. They offer a more significant sense of accomplishment that designing lots of little marketing sites.

It looks like I’ll be able to transition over to just a few clients with ongoing needs in 2010. If everything goes as I suspect it will, I’m already completely booked through March, and likely into mid-year. That’s tremendously encouraging. I also had to start a waiting list for a couple potential clients that want some work done and were comfortable waiting for me to free up. It’s a pretty wonderful spot to be in.

Many of the relationships I worked hard to build in 2009 have resulted in requests for work. I’ve been pleased to refer many of these to other independent developers and designers in the area, helping them keep busy while taking care of my contacts. It’s always hard for me to turn down a project as I love to help people, but it’s what I have to do for my current clients.

It’s going to be a stellar 2010!

Finding my ideal clients

I am constantly on the lookout for ideal clients. I yearn to surround myself with them. The people I look for:

  • Possess an enthusiastic attitude and enjoy coming to work every day
  • Want to delight their customers with excellent service and fantastic products
  • Love to learn, looking to improve themselves and their craft
  • Focus on building lasting value at the expense of immediate gratification
  • Value quality time with family and friends, avoiding the workaholic trend

Literacy 5 - LogoIf that’s you, I expect you to contact me in the next 2 minutes. You’ll find a wealth of contact details on my company web site.

But what do you do?

“But Tim,” I hear you say, “You didn’t say anything about the work you do.” That’s true, and very intentional. While most of my work ends up being technology-related, and specifically web site development, what separates my from any other developer sits outside the technology realm.

It’s about giving my customers peace of mind. I’m the guy who my clients (and previous employers) turn to when the game is on the line and they need to score (pardon the sports analogy, it’s all I could come up with). While it may sound cliche, I make things happen.

Ruby on Rails LogoYes, I build killer web sites and online software. They’re perfect for my clients not because the technology is great. It’s that they do what no one else could figure out how to do: accomplish my client’s goals of more revenue, more customers, fewer errors, etc.

The people I work with have problems they need solved, and never enough time to take care of everything. They’re frustrated when working with people who need to be told what to do, or how to do it. There just isn’t enough time in the day.

I’m the guy who comes in and wants to know, “Where do you want to be in 6-12 months?” and “What issues plague your organization?” I sniff out the solutions to those problems, present my plan of action, and then get it done. My clients rest easy at night knowing that I’m sweating the details and taking responsibility for delivering success.

You did what?

Some of the quirky projects my clients (and previous employers) have put me up against include:

  • Managing the planning and execution of a national trade show exhibit — Increased dealer network by 20% within 9 months
  • Revamping a manual, fax-based ordering system — In less than a year, over 90% of customers chose to use the web-based system I created
  • Writing a “For Dummies” book — Researched and wrote over half of “Developing eBay Business Tools For Dummies“, a beginners guide to API connectivity for eBay, PayPal, FedEx, and UPS.
  • Completely rebranded a confused, aging company — Within months, salespeople were jumping for joy over the new materials and focus on a single consistent message
  • Building online shipping software service ShipperTools.com — Designed, developed, and implemented ShipperTools, recommended in a bunch of online selling books
  • Running operations for three retail stores while the owners sought outside financing — Launched their first online marketing and promotion tools with e-coupons still in use 5 years later

Find your ideal clients then take amazing care of them

I have had the pleasure of working as an independent consultant for almost a year now, having left a job with The Grabill Cabinet Company as Marketing and IT Director. Helping clients with web-based app development and supporting marketing agencies with their site build-outs has been a great experience. In addition to my other business endeavors, the last year has reinforced one of the key lessons learned:

Ideal clients

Whenever possible, find your ideal clients and take amazing care of them. For me, I have two clients who fit that category. They are ideal clients in every sense of the term:

  • I do my very best work when working with them
  • Their personality and corporate culture match mine
  • Each of us leaves meetings feeling excited and energized
  • We value what each of us brings to the relationship
  • Both of our organizations are better off together than apart
  • All our interactions feel effortless, built on a lot of trust
  • We can be really honest with one another

BookyourselfsolidIt’s not a new idea, and certainly not something I came up with. A number of authors and sharp businesspeople understand that we do our best work when partnering with clients (and fellow employees) who are a good fit. Michael Port calls it the “Velvet Rope Policy” in Book Yourself Solid. 37Signals puts it this way, “These clients are hard to find, so when we get them we treat them well.”

Treat them like royalty

The critical thing is to take the best care of these clients once you find them. They are difficult to discover and deserve your best. These clients will draw out your best and will refer you to others more often.

When the rubber meets the road, I bend over backwards for my ideal clients and delight in every moment. When an emergency came up that required a last-minute trip 4 hours into Michigan, I was glad to go. When adding a bit of extra work to a project scope delivers a significantly better product, I do it at no charge.

I take every opportunity to thank them for their business, both verbally, in writing, and my doing something special for them. As an example, my wife and I had a tremendously enjoyable evening out at a very nice restaurant with a client and his wife. Because these clients are such a good fit, one doesn’t have to maintain a sterile separation between work and family.

At the end of the day, my ideal clients love doing business with me, and I feel the same about them.

Create a gracious exit for the rest

Look at the people you do work for. Which ones energize and excite you? Care for them and find more like them. And, the clients who constantly frustrate and drain you of your creativity? Take care of them, too. But look for opportunities to find someone else who they might be ideal for, then let them go.

That’s not just talk. Just today, I began that process with a client, looking out for what was best for them, even though it meant I would get less work from them. With the challenging environment we all find ourselves in, that’s harder than ever to do. It can be painful, but in the long run, very worthwhile.

Balancing work and family life when you’re the boss

As a self-employed developer and consultant, I continually seek to refine my business methodologies, toolkit, and skills. That passion for constant improvement extends to my relationship with my family. Maintaining a healthy balance between the work that I love and the family I treasure represents an exciting challenge that requires regular evaluation and review. I vigorously protect my family time with strict limits on my work hours and try to give my full attention to the family when away from work.

Making hay…

If you have ever been self-employed, you know that there are seasons when you have to work above and beyond. As the saying goes, “Make hay while the sun is shining.” That’s especially true for me right now as I look to work ahead so that I can take some time off for the imminent birth of our third little girl and respect several deadlines set with my clients.

So now that I’m working most evenings and getting less sleep, the question that I wrestle with is, “How do I keep my family energized while I get through this challenging season?” I have found one couple critical discipline that has helped immensely:

Daddy-daughter dates

2009-10 Oldest daughter at Bob EvansI find that getting special time with my girls (who are 2 yrs and 3 1/2 yrs old) makes all the difference to them. A little time where Dad gives them his undivided attention goes a long way. As a favor to my wife to let her sleep in, I started a “daddy-daughter date” tradition. Little did I know that this would become one of the highlights of my week.

Every Saturday, my girls know that when they wake up, they’ll be going out with Dad. I get them dressed as quietly as possible and we sneak out of the house (pleased to know that my wife is getting some much needed sleep). We pick somewhere for breakfast. Most of the time, I go with something like Panera. Sometimes we do Bob Evans or the girls will convince me to do McD or Burger King (they love the play land).

Afterwards, we find somewhere to go together. Their favorite is one of the parks or jungle gyms, although even a trip through target works great. We usually return home around 10 or 11a to find Mom refreshed and excited to hand out as a family. She feels appreciated and supported and I can really relate to how much work it is for her to have them all week long while I’m away at work.

2009-10 Youngest daughter at Bob EvansThere are so many benefits that I could hardly name them all, but here’s a few:

  • Dedicated time with your kids is incredibly important
  • You get extra practice dressing them and handling any surprises, making you a bigger help later when your spouse needs a hand
  • Your kids will learn (very fast) how to behave appropriately in public
  • Seeing you do something kind for your spouse is good for your kids
  • You will enjoy the time to talk with them and appreciate their company

Learning from the masters of business and user experience

The web offers your potential clients a glut of options when it comes to selecting who to buy a product or service from. It seems that most businesses choose one of two roads:

  • Focusing Outside: Focusing on what their customer needs while striving for excellence. Looking at best practices and always seeing opportunities to learn.
  • Looking Inside: Deciding what the business wants, then looking for customers who will accept doing operating on their terms. They see little value in constant improvement and assume that they already know all they need to.

While the first perspective seems to be in the minority, there’s a growing renaissance of small (and large) businesses taking up the call to delight the customer.

While it may not be the easiest a client-focused perspective is good for the soul and makes for a more fulfilling workday. I firmly believe in creating relationships with clients who will come back again and again. The old-school mentality of “sell everyone once” makes me cringe.

Practitioners

It’s not about having good ideas. Half the business books seem to be written by a one-hit wonder or someone with a really great sounding idea. Forget those and focus on soaking your mind with the thoughts of those who do it:

37 Signals

37signals Logo

Their blog, Signal vs Noise, offers a steady stream of solid advice and hard-earned experience from the software service industry. They are stubbornly particular about not pleasing everyone, yet carefully crafting every one of their products to delight those who fit their products.

Signal vs Noise Blog

Creative Good

good experience logo

Mark Hurst and his team have been evangelizing for putting customer experience first for more than a decade. Their time-tested insight cut against much of mainstream “wisdom” while having a surprising authenticity. They walk the talk.

I especially appreciate their newsletter which offers concrete examples and input on why experience is so critical.

Good Experience Blog

Zingerman’s

guide to giving great serviceA deli turned customer care/service powerhouse. Their simple perspective and brilliant execution (always the hard part) gives them tremendous credibility when it comes to customer happiness. No environment is harder than a retail store (especially food-related, I’ve been there).

Having visited one of their stores during a customer care research field trip, I can definitely say that their system and methodology is impressive.

Customer care and training arm of Zingerman’s: ZingTrain

Zingerman’s Guide to Giving Great Service

Get updates in your inbox

Enter your email address: