The project I was on has been unofficially cancelled because my boss worked it into a dead end. It is frustrating because a few weeks ago another company launched a not dissimilar product which appears to look and work quite well (certainly better than ours) for about 50% of the use cases ours handled. Although 50% sounds like a small feature set, theirs embodies the unix philosophy of “do one thing and do it well” and is therefore a useful product, whereas ours embodies “do everything and do it badly”, and is therefore not. I find this frustrating because the reason ours ended up in such a mess was my boss’s insistence on piling on complexity. Not only is the product virtually undevelopable because it’s too fragile (by design), but it’s also far too confusing to have any market appeal. i.e. even if we hired Jesus and he cleared up all the bugs and altered the laws of physics to make CPUs fast enough to run it with good performance* and we launched it, still no users would understand how to use the thing. Imagine a cross between Excel and a cryptic crossword and you’ve got the right idea of the mindset required.
In some ways this is no skin off my nose because I get paid the same amount either way, but it is irritating that we could have done something productive and instead my boss decided otherwise. In the world of guitar playing if you spam out a lot of notes that sound generally a bit uninteresting but it’s kind of fun to play them anyway, we call that wanking – it’s done for the pleasure of the player, not for the listener. This project was a lot like the intellectual version of that. Lots of self indulgent wanking. My boss has owned companies much of his life and seems to subconsciously think he’s smarter than everyone else; he would deny it but he micromanages his project managers in such a way that says he doesn’t think they can be trusted to do good jobs on their own and need him to oversee everything. He assumed he would just make it all work by virtue of being smarter than everyone else, which of course failed miserably, whereas a bunch of 20-something year old Californian hipsters with silly beards managed to do better.
So now I am on new things which basically amounts to nondescript forms apps for nondescript customers. Pretty banal stuff. We are using an internally developed framework for this, except I am being a bit generous by calling it ‘developed’. It turns out this is the first project to use it, and it works about as well as you’d expect (naturally I was lead to believe that there were many existing projects already using this framework and that it was mature and suitable for quick development of routine forms apps, err, nope). Oh joy. It uses a client side MVC framework with lots of third party libraries that don’t cleanly integrate, and a server side ORM and MVC framework. We seem to have figured out a solution that uses as much third party code as possible while making it as slow as possible to link everything up because we need so much glue code to stick together the disparate bits. The current project was scheduled to be a few weeks. So far we’ve been on it for 3-4 weeks and have written lots and lots of code but have not made a big dent in the requirements.
When I was at university, in the fluffy business class that I was for some reason required to take, they used to tell us repeatedly that software projects failed more often than not. As a slightly naive but competent programmer I used to regard this with scepticism because software is not really that hard, is it? Now I find it much easier to believe. Software is not hard after all, but the world is full of people who get passionate about things and make bad decisions.
The latest irritation is that I need to be at home one day next week so I emailed my boss (who was working from home) to let him know I would be working from home, and I got back a stroppy email telling me I should ask permission. It used to be the case that I was treated as a responsible adult with a small amount of freedom in this respect, so it’s both surprising and annoying that this appears to have changed. In fact, the reason I have thus far accepted a fairly unimpressive salary is because I perceived this freedom to have a value of its own, but I suppose like all things that aren’t contractually guaranteed, it does not have a stable existence. I did not ask permission because he is not so important that he can decide the scheduling of my life. Lesson learnt: next time I need to be at home for one of those rare events that occur because I occasionally have an existence outside of my job, I’ll just phone in sick instead. My boss has lost out twice here because, as I just said, being honest in future carries a risk of being inconvenienced, and secondly, I need to set up a new dev environment on my home PC which I was going to do over the weekend but now I’m more of the opinion I’ll keep work activities strictly within the hours I’m paid for them, so in all likelihood I won’t actually get any work done after all. Congratulations boss, you handled that one really well.
Anyway, the triviality of this is not lost on me. I have noticed that the salary figures in all the recruitment spam I get have been gradually increasing over the last few months. In 12 months, probably much less, I fully expect to be working somewhere else and my current boss will go from being a prominent figure to a historical irrelevance.
* Yes really, sometimes you can blame bad code for performance but when your spec says you need to be able to handle hundreds of thousands of pieces of information in an HTML document all at the same time, you’re kind of onto a loser from the start.