λ Tony's Blog λ

Assessing and being held responsible for the cost of bad decisions

Posted on March 30, 2009

I was recently working on a software project where the client would consult one organisation then that organisation would consult through to my organisation and eventually to me. Unfortunately, the organisation with direct contact to the client does not have very much skill in understanding computer programming problems, the notion of software reusability and decomposition and generally advising the client in such a way to ensure that their interests and expectations are met. This is unfortunate, but also incredibly common (dare I say it, so-called “enterprise” programmers).

A consequence of this debacle is that the software project is highly unlikely to meet the client’s expectation at all or in a timely fashion. Furthermore, I am likely to be asked to accept responsibility for this failure. This is despite my insistence that “using Scala and functional programming is not a panacea, especially when foolish demands are made of me” and various other protests of varying nature.

I used to have to deal with this kind of ineptitude when I was at IBM and I had some very rigorous methods for eschewing the responsibility for poor decisions by those who (I grit my teeth, but it must be said) are incompetent-but-unaware-of-it, while still achieving what was required of me. Such opaqueness does not exist in this case and I’d prefer to produce a useful and timely solution for the client with skilled consulting and the advanced programming techniques that are available.

But I can’t and I’ll be paying the price in the end.

How do others manage this scenario?