Skip to main content

I write every day about living with bipolar disorder, also known as manic depression. I've written and published more than 1.3 million words

twitter.com/ManicGrant

nick@manicgrant.com

facebook.com/manicgrant

 

I ❤️ a Crisis

3 min read

This is a story about the proverbial hitting the fan...

Hotdesk

It's often said that most fires are started by bored firemen who want to be heroes, but there are too few fires to fight. Eventually, when we've prepared for the worst for a very long time, it is us ourselves who precipitate a crisis, because we can't stand waiting for the blows to rain down upon us any longer.

Similarly, my profession incorporates a lot of planning for disasters. Quite literally, part of my job is to consider what would happen in event of nuclear holocaust, tsunami, hurricane or other apocalyptic event. If I wasn't planning for disasters to happen, I wouldn't be doing my job right.

I am not, by the way, planning to launch any kind of nuclear attack.

Banks have lots of empty desks like the ones pictured above. These are disaster recovery desks. In the event of a disaster, in theory, the financial markets could continue to function: the traders who have survived the disaster would be able to make their way to the nearest building which still has power and data, to carry on working. This is business-as-usual for the banking and wider financial services sector: it happily plans for the destruction of civilisation, while ensuring that asset prices are still protected. The world might burn to the ground, but at least the shareholders retain most of their paper wealth, is the ethos.

The thing I live in fear of the most is: boredom.

I was incredibly worried that the next 6 months of my life were going to be excruciatingly boring. It's my professional duty to ensure things are as boring as possible. I'm paid handsomely to ensure that things go smoothly and successfully, but it makes for a pretty boring life. I much prefer life when everything's on fire. It's bloody brilliant when everyone's losing their cool all around me, and I get to have some fun being the hero, fixing stuff; enjoying some pressure and excitement. But, it would be unprofessional of me to deliberately - or at least provably - cook up a crisis.

Now, a situation has fallen in my lap. Instead of dreading the next few months, I'm looking forward to working my butt off to sort things out, with a high-pressure drop-dead deadline. This is the stuff I really relish. This is the sort of stuff that gets me out of bed in the morning, as well as the generous remuneration.

I love it when stuff goes wrong.

 

Tags:

 

Superiority Complex

5 min read

This is a story about delusions of grandeur...

Thought bubble

The problem with slinging pseudoscientific mud, is that sooner or later you're going to come up against somebody who knows what they're talking about; they're able to rigorously follow the scientific method, and they can see right through the dumbed-down pathetic attempts to create popular ideas, which prey upon our preconceived notions, our biases, our vanity and our insecurities.

If we look at applications for university places, there are vast numbers who want to study arts and humanities subjects. Then, the social 'sciences' are the next most popular. Bottom of the pile, in terms of popularity, are the difficult, dry, technical subjects: mathematics, engineering, chemistry, physics, computing. You cannot 'blag' that you know what you're talking about in a technical subject: there are right answers and wrong answers, and no amount of blagging will convince anybody that you're right, when you're wrong, and you're provably wrong.

The social 'sciences' - anthropology, sociology, psychology etc - are not sciences. Science follows a strict prescriptive methodology, and anything which doesn't adhere is not science. The social 'sciences' produce nothing but worthless crap, because it's not science - the results of experiments cannot be reproduced. Any experiment which doesn't have reproducible results, is a non-experiment; a waste of time; absolutely useless.

In an attempt to appear like real medical science, psychiatry has attempted to apply statistical methods, to make the diagnosis of pathologies of the mind, into a supposedly objective exercise. In theory, the patient's symptoms are all that are needed in order to make an accurate diagnosis, via the power of statistics - so, in theory, there's no need for psychiatrists any more. We should, in theory, be able to diagnose ourselves and then simply obtain the required medication from a pharmacist: no doctors required.

No. No. No. The psychiatrists say.

You need us to interpret these hard statistics, and add our own opinions. Say the psychiatrists.

So, what happened to this being a scientific process, driven by data and statistics?

The truth is that everyone will use their knowledge and position of authority in order to pursue their power games. Psychiatrists will never use a scientific statistical method, because then they become redundant.

Unfortunately, psychologists have latched onto psychiatry's attempt to become more scientific, and lend some credibility to their profession. Psychologists are probably more obsessed with statistical methods for 'diagnosis' than psychiatrists are. Psychologists, who, let us remember, were not clever enough to become doctors, engineers, mathematicians etc, opted for a profession where there are no right or wrong answers; anything you say is equally dumb and meaningless. Of course, psychologists would want to pretend like there was any kind of rigour, any kind of methodology, data or statistics, behind their work.

There isn't.

The problem with psychologists latching onto the work of psychiatry, is that they try to import theories and apply them. Psychologists - especially amateur wannabe psychologists of the armchair variety - love to throw around labels like "psychopath", "sociopath", "narcissist" etc. when in fact, those labels were only intended to ever apply to the tiniest fraction of humanity. How can it be meaningful to call every man you've ever met a "pathological narcissist"? How have rare medical conditions gone beyond that of an epidemic, to now become things which affect the vast majority of humanity?

It hasn't happened.

Only a tiny fraction of the human race suffer from pathologies such as narcissism and sociopathy.

You can't just label people you don't like with psychiatric pathologies.

It's dumb.

Amateur psychologists are dumb.

Psychiatric language is ubiquitous in our culture. We use terms like "crazy", "mad", "loony", "loopy", "wacky" and every other flavour of term for 'insanity' to mean everything on the spectrum, from upset and angry, to schizophrenic psychosis. We call ourselves "OCD" when we just mean neat, tidy and clean. We call ourselves "bipolar" when we just mean moody. Meanwhile, depression and anxiety are so common, and so many of us are medicated, that we hardly even bother to talk about the fact we've been diagnosed with those illnesses anymore - we make memes about killing ourselves; we make memes about how dysfunctional we are.

To talk about a 'superiority complex' in the present day, is like giving out speeding tickets to the competitors at the Silverstone Formula One grand prix race. To talk about 'narcissism' is something that you really should do on your YouTube channel, or on your Instagram Story, or on your Facebook page, or one of your TikTok videos. Utterly nonsensical. Unhinged. Mad.

Yes, there are people who are so affected by the Dunning-Kruger effect that they are unable to comprehend the limitations of their abilities: they will never be a mathematician, engineer, chemist, physicist, software engineer or suchlike; they're not clever enough. Those over-confident people's ignorance is not as good as my knowledge. We are, unfortunately, living in an age where vast numbers of people think that their 'life experiences' and 'gut feel' qualifies them to opine on subjects, which they are utterly, dismally ignorant about, exposing their appalling stupidity, much to the chagrin of anybody with half a brain.

So, anyway, I'm sick of pop-psych 'magazines' (especially online) publishing articles about narcissists with superiority complexes. They don't exist... you're just pedalling word-salad, put into the mouths of your readers. Your readers will use that word-salad to attack people they don't like.

 

Tags:

 

Maybe I'm the Muppet

5 min read

This is a story about software development...

Cog

Maybe I'm the problem, but wherever I go, the projects I work on are delivered on time (or early!) on budget, and they work. Everywhere else in the IT industry, projects are late, overbudget, and they are a disaster zone: security problems, performance problems and full of bugs. Maybe I'm the muppet though, for reasons I'm about to explain.

My approach to large complex software projects, is to decompose the problem into smaller easier to handle pieces. If the problem can't be decomposed into small chunks, it's probably not going to succeed. As a non-muppet who I admire once said, you wouldn't build a heart pacemaker or some other piece of technology which was a matter of life-and-death, with a design which couldn't be built and tested with certainty that it would perform its safety-critical functions perfectly. Heart pacemakers and suchlike are highly complex, sure, but they are built from lots of very thoroughly tested and well-built smaller components, which work together.

A watch, is of course, a very complex piece of mechanical machinery. The idea that we are just cogs in a big machine is a good analogy: the machine is fucked without one of the cogs. A good machine has exactly as many cogs as it needs; no more no less. Another non-muppet who I admire is oft-quoted as saying that everything should be made as simple as possible, but no simpler. No non-muppet ever said "I like this, but wouldn't it be better if it was more complex?".

I know that arrogance and delusions of grandeur are - unfortunately - big problems that I have to deal with, as a result of my mental illness: bipolar disorder. I'm sure there are plenty of quiet, unassuming and humble people out there in the world - somewhere - who suffer from bipolar disorder, but I'm one of the more common ones: I have a lot of confidence in my skills and abilities, which is frankly justified, because I don't think I'm a muppet, because every project I work on is a big success. But, as I said before, maybe I'm the muppet.

Of course, there's no "I" in team but there is a "me". There's also a hole in the "A". If your team doesn't have an a-hole in it, you're the a-hole. I often think that I'm probably the a-hole. Etc.

I know that we're all supposed to think of ourselves as the humble tiny cog, meaning that we're replaceable and not very important. I know that we're supposed to believe that our individual contribution is negligible. Frankly, that's a load of horse shit.

Sure, if you just want to turn up at a place for a few hours, in order to get money, and you really don't give a shit about what you do there, so long as you don't hate it so much that you kill yourself, then yes, you probably are "just a cog in the machine" in the way that most people mean. However, if you care about delivering successful outcomes and take pride in your work, then you too are a cog in the machine: that is to say, the machine is fucked without you.

Of course, capitalism has attempted to turn all workers into de-skilled automata, instead of highly sought after, valuable craftsmen. Instead of having some highly skilled scientists, mathematicians, engineers and suchlike, who are experts in their field, and experts on the particular projects they are working on, capitalism would prefer it if everyone was replaceable at the drop of a hat, so that anybody who's not kowtowing to their paymasters can be unceremoniously ejected from the workplace.

In my particular profession - software engineering - capitalism has succeeded to some extent, in that vast quantities of extremely poor quality code is produced, most of which will never be assembled into any kind of working system, delivering any kind of tangible benefits as intended, because fucking muppets are in charge, and muppets think that they're the brains and they just need a bunch of programmers to be typists for their 'perfect' requirements.

Maybe I'm a muppet, because I could accept a meagre wage, doff my cap at the muppets and pretend like they're not muppets. I could pretend I'm a lowly programmer instead of a highly skilled, experienced and seasoned veteran software engineer. I could pretend like I don't see the utter stupidity. I could allow the projects I work on to be late. I could allow the projects I work on to go overbudget. I could allow the projects I work on to fail. If I just wanted money, why would I care? I'm a muppet -surely- for not shutting my mouth and just taking the money.

Of course, lots of people care; lots of people want the projects to be on time, on budget and to succeed... but only the skilled craftsmen - the engineers - can make that a reality. No amount of spreadsheet monkey muppets can turn a failing project into a success, but one or two excellent engineers can.

Anyway... I guess I'll be looking for a job again soon. The muppets don't like it when I attempt to do things the right way and make their goddam project a success, weirdly, and they can't wait to get rid of me when they think they don't need me anymore. About to be unceremoniously ejected from the workplace, I think.

 

Tags:

 

My First Jobs: Defence and Banking

5 min read

This is a story about guilt...

Conscience

The ethical benchmark by which I try to judge myself is that of a schoolfriend who's a renowned thinker and writer, and an exceptionally clever and thoughtful person; a real inspiration. I'm occasionally reminded that he reads my blog, which is an incredible privilege, but also makes me more acutely aware of my shortcomings in the ethical department.

As the title of this essay suggests, my first job was in defence. In my defence - pun intended - I was 17 years old, and my motivation was to achieve some degree of independence such that I might later be able to choose what I wanted to do with my life. I don't feel like I ever had the opportunity to think "what do I want to do with my life?". It seems fairly commonplace amongst the sons and daughters of middle-class families, that their children find a subject that they find interesting, which they pursue academically at university. I never had any financial support from my family, to pursue any dreams, so I was forced to make pragmatic decisions. There was the opportunity to study for a degree while I was at my first job, but a job's a job... I had no passion for making weapons of mass destruction, so I wasn't motivated to study the subject academically.

I distinctly remember imagining a day when I might find out that a vessel had been sunk by Spearfish or Tigerfish torpedos, and I considered how I would feel if there was loss of life, directly attributable to my work. I suppose I should have thought about it beforehand, but I didn't - I just wanted and needed a salary; I needed to pay my rent and bills.

In all honesty, I didn't quit my job in ethical protest at the defence industry. I quit because I was getting ripped off - I was very underpaid for my skills and experience, and I resented that.

Where could I get paid the most?

Banking.

I'm not proud of it, but my thought process really was as simple as asking myself: where can I get paid the most?

I suppose just about anybody would think "investment banking" when quizzed on where a person might find the highest salary. The late 1990s was not quite the loadsamoney heyday of the yuppies, which was ushered in by Margaret Thatcher, but the City was still awash with money. My motivation was pure greed and avarice, one might say. I put little or no thought into the ethics of my career decision, I freely admit.

In my defence - pun still intended - I was leaving the defence industry, so surely anything I chose would be more ethical than that; more ethical than designing and building weapons of mass destruction.

With hindsight, usury inflicts as much misery and suffering as war.

But.

It would take many years before I understood that.

My first job in the City of London was everything you would expect it to be: an extremely macho and male-dominated environment, with plenty of booze, drugs, strippers and escorts. Awash with cash, our lifestyles were offensively lavish. It was pure vulgarity, writ large.

I was still young, of course... only my second job, but you must also remember that I skipped university because I couldn't afford it when I was 17. But then... but then... I was wearing golden handcuffs.

I kept thinking about going to university to pursue a subject I was interested in. Psychology or psychopharmacology, perhaps. I applied and was offered a place at some very prestigious institutions. However, I couldn't face being poor again. I couldn't give up the lavish lifestyle, once I'd had a taste of it.

It was several more years before I found myself working on a project related to the confirmation and settlement of credit default swaps for the investment bank which processed 70% of all trades. Quadrillions of dollars of credit swaps flowed through systems I designed and built. I didn't really think about it too much, as I was too busy being an engineer: Once the rockets are up, who cares where they come down? That's not my department.

I was laid low with depression, which kicked in at the exact same time as the credit crunch and the global financial crisis of 2007/8. I often say I was at ground zero, because it's true.

I still don't ask myself whether what I'm doing is ethical: I'm an engineer, and I like to build stuff; it's only with hindsight that I see the ethical problems. A schoolfriend suggested I sabotage the project I'm working on, which is 'big government' stuff, but it seems benign to me... perhaps I'll see things differently, when it's too late.

I absolutely do not pass the ethics test. I feel like my defence is a flimsy version of: "if I didn't do it, somebody else would have done". I feel like I'm a Nazi saying "I was just following orders".

 

Tags:

 

Give a Job to a Busy Person

6 min read

This is a story about workload...

Gas Meter

The original idiom - which I have adapted to make it more inclusive - says that if you want a job doing, you should give it to a busy man. I notice that this is fairly true, from my anecdotal observations: the busier I am, the easier it is for me to deal with extra work being given to me.

One year ago I had the intolerable task of sitting quietly trying not to get noticed, and trying to keep my mouth shut. I knew that the very best thing I could do for my career and my bank balance, was not to rock the boat; not to attempt to say or do anything useful. The best thing I could do was act as a very expensive seat warmer. I was paid for being present, not for being useful or productive.

One year ago, seemingly minor things made me exceedingly anxious. If I had to get my car tested for roadworthiness, have a haircut, deal with the gas company, or any one of a million ordinary everyday tasks, I would find it unbelievably stressful, and I struggled to cope.

I have started to work 100+ hours a week again. To say that I'm busy would be a massive understatement. I am hyper-productive for the maximum amount of hours which human physiology allows for, without sleep deprivation causing me to have a psychotic episode. Unable to sleep, it's quite usual for me to open my laptop and start working in the middle of the night. I wake up well before my alarm clock. I am running in overdrive mode at the moment, also more commonly known as a manic episode.

Of course, with mania, I get very impatient and irritable about things which are not on the critical path. For example, I was asked to update a spreadsheet which detailed the activities I've been doing during the past couple of weeks, and how long I spent on each activity. To me, this is the most ridiculous waste of my time, given that 100% of my time has been spent on productive activities for one single organisation, so I really don't give a toss about how it's sliced and diced - all my valuable time has gone to benefit the organisation who wants me to waste time on an unproductive exercise, which leaves me less time to do productive activities. It's idiotic to get your highly paid staff to spend their time doing activities which are not valuable, when instead they could be doing something useful.

The argument would be that timesheets and suchlike are the way that we calculate how much to pay people, but this is demonstrably absurd. If the number of hours worked had any kind of relationship with the value delivered, then I would agree that it's important for us to record or time worked on task accurately, but there IS NO relationship between remuneration and hours worked. If I work the same number of hours as some of my colleagues, I am paid 5 or 6 times as much. Am I 5 or 6 times more productive and valuable? Sometimes I am less valuable, sometimes I am more valuable, and sometimes - although it's exceptionally rare - my remuneration tallies with the value that I'm delivering.

One of my colleagues said to me "you've got too much time on your hands" when he saw something I'd been doing, which he thought was a waste of time. Later, that piece of work I'd done turned out to be one of the most valuable things that anybody in the team ever produced - something that benefits every member of the team every single day, and perhaps many many other members of other teams, and indeed the whole organisation.

Value and productivity are very hard to measure. "Bums on seats" culture is dreadful. The number of hours that staff spend at their place of work has no bearing on how productive and valuable they are.

In the teams I get involved with, I try to instill a culture of "think it... do it". I want people to implement any innovative ideas the moment they have them. If the ideas turn out to be duds, so what? It only takes one or two great ideas that really pay off, to more than outweigh the small amount of wasted time doing things which had little value. So much time is wasted talking about priorities, and the pros and cons of doing something, and agonising over whether it could or should be done. The culture I bring to teams and organisations is one where everybody's encouraged to build stuff, even if it gets thrown away; even if it's silly!

It's much better for people to be productive and have their brains being kept busy, than looking busy. It's so much better for people's sense of job satisfaction, sense of purpose, sense of pride, sense of ownership, and a multitude of other great qualities that we want from the people in our teams and organisations.

There's no obvious value in the text-based adventure game which I hid inside one of our systems, as an easter egg, but the value is in the cultural tone that it sets: it's OK to build stuff; don't be afraid; don't be so serious... this is supposed to be fun and intellectually challenging.

As it turned out, now we have several tools which imitate the game I built, which perform useful functions for the organisation. Instead of attempting to "win" a "game", the objective is to find and fix problems, using the available clues, which is pretty much what every IT professional does for a day job, but it's a lot better if there's a half-decent interface to help with that task. Computer games are always brilliant at having the learning curve set to make them accessible, and they take advantage of the best available features: if all you have is a computer terminal that can print text and accept typed commands, then you can still create a brilliant game, even without fancy 3D graphics and sound.

I'm busy as hell, and you might say that the 2 hours I spent writing an adventure game were wasted, but in fact it was time well spent. The 5 minutes I spent battling with a spreadsheet where I had to record the hours I spent working on things, was a total waste of time and quite corrosive to the great working culture I'm trying so hard to create.

 

Tags:

 

Ticks in Boxes

3 min read

This is a story about form filling...

Vote

So my project is delivered and the giant form-filling SurveyMonkey exercise has begun. Today was supposed to be exciting, but it wasn't. It was boring. If I do a good job, then this part of the project is boring. If I do a good job then everything's supposed to work and run smoothly. I expect there will be problems, but at the moment there aren't any, mainly because nobody's doing the damn survey.

It's a little anti-climactic. I got up super early this morning, hoping to see the first users using the system, but there've barely been more than a handful of people who've stumbled upon the system. It won't be until tomorrow or the day after that people are notified that they have to do something, and their survey results will start flooding in. After so many months of hard work, it's a little hard to sit and watch a flat-line graph, showing virtually zero activity, the whole day. What a disappointment. At least things are working though, so far as we can tell.

I can't go into too much detail, because I'm bound by codes of conduct, privacy & confidentiality contractual clauses, and indeed other rather scary-sounding laws which restrict me from spilling the beans, but the good old general public are about to be asked to do a cool SurveyMonkey, and this is jolly exciting... except it isn't because nobody's doing it yet.

I'm exhausted.

It's been a long old slog to get to this point.

With so much nervous anticipation, it's hard to maintain the same level of energy and enthusiasm when nothing is happening. I found myself nodding off at my desk so I had to come home early. I'll try to get an early night and lots of sleep, in the hope that tomorrow is a more exciting day, providing some adrenalin to carry me through an otherwise pretty anti-climactic period.

It's supposed to go smoothly. It's supposed to go well. There aren't supposed to be any problems.

But.

Having worked so hard for so long, to meet a very tight deadline, I really don't quite know how to re-adjust to life without that pressure; without that goal and sense of purpose. It's difficult changing mindset, from push, push, push, to now wondering what fire is going to break out that will need to be put out; what crisis is going to emerge?

Still very obsessed with work and project, but the waiting is now mostly over, and we'll soon know whether some bold decisions I made have paid off, or whether they'll cause terrible problems and turn out to be disastrous.

 

Tags:

 

MMORPG

2 min read

This is a story about co-operative play...

Java

What's the game I'm playing right now? Well, it's called "get the massive software system to work before the damn hard deadline". It's a multiplayer game. It's fun.

I've spent all evening chatting to some genuinely delightful colleagues. Instead of trash-talking the overpaid fuckwits, I should be raving about what a pleasure it is to work with some brilliant individuals.

I'm not so sure I would go as far as to say "I love my job" given that earlier I very much wanted to down tools and give up until the morning, in the face of overwhelming technical obstacles. I was inclined to wait for a couple of more skilled individuals to be on hand to offer some real, tangible, useful assistance, but I lucked out on being able to take a couple of nice shortcuts.

The joy has come from the camaraderie of working with the select group of individuals who really care; who really know their onions and are used to working under pressure, having to solve nasty problems with a gun to their head and a crazy number of people breathing down their neck.

The chips are down. This is sink or swim time. This is where shit gets real. I love it.

Earlier I thought "is it only Monday?" and I thought that I should give up and take it easy, because it's going to be a long week. Then, I got creative and found a way though. I've been doing work-related stuff up to 10pm but I don't care, because we're making progress; we're kicking ass.

This is fun. It's sociable.

 

Tags:

 

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: