Handling a Resource Crunch: A Lesson Learned the Hard Way

The first Friday of every month is always an interesting day for me. I review all of the timesheets and invoices for the previous month, approve the payroll, initiate wire transfers to pay offshore vendors, and get a clear view of how business went during the previous month. I’ll also see how things are shaping up for the following month and look for ways to avoid any imminent problems or conflicts.

I was pleased to learn that both December and January will probably be record months for our offshore development group, with 100% increase in revenues over the same period last year. This is terrific news, but it’s not as easy as it seems. First, our resources are effectively at 100% allocation for the next 12 weeks. This is great for profit margins but also brings the risk of having to say ‘no’ to a client with an immediate need, or have clients waiting weeks for simple services. We’ve worked hard to gain our clients’ trust so either of these options is unattractive.

To make matters even harder, my wife and I spend January at our place in Southeast Asia and there’s almost no Internet (or even phone) connectivity there. This means that if something does go wrong after Christmas, my team might have to handle the details in my absence. I have lots of confidence in my team, but my lack of availability only adds to the risk of being over-extended.

And so, it appears that we’re facing that classic developer’s challenge: the resource crunch.

On the surface it sounds like an easy problem – a full plate of juicy client work, and just enough programmers to handle it. Experience tells us, though, that this scenario is risky and requires immediate attention. After all, what happens if just one of my developers gets sick? Worse, what if someone quits or needs to be fired? What if one of our top clients needs extra work done ASAP? What if the unexpected happens, as it always seems to do.

I’ve been in this situation too many times, and I know how easily things can get screwed up. Not this time, though, because I’m going to apply some of the simple lessons I’ve learned ‘the hard way’ over the years. Here’s the plan:

  1. Make a list of all clients that have jobs scheduled during the next 10 weeks (or are likely to require services during that time). Send each of them a personalized e-mail explaining that January will be a busy month with limited developer availability, and ask them to please schedule any work well in advance. This is the single most important thing– clients like transparency and will appreciate knowing that we’re going to have a busy month! This will also prevent them from being surprised if they request work and we ask them to wait 3 weeks for it, and is thus the most courteous approach. By planning our ‘busy month’ in advance, clients will still have the impression that we are organized and stable.
  2. Send an email to all project managers, developers, etc. and ask them to submit their final holiday schedules. With such limited resources, I want to know exactly who is going to be available, and when. I’ll also explain to everyone that we’re entering a crunch-time and everyone needs to be dedicated and flexible.
  3. Hold a meeting with the core project management and development leads to make sure they are clear on the priorities. For example, I know that client A is an old friend and is patient while client B is easily stressed out. So, I’ll instruct my team to prioritize client B if necessary, etc. I’ll also make sure that everyone has the right contact information for everyone else, and has all of the tools they need to perform well.
  4. In the end, it’s the employees that enable me to spend a month on a sunny beach each year, and they deserve to be rewarded. With this busy time comes record profits, so I’m offering a bonus of a fancy new iPod for everyone if we can reach Feb 1 without incident. It’s expensive, but worth every penny to have a reliable and skilled team.

Just a few years ago, I might have just ‘gone for it’ and maybe gotten through the season without any problems. Murphy’s law is in full effect, however, and I’ve been burned before. This time, I’m going to cover all my bases before I leave town by preparing my clients and team for tough (but profitable) season.

Wish me luck! Now it’s your turn – what kind of things do you do when you feel the ‘crunch-time’ coming up?

Replay

Category: business Time: 2006-12-11 Views: 1
Tags:

Related post

  • Learn Python the Hard Way #48 - lexicon exercise 2012-08-02

    I'm trying to get some feedback on my code for the lexicon exercise (#48) in Learn Python the Hard Way. I have only recently started learning Python and want to make sure I have my fundamentals down before progressing. I have some experience coding (

  • 'Learn projects the hard way': logfind project 2015-11-04

    I'm a new programmer, who has just finished his first small project. It's a sort of basic imitation of the grep command from Linux. I'm learning from projects the hard way. Here is the description of the project: The first project that we'll try is c

  • Where can I learn cryptography/cryptanalysis the hard way, without going to school ? Any good book? 2011-07-26

    I'm not so bad at mathematics: I know what are p-list and p-combinations, I know matrix algebra, I know what a XOR is, I know how to tell if number is a prime, etc: I'm not the programmer who hates math because he is bad at it, but I don't have a PhD

  • How can I manually assemble my own package "the hard way"? 2012-03-08

    I would like to know how to create my own .deb packages from the source of a program without the aid of a package manager or any other similar tool (in other words, doing it manually). How difficult is this? Do I need to create my own repository for

  • how to change the background image based on the node (the hard way) 2012-02-10

    I'm trying to change the background image of my site based on what node the user is viewing (not just what node type, but specifically what node). I have added an image field to my node type called background image. Basically, I'm trying to go into m

  • I removed Boot Camp the hard way, but then I got a Windows error anyway. Should I be concerned? 2015-09-30

    The short version: I was running Boot Camp on my Retina MacBook Pro, but I decided just recently to ditch it because I never use it and I'd like to reclaim the space. The official method of removing it with Boot Camp Assistant failed so I went the ha

  • How to manually transfer entire Whatsapp installation to another device (the hard way) 2016-07-05

    I'm using Whatsapp from a virtual machine since I lost my phone, and now need to transfer it to a new VM. The easy way would be to use the backup feature native to Whatsapp, but it is disabled since the VM is connected via Ethernet (and Android think

  • Need to learn the right way to use fonts colors on my site? 2012-03-13

    I want to learn web design to make good-looking websites. I have learned CSS, JavaScript, HTML quite well. But I need to be able to choose the right fonts, colors, backgrounds, images, etc. I want to learn typography and understand colors to apply CS

  • F#zzBuzz: Learning the easy way 2015-12-04

    So I made a quick programme in F# to do FizzBuzz, I'm trying to learn more languages, so I figured I'd do something functional for a change. (Haskell is also on the list.) FizzBuzz is pretty self-explanatory: every third value print Fizz, every fifth

  • Exercise 39 from 'Learn Ruby the Hard Way' - Not working 2016-01-29

    This is from exercise 39 from Learn Ruby The Hardway I am currently getting this error. /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': /home/lost/Dropbox/Ruby/Dict.rb:45: formal argument cannot be a constant (SyntaxError) def Dict.se

  • A Simple Unix Filter in Racket - Learning the Racket Way 2012-11-29

    I've written the following simple filter in Racket as my first Racket program and am wondering if I am writing it in an "idiomatic Racket style". #! /usr/bin/env racket #lang racket (require racket/cmdline) (define a-prolog-mode? (make-parameter

  • Exercise 11 in learn python the hard way 2016-01-28

    http://learnpythonthehardway.org/book/ex11.html 1 print "How old are you?", 2 age = raw_input() 3 print "How tall are you?", 4 height = raw_input() 5 print "How much do you weigh?", 6 weight = raw_input() 7 8 print "So,

  • throttling my own bittorrent traffic the hard way 2011-05-24

    I need to throttle in an almost binary way my bittorrent traffic. I have seen some posts on the subject on how to deal with nasty users - the answers are more targeted at how to make their life difficult than on the limitation itself. I read M0n0wall

  • Live photos the hard way 2015-10-12

    I've just got myself a shiny new iPhone 6s and as a photographer I want to make my own Live Photos with my DSLR. Is it possible to somehow combine a photograph and two video clips (one from before the shot and one after) into some file that'll be rec

  • Horizontal Database Partitioning the Hard Way 2016-01-20

    I am working with a database which has no built in function for horizontal partitioning. Since I'm dealing with very large data tables I need to partition in order to make things run smoothly so I decided to try to partition things 'manually' by whic

  • What's the best way to learn code if you are just starting out? 2011-10-25

    I'm just starting out with some articles and tutorials. I am looking for some guidance on which languages to start with and what is the best way to go about learning code, books, tutorials, classes. Which tutorials or books are best? Is it possible t

  • Learning the base for programming in C 2012-10-22

    it's been a while since I think about starting to programming in C and after that to learn programming in C# and I search a lot on google but couldn't find a good guide to start learning base programming in C .However I found that Eclipe integrates v

  • What resources will help me understand the data model for QC 10.0 in order to write my SQL queries? 2011-11-26

    I am a fresher in Quality Center 10.0 HP software testing tool. As per my understanding in order to generate reports from QC and to troubleshoot the scenarios, we need to write SQL queries in the QC back end database. In my case it is SQL db. I downl

  • When using MVC, what is the proper way to handle a view refresh when the model isn't ready? 2013-05-15

    I'm about to start building a game and am having trouble understanding the proper course of action when it's time to refresh the screen, but the model hasn't finished its calculations. I assume this isn't a huge problem for my little 2d platformer, b

iOS development

Android development

Python development

JAVA development

Development language

PHP development

Ruby development

search

Front-end development

Database

development tools

Open Platform

Javascript development

.NET development

cloud computing

server

Copyright (C) avrocks.com, All Rights Reserved.

processed in 2.468 (s). 13 q(s)