Skip to main content
 

Just Another Highly-Strung Prima Donna

10 min read

This is a story about arrogance...

Badge

I have spent huge chunks of my career helping the rich to get richer, not doing anything useful for society at all. I have suffered as a wage slave, working a bullshit meaningless job, doing nothing except making the world a worse place. I have been denied the pleasure of being a builder creating something real and tangible.

I'm very jealous of the engineers who get to work on useful projects - helping to feed, house and clothe the masses. I wish I was working on something more worthwhile.

The project I'm working on is quite simple really: ask a bunch of people a bunch of questions, and gather the answers so that they can be analysed. I suppose you could call it "big data" if you wanted to use an over-hyped phrase that's in vogue at the moment, but really it's just a big survey; an opinion poll.

I've developed software for nuclear submarines - that was my first full-time job. I've developed software for trains and busses. I've developed software for every school in a whole country. I've made computer games that were played by half a million people. The computer games were the hardest.

As an old-school programmer, I slaved away at my keyboard, creating the graphics, sound, music, and endlessly playtesting my games, to make them as good as possible before I released them to the general public. That was hard work.

But it was rewarding.

The challenge made it rewarding.

It was rewarding because it was difficult.

Creating an online survey is not difficult. I expect you could do one in a few minutes, using something like SurveyMonkey.

So, how do you make your day job interesting if the project is not challenging? Well, there's a lot of challenge in getting anything done in a big organisation. It's a million times harder to do anything when you're inside a big organisation, and things go painfully slowly. The interesting part is in trying to build anything at all, in the first place, and in trying not to build something that sucks, just because big organisation software always really sucks.

One programmer can make a game in one month. Two programmers can make a game in three months. Ten programmers can make a game in two years. And so on. And so on.

I'm not saying my colleagues aren't any good. I'm just saying that trying to learn computer programming as your day job, working for a big organisation, is pretty much impossible. The only way that anybody ever became a good programmer was by first being allowed to work on a whole self-contained project themselves, and having to support and maintain the code; having to deal with angry users reporting bugs; having to be up in the middle of the night figuring out a mess that they created. You can't learn that stuff if you're just a junior member of a big team.

It does make sense to break a system up into components which are then assembled to create the finished product. It does.

What does not make sense is dividing up a piece of work which could be easily accomplished by a single developer. It does not make sense to have 8, 10 or even 12 programmers all trying to work on the same piece of code. It is not fast. It is not efficient. It does not produce a good end result.

However, would I like to have to support and maintain my code after the project is live, on my own?

No.

Of course not.

Whenever I have finished something which was big and complicated, and hard work to complete, then I never want to see it ever again. However, if I'm the person who created all the code, then I'm the only one who knows how anything works, and it's a very difficult steep learning curve for any poor unfortunate who has to come after me to unpick my work.

In this regard, I suppose it's necessary to have a bunch of people, so that the 'hero' code warrior doesn't saunter off into the distance, leaving some other poor person to carry the can.

So many times in my career I have inherited somebody else's mess.

Which is why the pleasure and professional pride I derive from my work at the moment, is in the effort I put into making a system which is simple and easy to maintain, and easy to support. There's a temptation as a good developer, to be really smart and do things in ways which seem very elegant and beautiful to the trained eye of a highly skilled engineer, but are completely impenetrable to your average journeyman junior programmer, just learning the ropes. I take huge pride in creating deceptive simplicity. Yes, it's great to show off how smart you are by creating something complicated, but it's so much harder to create something that looks simple.

I am intolerant of the incompetence of a highly paid consultant who I have to suffer. "Why would you put that there?" "Why would you do it like that?" "Why didn't you read that comment?" "Why are you making such a mess of everything?" "Why have you introduced all this unnecessary complexity?" are questions I want to yell at my incompetent colleague all the time.

My junior colleagues are, well, junior. I can't get mad at people who are just learning. I have patience for learners. I spend a lot of time coaching and mentoring, helping my junior colleagues to learn and develop.

My graduate colleagues are stupendous. They have amazing ideas. They produce great work. They are smart and a pleasure to work with.

Why oh why oh why do I have to work with somebody who doesn't deserve the massive consultancy fee that they charge? It angers me that they are lagging behind the graduates and dragging the project into the dirt; making a complete pigs ear of everthing. It would be so much better if they weren't on the team, because they are so slow, and what they do produce all has to be re-done, so it creates a huge amount of extra work for me. Their work is riddled with bugs and defects. Their work is shoddy, so their contribution is not welcome: it's counter-productive.

Of course, I shouldn't rip into colleagues on a public platform. But, they ruin my day and undermine all my hard work, threatening the success of the project, so why the hell shouldn't I let rip? They're costing the organisation a shittonne of money, which is a complete waste of money in my opinion.

Anyway, I often think "would it be better if everybody just stepped aside and watched me work?". I think "would it be better if I designed and built the entire system, on my own?".

No.

No it would not be better.

I would finish the project, but I wouldn't want to support it. I wouldn't want to maintain my own code. I wouldn't want to ever look at the code ever again. I wouldn't want anything to do with my code or the project. That's not fair on the poor sods who would have to support and maintain my code.

It's also not fair for just one person to have all the enjoyment of creating an entire system, and then to ride off into the sunset believing that it's a job well done, when software is considered to be an asset - all the code will be preserved and future development teams will be forced into attempting to re-use it, when really it should be thrown away. Decrepit old systems, where all the original developers have long since left the company, should never be resurrected, but they always are. Idiot management always wants to adapt a system for a purpose it was never designed for, and that nightmare always falls on some poor unsuspecting underpaid junior programmers, who will have a horrible life, being forced to work with somebody else's code and never being allowed to create their own system.

Sure, the arrogant part of me wants the glory - the heroics - of creating some massive complex system as a one-man team. I don't want the faff and the hassle of having asshat overpaid idiot incompetent consultants, messing up my stuff. I don't want to be slowed down by people who aren't as experienced and quick.

But, I know it's better for everyone if we do things the "modern" way.

I wish I had been born earlier, so that I could have been one of those programming gods who created an entire video game, but I suppose I had that glory. The first iPhone was my opportunity to create retro games, in just the same way that the early video game pioneers did - a bedroom hacker. I grabbed that opportunity and I loved it, except I also learned that I never want to ever touch my code again when I'm finished - I want to release something and then forget about it.

In this era of the web, people expect products to be maintained. Software no longer ships on cartridges, floppy disks or CDs. Software can be updated via the internet. Software is delivered via browsers. Software is constantly being updated by the developers, like websites are constantly updated, so software development had to change to reflect this. Software development is now a team sport, but I came from an era when a prima donna like me could do everything on their own.

I fear this essay has revealed an unpleasant side of my character. I fear that I've crossed lines that I should not have done. I fear that my arrogance is on display very badly.

Still, I had to share this. It's my habit to share things that are bothering me, and/or that I feel very strongly about.

It's a difficult time, because there's a lot of pressure and stress. I feel like yelling "shut up and stand back" and "hold my beer" while I roll up my sleeves and get things done. When I come under extreme pressure and things are going wrong, I retreat into my comfort zone: working in isolation. Nobody was with me when I learned how to debug. Nobody was with me when I figured out how to solve complex technical issues. I had to figure those things out on my own. Nobody comes to me with the answers: I have to figure them out, and I do that on my own in isolation. When I get stressed, the last thing I want is any "team" - the team adds no value in those difficult situations where there's a dreadful gremlin in the system, and it does take some one-man heroics to find and fix the problem.

I've written vastly more than I intended to, because I'm very highly-strung at the moment; the pressure is immense; the deadline is imminent.

I can hear colleagues' angry voices in my head:

"You're not the only one who's worked hard on this"

"You're not the only one who cares"

"You're not the only one who's made a valuable contribution"

"You're not as good as you think you are"

"You're arrogant"

"You're full of yourself"

"You think you're so great, and everybody else is inferior"

"You're not a team player"

I know I would have had a breakdown a long time ago if it wasn't for the team. I know that the project would not have been as much fun if it hadn't been a team effort. I know that it doesn't end well when I reach the finish line and collapse; that it's not a good way to finish a project, when there are ongoing requirements for support and maintenance. I know that arrogance and delusions of grandeur are a problem for me.

Anyway, this is how I've spent my weekend: worrying about work.

 

Tags:

 

Managing the Managers

4 min read

This is a story about work...

Devops

Building software is no longer about programming. Programming is something that I learned as a child. Programming is quite literally child's play to me. Modern software development involves very little programming. Modern software development is all about delivering massive projects, with massive teams, in massive organisations, and none of this has anything to do with programming. Remarkably little programming gets done by programmers.

I would be surprised if the average number of lines of code written by a programmer in a big organisation was more than a handful a day. In fact, I picked a colleague - a programmer - at random and looked at how many lines of code they've written in the past year - an average of 8 lines per day. That's not a lot of programming.

So what do programmers do all day if they're not writing code? Well, most of them are sitting around scratching their heads, wondering where the problem is in millions of lines of code that they didn't write.

Why are programmers looking at other people's code, trying to find the problems?

Good question.

There are people out there who write lots of code, but most of them are software architects and devops engineers: these are developers. Developers don't just write code though. Developers create systems. Developers know how all the different moving parts fit together to create an entire system. Developers can design, build and assemble the components of gigantic software projects, into working systems. Sure, some of it involves programming, but none of it requires writing programs. Programs are for children. Children write programs. Programming is child's play. Developing software systems is grown-up work, done by developers.

There's a general belief that a programmer is an interchangeable commodity. If you don't like one programmer, fire them and hire another one who "speaks" the same language. Of course, this is idiotic, because programmers in big organisations write 10 lines of code or fewer per day. Most of what is useful and valuable is the specific knowledge which relates to an organisation and its software systems, which only the experienced team members know. Throwing more programmers at a problem makes things worse, not better, because they don't have a clue about anything, except how to read code... millions and millions of lines of code which they didn't write. There's nothing worse than somebody else's code.

The diagram above shows how software is shipped these days. If we were back in the 1980s then the diagram would show copies of a diskette being made and physically distributed, so that people could install it onto their PCs themselves. How software goes from a programmer's computer to your computer is kinda important. How do you think it gets there? Well, there's a lot of magic behind the scenes. The diagram shows the magic trick, but it's so incomprehensibly complex that it remains as good as magic, even though I showed you how the magic trick is done. This is just one tiny part of being a developer: understanding how to actually get software onto people's laptops, tablets and smartphones.

There are a million things a developer knows. They know about the cloud. They know about databases and data. They know about servers. They know about security. They know about performance. All of these subjects are vast. There are experts in every one of those subjects, and there are myriad experts in the specifics of each field. There is an incomprehensibly mountainous amount that a developer needs to know.

So, managers, stuff your spreadsheets up your arse. You have no skills, experience or knowledge which is relevant or useful in the field of software development. You are allowed to exist because you are a shit umbrella, nothing more. You are doing your job if you stop anybody from annoying the developers and programmers, allowing them to do their jobs, and you are being insufferably irritating if you attempt to intervene in the business of software, because software is hard.

Yes, software is really really really hard. It's harder than Excel pivot table macros, or whatever the hardest thing you know is. It's waaaay harder than that, managers.

So, butt out.

Shut up.

Let us do our jobs.

Engineers left to their own devices will produce wonderful things. All the things we take for granted in the modern world are a result of engineers being left alone to get on with building cool shit. None of the wonderful things would have come into existence if the engineers were bothered by some know-noting busybody bloody managers, who tried to interfere.

 

Tags:

 

New iPhone is Underwhelming

4 min read

This is a story about obsolescence...

iPhone

I wasn't excited about the launch of the new iPhone, but I ended up getting one. My old iPhone 6 had served me well for years, but it was annoyingly short of free space, which meant continuously deleting stuff - a time consuming pointless exercise. The battery life was terrible, but I had managed to replace the battery quite inexpensively myself, so that wasn't an excuse for getting a new iPhone. The back was slightly scratched, but the screen was pretty good. The mute button no longer worked and the charging port was unreliable, only working at certain angles, which clinched the decision to upgrade.

I expected to be more pleased with the new iPhone.

But, I just put it in my pocket and carried on like it was no big deal.

Sure, the camera is better, the screen is better. Sure it's a bit more responsive; less laggy. However, there was virtually zero impact - no wow factor whatsoever.

When Apple introduced the fingerprint reader that was a big deal, because it saved having to type the unlock code every time, which is a vast improvement of usability. Given that I unlock my phone and do something with it 50 times a day, on average, you can imagine that it was a huge saving, not having to type my PIN all those times.

Since then, there hasn't been a 'killer' feature.

I'm not that bothered about having a better camera, because I have a good camera anyway with a much better lens and sensor than any smartphone could ever have. There simply isn't the room in a smartphone to include a large lens and sensor, so the image quality is always going to be very inferior to a proper camera.

Being able to unlock my phone with my face makes no difference to me versus being able to do it with my fingerprint. Face ID is not an improvement. Yes, biometric security is important to me, but I don't care whether it's fingerprint or facial recognition.

I don't play games on my phone or use anything which requires a powerful processor or lots of memory. I just browse the web, send and receive emails and messages, scroll through Facebook and Twitter, and access my banking apps. I could have stayed with my iPhone 6 and been perfectly OK, to be honest.

A friend who always gets the new iPhone, even when it's a minor upgrade, such as from the X to the XS, justifies his upgrades because of the frequency with which he uses his phone. This argument would also support my desire to upgrade too, given that I'm a heavy smartphone user and I have the disposable income, but it frankly depressed me that I spent the price of a reliable second-hand car on a gadget upgrade I really didn't need.

It's a year since I upgraded, and the screen on my iPhone XS is now scratched to pieces. Apparently the glass is very shatter resistant, but it's very prone to scratches. It's really disappointing to have bought a brand new cutting-edge gadget, and to find that it's not durable in everyday use situations. I have not abused my iPhone in any way. The scratches are all from simply being in my pocket, or on tabletops.

I haven't bought the new iPhone. I am not going to get the new new iPhone, because there's no way I can justify the expense for such a minor improvement.

It's kind of sad that I'll never re-experience that wonderful moment I got my first iPhone. That first iPhone was a real game-changer. That first iPhone was so transformative for human-computer interactions. I would be lost without having a smartphone and mobile internet available at all times. I - and so many others - have become dependent on the various communication apps, plus maps, taxis, banking and all the other things, which are so convenient to access through smartphones. My addiction to iPhone games was exhausted when I designed, built and released some for sale in the App Store, but I know that the impulse to check my various apps for notifications and new content is deeply engrained... perhaps an addiction, except it's one which does me no harm.

It must surely be time for a technology innovation which will inspire me again, like the original iPhone did.

 

Tags:

 

Team Player

4 min read

This is a story about leadership...

Design

As well as productivity - how much an individual produces - there is another contribution to a team which is harder to value. We have all suffered the micromanagers who are an annoyance and a distraction, slowing us down and stopping us from doing our jobs, but there are also people who do provide some useful function in a team, beyond their basic labour.

There are some people who aren't particularly interested in the big picture, and are very happy to go in the same direction as anybody with a big mouth and a certain overconfidence, who seems to have a vague idea of what direction everyone should be going. There are some people who are happier, more secure and more motivated if they're in a team with individuals who appear confident and knowledgeable. There is a great deal of value in having some authority figures in a team, to turn to in times of uncertainty in doubt, provided those people provide reasonable answers and can be trusted to be correct most of the time.

We might assume that there would be a power struggle, if two people tried to lead a team, but clearly this is untrue, because most of us have many masters. In a family, there are two parents, plus any other busybodies who decide to assert themselves, believing they have a valid opinion on the matter of childrearing. In most office situations, there are usually several people who have some degree of authority over us, who provide us with our objectives and otherwise place demands on our time. Generally speaking, we muddle along, even when we receive conflicting instructions from our higher authorities. Further, leaders will co-operate to achieve their goals - this is much more common than constant conflict, especially in organisations, where an argumentative person is not welcome.

I wrote yesterday about self doubt I had about whether I was suffering from delusions of grandeur, and I considered only my productive contribution as a builder - a labourer - as evidence that I'm a useful member of the big project I'm working on. Having given the matter further thought, I decided that there is also a lot of value in the role I play as a knowledgeable authority on a vast amount of subject matter. Although again it's anecdotal evidence, because it would be an insult to my colleagues to actually gather the hard data, I do seem to notice a reasonable footfall at my desk, of colleagues who are seeking my opinion or assistance.

Why do I fret about this stuff?

I thought a lot about why I'm so obsessed with my contribution to a massive project, and the answer is fairly straightforward: it's vindication. After many years where I felt sick and useless, that my skills, experience and abilities had rotted and withered, and that I was incapable of maintaining sustained and stable steady reliable productivity, my self-esteem was destroyed and I was full of self-doubt.

need this big achievement. I need this feather in my cap. I need to prove to myself and the world that I can pull off an impressive piece of work and that I'm still highly capable, competent and employable; that I'm worth the money; that I have value.

Whether it was homelessness, financial problems or mental health problems, I have felt very close to ruin and destruction for many years, and I started to believe that I truly was useless, and that I deserved to be ejected from society, to end up trampled in the gutter; kicked, spat on and tossed in the trash.

Having worked very hard for a long time on an extremely complicated project, and played a valuable role, this potentially vindicates my belief that I'm still a competent, capable and valuable person to have as part of a team, delivering gigantic software systems for huge organisations. I needed this proof that I don't deserve to be thrown into the dustbin, like a piece of human trash. I needed some concrete proof that those who wrote me off and left me for dead were wrong to do that.

That's why I work so hard and that's why it's important to me to believe that I'm making an exceptional contribution.

I absolutely do not want to rob my colleagues of their share of the glory or deny the value of their contribution. I completely recognise that it's been a huge team effort, and that I'm just one tiny cog in a big complicated machine. However, I do need to feel like I did something pretty damn good, for a guy who nearly died 2 years ago.

 

Tags:

 

Work Colleague Reads My Blog

7 min read

This is a story about being a team player...

Pokemon

A week ago I started writing, and by the time I had finished I was very angry - I had worked myself up into a rage. A close friend wrote to me immediately and said that I should reconsider what I wrote. Then, my work colleague who reads my blog replied to me. This was the moment I had been dreading: exposing myself as a lunatic to my colleagues. The mask had slipped.

My angry tirade was not directed at my workmates or management. My angry words were nothing to do with my workplace or the organisation I'm involved with, but sometimes I do write about the project I'm working on.

I suffer with imposter syndrome a great deal.

I feel very proud that I've made, what I feel is a significant contribution to a major project, but I'm also paranoid that I'm not that much of a big deal. I am, after all, just one member of a very big team. The project is costing hundreds of millions of pounds, and I'm just tinkering with one tiny part of it... and I'm just one tiny little insignificant speck. I need to curtail my delusions of grandeur, I think.

I attempt to use hard numbers to give myself some perspective: how many pieces of work have I played a significant role in delivering, versus my colleagues? How many technical obstacles have I managed to overcome? How many times have I unblocked team members and found solutions to problems? How many times have I saved the team from missing its deadlines?

Of course, I don't know the precise answers to all those questions, and to even gather the data seems to diminish the efforts of my team-mates. How arrogant of me to assume that I'm the driving force behind the success of the team I'm just one small part of. How grandiose. How awful.

I'm mindful that I don't even have the head honcho job title; the big cheese. If things screw up then I am comfortable in the knowledge that it wasn't my ultimate responsibility. There are colleagues who have the heavy burden of responsibility, which must surely slow them down and cause them to be hesitant, lest they tarnish their professional reputation. It's easy for me, mucking about doing whatever the hell I want, without a care in the world.

There is adequate evidence for my own success, productivity and achievements to go to my head, swelling my ego, without being completely delusional and unjustifiably arrogant. It would not be true to say that my contribution is ordinary; average.

My colleague has counselled me on a couple of occasions to not become obsessed with work and the project. I think that's great advice, and particularly meaningful and relevant to me, having burnt out and become sick due to overwork in the past. I know that I've got a completer-finisher personality, so I will definitely make it to the finishing line, but at great cost to my mental and physical health. I spend my evenings and weekends attempting to switch off, to have some work/life balance, but I struggle. My thoughts always gravitate back towards the project.

My thoughts often wander into the territory of wondering what my colleague thinks of me, particularly in regard to my arrogance and loathsome view that I'm some kind of hot-shot hero. I wonder how much I'm coming across as a terrible team player, entirely fixated on my own glory and somewhat denigrating the good work of my colleagues.

In reply to these doubts and worries, I have an anecdote which seems appropriate. I threw away part of the system, believing that it had been implemented in an unnecessarily complex manner. I was very pleased with myself for immensely simplifying the system, and the hard numbers were fantastic, in terms of performance improvement: a process which took several days was now running in 20 minutes. Then I started to think about the future, as the original system designers must have done, and I realised that what I had done would never work in a couple of years time: it was great for now - a huge improvement - but it was no good at all for the known future requirements. I started to think long and hard about how I would make the system support the anticipated future requirement, and I arrived back at where I had started, with a system which looked just like the original one I had thrown away. I had followed the same thinking and arrived at the same conclusion as my colleagues, and had perhaps wasted a lot of time and money making mistakes which I didn't need to make, because somebody had already thought everything through.

There is a huge temptation to believe that one could do a better job than those who have gone before, given that things often look easy and obvious to an outside observer. In my experience, once you do get the opportunity to try and improve things or implement your own ideas, then you discover all the many pitfalls which caused those who went before to have to compromise and kludge, leading to systems which look, to the outside observer, as though they could be easily improved.

It's almost an insult to my colleagues that I ripped up their work and started again with a blank piece of paper, except that's really not what happened. The new incarnation of the system is entirely based on the old one, driven by reverse-engineering. I didn't start from the original requirements and then attempt to build something brand new. I started from the requirement to make the system faster, easier to maintain and able to support new requirements, and I cherry-picked the bits that I liked - I whittled away all the 'noise' but kept the backbone. I kept the old system, but I got rid of all the layers of dust that it was caked in; I got rid of the rust and grime which had made it rather difficult to see the core functionality. It's the same system - I just stole the fundamental parts and put them into shiny new clothes. I hope my colleagues can see that their work lives on. I know that I would take it personally if I felt that something I was proud of was being thoughtlessly cast aside by a mindless vandal.

I don't know if my colleagues will ever forgive me for being such an arrogant sh1t. I don't know when my day of reckoning with reality will come, and I will come crashing down from my grandiose delusional state, and be forced to realise that I'm just a teeny tiny cog in a very big and complicated machine, and that my contribution is at best negligible. I don't know if I'll be able to avoid further insulting, diminishing and demeaning the work of my colleagues; upsetting them by suggesting that what I've done is good and what they'd done was somehow flawed or defective... insulting their legacy and insulting their hard work.

Perhaps I'm just not a team player.

 

Tags:

 

Decompression

3 min read

This is a story about deadlines...

Thames

I used to spend my lunchtimes eating my sandwiches by The River Thames. I can remember vividly how miserably depressed I was; how bad my suicidal impulses were. I was desperately bored and the project I was working on was doomed to failure from the very beginning, due to its tiny budget and unrealistic deadline.

Presently, I am working on a very exciting project. Well, it's not very exciting to most people, but I find it very exciting. I am much happier, because the current project has a chance of being successful, although the deadline was fairly unrealistic.

I've worked hard for a sustained period of time and I'm quite tired, although it did help having a holiday a month ago. I've worked hard but the stress levels have not been too bad. I've worked hard but I've felt productive, and I'm happiest when I'm busy, so that's fine.

It occurred to me that I will feel quite lost when the project ends. I made it my personal mission to deal with some fairly fundamental problems with the system I was working on, which were threatening to cause issues with the project. The solution required somebody to roll their sleeves up and do something drastic, which was a risk: nobody ever got fired for plodding along doing the same old thing, not rocking the boat. If I had been involved in a significant expenditure of time and effort which had subsequently turned out to be a bad decision and a failure, I imagine that I would have been shown the door quite swiftly.

My gamble paid off, and now things have progressed on the project many times more quickly than if we were hamstrung with the limitations of the old system, plus I feel very proud and motivated by my sense of ownership; my contribution to the beating heart of the project.

Of course, it's not my circus; not my monkeys. I will need to step away from everything in a couple of months. In the blink of an eye I will leave the organisation - services no longer required.

It's Friday and it's been a very intense week at work. I've produced a lot. I have been multitasking and context-switching an incredible amount. It's been exhausting but it's been rewarding.

Switching out of "work mode" and into weekend relaxation mode is a little difficult. Switching off is hard. I was tempted to work late, but I knew that would be unhealthy. Slow and steady wins the race, I try to tell myself.

So, I'm spending my weekend trying to decompress.

 

Tags:

 

Thwarted

3 min read

This is a story about middle men...

Train toilet

I was out schmoozing the client, celebrating a job well done; an almost but not-quite completed project and successful delivery. I was out doing what I do day in and day out, which is to keep my game head on and to be laser-guided towards the goal, for my client.

My client is a middle man, so I suppose I am not really client-centric, but if I please the end client then my client must surely be pleased, because if their client is happy then their contractual obligations are being fulfilled and they are likely to get repeat business. What's good for the end client - who I spend 40 hours a week with - is ultimately good for my client, who subcontracts their work to me.

I get the impression that I am being thwarted.

My extensive experience in my industry tells me that I'm being screwed over.

My intuition tells me that I am about to be shafted.

In short, I have busted my balls to get a particular project back on track, and to keep the whole team working at a high level of productivity in order to meet some ambitious deadlines. As the deadline looms and confidence mounts that we are going to deliver on time, I always seem to get screwed. If I allow things to slip and projects to struggle, then of course my services are retained, because it is more clear that I'm an essential member of the team, but if I help things to succeed and go well, then the part I play is undervalued and f**king idiots try to rip me off; to screw me over. That's what's happening at the moment.

You'd have thought that the reward for playing a pivotal role in making an important project into a big success, would be to be treated as somewhat indispensable; to be valued. In fact, the opposite is true - the better a project is run, and the more successful you are at making things look easy, then the less you will be valued, to the point of being valued lower than those people who would flounder and screw everything up.

I feel quite certain that all my hard work will be for naught, and that I will get neither the satisfaction of seeing the result of all my hard work reach its fruition, nor seeing any reward for my hard work in terms of being treated with the respect I deserve. I feel quite certain that pen-pushing spreadsheet monkeys have gotten over-confident, and have decided to screw me over.

I feel pretty p1ssed off.

 

Tags:

 

I Love My Job

5 min read

This is a story about inconsistency...

Apple Mac

I often forget that I have a mood disorder - bipolar - because I'm pretty functional and unimpaired, but clearly I'm not neurotypical. Depression seems to my 'usual' day to day mood, or perhaps it just feels like that because depression seems to last interminably long and can't go away soon enough, but hypomanic episodes are all too infrequent and very welcome.

My hypomania has, as usual, produced some useful results, in that I've been able to make fantastic progress at work on the project I've been involved with.

I was feeling disheartened about how much mess had been made and how the 'purity' had been lost of the wonderful system that I had a major hand in shaping, leaving things less-than-perfect. Then, I spent ages hacking away trying to make things better and tidying everything up, and I'm happy again; I feel like I can be really proud of my work.

Why anyone should expect me to feel consistent about things is dubious, given my mood disorder. Of course I'm going to say "I hate my job" on one day and "I love my job" on another. I wonder if the same can be said for my feelings towards life. I definitely have suicidal thoughts on a very regular basis, but it really wasn't very long ago that I had the holiday of a lifetime, which really was amazing, and I have some great things in my life like my girlfriend and my kitten, plus some great friends and a generally pretty enviable lifestyle... although of course I'm working hard and taking some pretty grim jobs in order to pay for that lifestyle.

I can decide whether I love or loathe creating software. When I wrote some iPhone apps, I never ever wanted to touch the code ever again once they were released. I was not at all proud of my code and it was quite arduous making those apps. In fact, I really got to scratch the coding itch that summer, writing code for 16 to 18 hours a day.

I think creating software can be a mood rollercoaster. Sometimes it's difficult and sometimes it's easy. When it's difficult, it can be really difficult and it can feel like a problem is impossible, but anyone who's a good software engineer will persevere and overcome horrible technical obstacles. When you solve a really hard problem, it's a major triumph, but it's emotionally taxing to have that range of mood fluctuation as an integral part of your day job. Many software developers will retreat into their comfort zone, only doing things in ways that they're familiar with; refusing to work with unfamiliar technologies, where they'll suffer the misery of technical obstacles all over again.

I'm not sure whether I love or loathe overcoming technical challenges. I love it when I succeed but I hate it when I feel like I'm not succeeding; that I've finally met my match with a particularly nasty problem.

In the organisation where I currently work, it seemed like the system I was working on was incomprehensibly huge and that the problems were so deeply embedded in the very fabric of what'd been built, that I could do little more than nurse the thing along and make very minor improvements. However, I started to become more bold and ambitious about making changes, until eventually one day I decided to rewrite it all. Everything works like I thought it would, and things are incomparably better than they were when I joined, but maybe I'm biased. I do have hard numbers to back my claims that things are better... things that were taking days take a matter of minutes now.

I always worry that I'm repeating past mistakes, where I've become full of myself and convinced that I'm a major driving force in delivering a major project for a massive organisation. Perhaps I am a major driving force, but things have not always ended well for me when I've allowed my hypomania to run riot. I need to learn those lessons of the past and not allow myself to become excessively tired, where my hypomania turns into outright mania and I start acting strangely.

Hopefully the reality I perceive is not too different from how other people see things. Hopefully I'm not suffering too badly with delusions of grandeur. There seems to be plenty of evidence that I'm doing a good job and I'm well respected, and that my contribution is valued. There seems to be plenty of corroborating evidence to support my claim that I've made a major contribution to the project and can feel proud about that.

I'm really hoping I get to stick around and see things through to completion. There's fairly significant stuff going on in October, and I really want to be part of that, seeing the stuff I've worked hard on getting used in anger. Sure, I'm over-invested and taking things too personally, but I also want to have been part of something to feel really proud about.

 

Tags:

 

Something to Live For

6 min read

This is a story about becoming obsessed...

Monitor

Everywhere I've ever worked has talked about the glorious day when all the IT people will be sacked. Everywhere I've ever worked has been obsessed with the idea that one day, everbody can be made redundant. Everywhere I've ever worked has always been saying "soon we'll be able to get rid of those dratted IT people".

What's actually happened is that everywhere I've ever worked has become a technology company. What is a bank except for a database of bank balances and transactions? What is an insurance company except a database of policies and claims? What is any company, except for its data and its systems? When you examine most companies in the service sector, it turns out that there is no business... just software and data. Even a retail company with warehouses and stock is mostly a software company: just look at Amazon, which is mostly a technology company, not a retailler.

The organisation I currently work for talks endlessly about the glorious day when they'll be able to sack all the contractors and consultants. Indeed, the organisation made a decent attempt at actually getting rid of one of their main suppliers, to usher in the glorious and much vaunted IT-free future, which has been long promised.

I'm rather torn about whether to assist in the job of making myself redundant. There's considerable financial incentive to do a shoddy job and fail to deliver my project on time. There are negative consequences for the organisation I'm working for if their project isn't delivered, but there are positive consequences for me if things aren't finished by the deadline, because it means that my contract will probably be extended. You'd think they'd pay me for delivering a completed high-quality end product, but instead I'm payed by the hour, so of course there's no incentive to go quickly.

I can't stand being bored. It's never been my style to take my time and make a small amount of work last a long time. I'm not a person who believes it's a good idea to deliberately go slow. I'm not a person who believes it's ethical to make myself indispensable; a key-man dependency.

So, I am in a strange situation in my day job. I might end up accidentally finishing the project in time for the deadline, and delivering something that's high quality and easy to hand over; easy to maintain and support. That would potentially be disastrous for me, financially. Why bother to keep me around if I've delivered a neat-and-tidy, easy-to-use and well designed system, which is reliable and mostly bug-free? Surely I'm playing straight into the hands of those people who believe that one day all the IT work will be finished and all the IT people can be sacked?

I find it very frustrating working at snail's pace and looking busy, making a piece of work last longer than it actually should take to do. I find it very frustrating when I see shoddy workmanship and impenetrable unmaintainable and badly designed crap. I like being busy. I like delivering high quality systems. I like delivering finished projects on time.

I'm fairly obsessed with my day job and my project, because it seems like a simple way to achieve some progress in life. On paper, I'm highly qualified and experienced to do what I'm doing, so therefore there should be no reason why I wouldn't be able to keep working until the project completion date, and able to bank all the money that I'm potentially able to earn. On paper, it's a straightforward exchange of my labour for the project deliverables, and therefore I should be left unmolested to get on and do my job.

In reality, it seems that nobody really wants the project to succeed, me to earn my money or be able to achieve any of what's clearly possible to come to fruition. On paper the project can succeed, I can earn my money and the money helps me to achieve financial security, but in practice the project will fail, I don't earn my money and I don't have the means to pay rent and bills - this seems to be the desire of the decision-makers, who really don't want to see competent and capable people delivering successful projects.

I've come to expect defeat to be snatched from the jaws of victory in the final hour; far too often I've be scuppered and thwarted when all that needed to happen was for me to be left alone, unmolested, and for the inevitable success to be allowed to happen. I'm very torn about whether I should employ more cynical tactics for my own economic gain, as I'm incentivised to do, which would be detrimental to the project, because it would essentially mean a far lower quality end product, which seems like a huge shame.

How have we reached this situation where we're so disincentivised to work hard and do a good job? How have we reached this situation where f**kwits and lazy idiots are rewarded, while anybody who's capable and competent is thwarted?

I remembered some times in my life when I had other interests, outside the workplace, and those were happier and more healthy times. I know that it's not good to be obsessed and single-minded. I know that I'm generally a more easy-going and laid-back person when I don't take things personally, but I really need this right now. Of course I'll find a way round the obstacles if I'm thwarted, but it's frustrating, especially when I've busted my balls.

I was really devastated when I thought I might not get to see my project through to completion. Now I'm a bit more "meh" about it, but I still have little going on in my life except for work at the moment. I also really need things to go as planned so that my financial planning isn't completely ruined.

Anyway, work work work. Work very much on my mind this week.

 

Tags:

 

Hard to Count

8 min read

This is a story about beans...

Cray

IT projects routinely go over budget and fail to meet their deadlines. IT projects routinely fail spectacularly. The worst projects of all are government IT projects, which very often get cancelled, having failed to deliver any value at all.

Anyway, on an unrelated matter...

IT projects that I work on are a bit different. I like to deliver things; I don't just want to work and not worry about whether anything useful is getting done; I'm not happy to let projects fail. It'd be easy to get carried away with my own ego and delusions of grandeur, but I make a difference to whatever organisation I work for, on whatever projects I work on.

Sometimes I get the sense that I've over-estimated the value of my contribution. Sometimes I feel like maybe I'm the tiniest of tiny cogs, and my contribution is negligible. Perhaps it's a co-incidence that I can get big complex IT projects over the line, when more usually they waste a heap of money and then fail. Perhaps I'm getting carried away with mania, which is deluding me into thinking that I do anything useful at all.

A colleague of mine repeatedly says that it's easy to create a great piece of complex software if you're the only person who designs and builds it, but I think he's wrong. Sure, I really don't think it's a good idea to have 100 people working on a piece of software that could - and should - be written by just one person, however, a lot more can be achieved by a small high-performing team than a single individual.

A commonly recurring theme with my bipolar disorder has been episodes of irritability, impatience and general intolerance for asshats in the workplace. Quite regularly, when tight deadlines loom and I'm feeling exhausted, my desire to work with "dead wood" people who make things worse, not better, reaches its limit and I really want the 'team' members who are slowing everything down to butt out, back off, step back and watch the professionals at work.

What about this 'team' stuff then? Am I even a team player?

I refer you back to what I said about small high-performing teams. In order for a project to deliver a high quality end product on or before the deadline, it's often necessary to have fewer people, not more. It's the bane of my life, having dead wood in the team. I'm absolutely a team player... I just don't want the dead wood around the place, messing things up and slowing everything down.

I should qualify: I'm fine with team members who are there to listen and learn; I'm fine with people who are developing their skills; I'm fine with people who are quite junior and in the early stages of their career. If you've been doing software development for decades and you're rubbish at it, then no, I really don't want you in my team. One thing that particularly irks me is very highly paid consultants who are rubbish at software development. If you're slow and dreadful at your job, despite being massively overpaid, stay the f**k out of my way and don't slow my projects down.

Is it so hard to hire good people? Is it so hard to identify the underperformers, especially when their output is out of alignment with their remuneration? Surely it's a simple cost:benefit analysis, where some individuals are nowhere near worth the money, and in my opinion are actively damaging to both projects and morale.

I wonder how much better things would be in the workplace if highly paid consultants who aren't worth the money were booted out, and the projects were delivered by underpaid graduates who are little superstars, producing huge amounts for very little cost. Actually, I know the answer because I've worked on those teams - with the right guidance, the graduates will deliver every single time.

The lack of meritocracy and the ageism in the working world is particularly galling in the IT industry, where archaic knowledge and experience has zero value. Perhaps my young graduate colleagues might benefit from a little senior leadership and a good architect, but whatever mistakes they might make are irrelevant because they're so damn quick. It's criminal that an overpaid and underperforming consultant might earn 5 or 6 times more than a bright and productive quick-witted graduate; graduates proven to be 5 times more productive.

Why do I learn so much from my graduate colleagues, but so little from overpaid consultants? I have learned lots of quicker, more efficient and more modern ways of doing things, when my older colleagues are just doing the same dumb s**t that they've done for years. Sure, it's been uncomfortable to have to re-learn vast swathes of stuff, but the benefits are obvious, having bitten the bullet and decided to take my younger colleagues seriously; to treat them with the respect they deserve.

What about respect in general for my colleagues? I respect my colleagues who have decided to take permanent jobs and be underpaid. I respect my colleagues who've chosen to avoid the cut-throat and stressful world of the job market, and instead opt for long careers with a single organisation. I respect that there are different life choices and needs, that some people need job security, and that very few of us had the opportunity to learn IT skills as a child, to the point of those skills becoming innate and instinctive. I respect that it's a very good idea to hire highly paid consultants, in order to upskill your permanent members of staff. It's part of my job, to train, coach and mentor my colleagues who are permanent employees of the organisations I work for. It's part of my job to be patient with the permanent staff members and to help them reach their full potential.

I spend a lot of time worrying about whether I'm just telling people what to do, and whether I should take a more pre-considered approach where I allow my colleagues to think for themselves, rather than just being typists while I dicate instructions. Is there any value in me instructing somebody to do something I could do myself in a fraction of the time? Should I just race ahead, and then spend time explaining what I did and why, once the deadline is safely dealt with? Would it be better to simply let my colleagues watch me work? I know that it's very hard to think for yourself if somebody is telling you what to do, and that if I was doing people management I would avoid any micromangement like the plague, because it discourages independent thought, learning and initiative-taking. I know that the kind of people I want to work with are ones who can work independently and solve problems for themselves, but I work in an unusual situation where there are tight deadlines, but I'm also expected to train my colleagues to be self-sufficient to some extent, which is impossible in the timescales.

Explaining to management that more people does not equate to more productivity, and that the deadlines are not realistic to be able to get all the work done AND do all the training and handover that's necessary to make me completely redundant, is an impossible task. I'm eternally plagued by the mistaken notion that one day, there won't be any more need for IT professionals because all the IT work will be finished and the IT people will all be redundant - this has proven to be the most ridiculous nonsense, but an enduring fantasy of f**wits in every organisation.

I should qualify that I really like my colleagues, although I'm a bit frustrated with one or two very highly paid consultants who aren't worth the money. I should qualify that I really like the organisation I'm currently working for. I should qualify that I really like the project. It's all interesting and people are nice and even the management are pretty good, which is rare. There's not much pressure and the deadlines are not realistic, but they're achievable, which is usually a miracle for an IT project, especially in the sector I'm working in. I have no real complaints or criticisms of any colleagues or the organisation and its management team, not that this would be the place to air those grievances, of course.

I write a little tongue-in-cheek, because I know that colleagues from two different parts of the UK are reading this from time to time, and I wonder what they will think if they happen to read this particular post. I cringe of course at my arrogance and my delusions of grandeur, but I also struggle to know whether I'm making a significant contribution, or whether I'm just a tiny insignificant cog in an incomprehensibly huge machine, so I'm prepared to poke the bear a little.

 

Tags: