The Down-Sides of Unmanaged Development

Some time ago I wrote about the joys of working for my new employer, in a low overhead environment. I think I can now say with some certainty that this has become a confused and un-managed environment. We’ve grown quite some way since I wrote that entry, and this has been a substantial contributor to the situation.

The way that I summarise the last few months goes something like this (some of this is speculation on my part):

  1. Staff are taken on because it seems like there is a lot more work than can be handled by n people;
  2. The monthly invoice to the client rises rapidly, at a time when most of us are still very-much learning about them and the system – and even though new staff may not be being billed at 100% of their ‘timesheet-time’, the increased invoice size proves a shock to the client;
  3. The client starts to wonder what exactly it is we’ve been doing to justify this increased bill, and respond by arguing more about the invoice and wanting line-by-line accountability (which at that time, we do not have a thorough approach to time-keeping to provide);
  4. Also, the client wonders what is it that they’ve been asking for – is it worth the money – is there an estimate for it, and so on, and end up setting up internal teams and charging to conceptually separate departments within the business. Unfortunately, they are not really set up for this yet, and we do not have a long-term project list from which we have provided estimates, so the work that is actually authorised for us to do begins to dwindle;
  5. And all the above is trumped by the client’s head-honcho rapidly changing his mind about what should be done, when, and how. A classic example would be the day where suddenly a super-urgent need arises for a new facility or cross-check. A day or two later there will be super-urgent requirements for reports to find out how successful the prior change was, and perhaps within a few days or even hours, we’ll be backing out the initial change, or making yet more super-urgent changes to the initial change to tweak or entirely rewrite it.

I guess it’s fair to say that I think my company has had it’s own issues in this transition, but ultimately, the client has caused the waste of thousands of pounds (almost certainly tens of thousands) in development costs. So, despite all the extra planning that they have done in theory, these last few months have still seen several projects that have been almost completely developed before the client cancels it (perhaps intending to revive it later), reviving it (then cancelling again) before rescheduling again but this time with a totally revised specification that probably writes-off a large portion of the work we’ve already done.

Fortunately, I’ve mostly managed to avoid this on the projects that I have worked on, but had a nasty experience this last month as my scheduled project was changed, then as it neared completion another project was added to it (and with agreement, I put it on the same branch of code as they were closely linked), and before the month was out I was told the first project was now almost certainly going to be superseded by work to be done in February, but as it was now so wrapped-up with the latest piece of work I was doing, we’re pretty much committed to having to release it.

Wasted Time

No-one likes to waste their time, even if they’re paid for it, and it seems almost criminal to me that my time seems wasted. As long as the client pays the bills, it could be argued that it’s just par-for-the-course, but I feel like I put more into the job (in the hope of improving the architecture of the system) than I would have done had I known the project would have been thrown away. I mean, when you are working on a planned project, you expect the process and consequences to have been thought-through a little bit more than the ad-hoc ones (even if those super-urgent consequences of the little requirements I mentioned above would probably have all been predictable if more than 15 minutes had been spent thinking-through the request).

I could not release my project today for example, as my release got trumped by another which had super-urgently been being developed for the last month or two and suddenly needed to be released today. I’d be lying if I neglected to mention that the test phase of my project had also thrown up some issues that probably indicate that some key people didn’t read my minimal spec / estimate for the project either. Still, I’m sure that I will get to do my release soon.

And There is Still Hope

Accepting that I’ve just been a little bit frustrated by the changing priorities, I still think that there is some good in this system, this employer, and this client.

We have a fantastic person from the client on-site who is really good at acting as an interface between the two companies, and also amazing at giving us feedback. For all the inevitable faults that come from a system that has grown and changed so much, it is still not so big, and certainly not so polished, that some really important changes can still be made with a relatively small amount of effort. And all that ‘unmanaged’ business? Well, it means that we can still occasionally take a risk and make a quick change that we think will be helpful, show it to our client-liaison, and sometimes we are thrilled to hear a squeal of delight as the idea clearly fulfils a need.

In short, on occasion we feel really, really, valued.

Leave a Reply

Your email address will not be published. Required fields are marked *