computing – Nick Grant

Tag: computing

  • Would You do it for Free?

    This is a story about labour…

    Balloons

    A reasonable test of whether or not you love, or even like, your job, is to ask yourself the question: would you do it for free? Personally, I wouldn’t willingly choose to participate in ordinary organisational office life, which is not to be disparaging of my colleagues, but there are so many better, more humane ways, to organise ourselves versus large hierarchical organisations, with life revolving around going to a building for the majority of days each week, for a substantial percentage of your precious waking hours.

    The part of my work which I will keep doing, whether I’m paid to do it or not, is technology. I have rejected technology a few times in my life, in an attempt to live a life which is more connected and in touch with the tangible: to see my work in physical form. The ‘weight’ of the entire internet, is estimated at little more than a tennis ball, if you add up all the electrons which are storing and transmitting data, across all the computers, networks, smartphones, tablets, telephone wires, airwaves… the whole shebang adds up to barely a whole lot of nothing. Some kind of massive solar storm could potentially burn out transformers and other parts of the electrical grid, but almost all the physical cabling would survive, along with most of the electrical devices. Conversely, data is mostly so ephemeral, that it barely exists physically, as evidenced by the tennis ball example.

    The thing which I do so much of for free, that it might be worth considering whether I should figure out a way to make it pay, is writing. Of course, everyone wants to be a writer, or some kind of artist. The world has no shortage of writers. Plenty of people will do it for free. The same could be said of tech though: the world is full of tech hobbyists, and by my own admission, I would still be doing some kind of tech for free.

    I think the vast investment in writing is paying dividends. A former work colleague often spoke of a force-field which he called simply “too much typing” which was the barrier to entry for most people wanting to get anywhere in tech. People are very happy to click a download button, or copy-paste something, but somebody, somewhere, sometime or other, has to do some damn typing.

    I freely admit to having been pretty lazy for a lot of my career. Everything I’ve ever done in tech has been very easy and unchallenging, so there’s never particularly been a need for a lot of typing. I’d be lucky if I wrote as much as ten lines of code per day, on average, during many long boring and unproductive days, employed by organisations who wanted to own me, as an intelligent ornament; to ensure that no competitor would have me, but keeping me for no other requirement except to deny others my labour. As such, I too couldn’t be bothered to do much typing, because there were no interesting challenges.

    It’s strange how the job of fiddling with tools but never actually making anything seems to be the pitfall of so many. I was building something for a friend today, and I thought that there were a vast number of things I could be doing, which were attractive alternatives to doing the job in hand, which most other people I’ve worked with would have done instead. I built something pretty damn ugly and inelegant, but it worked and it delivered interesting and useful results, which the shiniest of shiny things never do. ‘Perfect’ systems do exist, but they don’t do anything: as soon as systems come into contact with the real world, and are forced to do real, useful stuff, then the perfect imaginary world collapses, and the system turns into a big tangled mess. This is why engineers prefer to tinker and polish their tools, and never actually make anything; to stay in the safe make-believe imaginary world of perfection which they’ve created, bearing no resemblance to reality.

    Similarly, I think now, I enjoy writing and publishing, but mainly I enjoy not having to debate or reason with unreasonable people; I don’t have to persuade anybody or listen to dull, uninteresting and unintelligent opinions. I am, however, living in a fantasy world in which I can create ‘perfection’ so long as I don’t have to come into contact with reality. That’s just fine with me though… I’m doing this for free, so I can do whatever I want.

     

    Tags:

  • Humble Opinion

    This is a story about keyboard warriors…

    Desk

    You might be surprised to learn that I feel shame and regret for over-eagerly volunteering an opinion in the company of those who are more qualified, experienced and wise, who must surely have looked upon the ignorant tosh which I spouted as beneath contempt; the unintelligible gibbering of a moron.

    My career has been exceedingly technical: I don’t deal with the grey areas in life. My work is either right, or it’s wrong. What I produce is either correct, or it’s garbage. There’s no “blagging” in my area of expertise: you either know what you’re talking about or you don’t.

    Of course, most areas of life are not as black and white as my chosen career is. Most people do not work in STEM (Science, Technology, Engineering and Maths) and as such, they are not used to having to be correct; they have no use for right answers, because they can get away with wishy-washy rubbish, which isn’t provably garbage; they can blag their way through life.

    One of my favourite TV shows is called Scrapheap Challenge which is known as Junkyard Wars in the United States. On the show, contestants must build massive metal contraptions from old vehicles, rusting in a pile. It’s a geeky show for geeky people. I can’t speak on behalf of mechanical engineers, but I do know a former contestent, and one assumes that those who are engaged with building and fixing things for a living, would find it fun and interesting. I mention this show because sometimes there’s a software engineer contestant, and I have observed – anecdotally – that they are pretty useless. The main skill required for being a good contestant, is being a good welder. I do very little welding, as part of my job as a software engineer.

    Knowing one’s limit is important. It’s difficult though, not to extrapolate from expertise and mastery in one specialist area, and assume that success will be forthcoming in any other area. After a long while of continuously learning new technical skills, it’s hard not to get carried away and assume that anything can be quickly learned and mastered. For sure, working in tech teaches us to continually learn new things; things which are hard and technical and can’t be blagged.

    Obviously I don’t “know my limit” or indeed “know my place”. I have opinions on almost everything, but I must say that those opinions are not the usual ill-informed ignorant gut-feel of the morons who plague the comments section on the internet. In order to have an opinion, I have to have at least read the Wikipedia page, or suchlike. Also, I have to be interested in the subject in question, sufficiently to have done some cursory reading on the subject. I like to think – arrogantly – that my opinions are grounded in reason and logic, given that my whole working life and a lot of my childhood has also been grounded in formal logic; I’m literally paid to think logically. My whole career has been quantitative and as such, my opinions are qualified with hard numbers, most of the time.

    A lot of what I do could be considered quite a dark art, I suppose. I’d be lying if I didn’t use gut feel and intuition to make decisions, during my working day, but I can guarantee that my decisions are backed by experience, and that experience could be expressed as statistics which bolster my claim that my decisions are data-driven. Sometimes I’m challenged to provide the firm numbers which allowed me to reach an opinion, and I can do that: I can prove why my opinions ‘add up’ to reach the answers I give.

    There is an overlap between the black-and-white world of data science and technology, and the fuzzy world of human emotion. If I say that something can’t be done, on a project, I’m often challenged to prove that 9 women can’t have 1 baby in one month, for example. Sometimes, whatever being asked could be done, technically, but it would be bloody awful for all involved; sheer misery. For sure, at some point, the limitations of our biology – and even psychology – have to be considered.

    I have opinions and I will not stop sharing them.

     

    Tags:

  • Always On

    This is a story about following the sun…

    Kitten and pen

    I’ve worked for plenty of global organisations. I’ve worked on plenty of projects which have spanned time zones. I’ve worked with teams of people, collaborating from the four corners of the planet. I have plenty of experience working at places where the hours are long. However, I always used to be quite strict about work/life balance. I used to be appalled by the idea of an organisation infringing into my personal time. Not anymore.

    That I might be expected to be on-call was something which overstepped the mark: back when I used to be a poorly paid junior, climbing up the rungs of the corporate ladder, the idea that I would give any more time to a company which was already exploiting me, was outrageous; I rejected it aggressively. The idea that I would pick and choose when to take my holidays, depending upon the demands of the project(s) I was working on, was something I rejected, in the strongest possible terms.

    What changed?

    Well, for sure, if you pay me enough then you will get my undivided attention. If you pay enough, you can buy most of me. If you pay enough, I will be dedicated.

    Also, there aren’t that many projects which are interesting, challenging, and frankly worthy of my time. I’m not going to give up my evenings, weekends and preferred holiday dates, for the sake of some meaningless busywork; no way.

    So, what happened?

    Well, obviously, the magic double: decent pay and a decent project.

    The problem is, that I always assume that with enough hard work, I can conquer any [tech] problem. This is mostly true, but most of my problems are not tech. The tech is fine. It’s the people and the politics which are the problem. I don’t understand why anybody would hire highly paid experts, and then ignore their advice. I mean, if you want to screw something up and create a complete disaster that wastes loads of money, you sure don’t need or want my help to do that. The problem is, that I will try to make things successful which is a direct conflict of interest with the fuckwits who want everything to fail disastrously. Sure, the fuckwits ‘pay my wages’ effectively, so you’d think that they could pay me to fuck things up, but that’s not really how I work. I’m not in the business of fucking up projects, I’m afraid, no matter how much you pay me.

    I’m burning myself out, trying to make a big project successful, despite the very best efforts of a whole raft of fuckwits who are determined to snatch defeat from the jaws of victory. I’ve been extraordinarily quick, in order to try to sneak through some success while they weren’t looking, but unfortunately they noticed that things were going to succeed, and have swung into action, destroying everything in sight. Of course, I find it very hard not to try to fend off that kind of vandalism; that kind of sabotage. I find it very hard to break the habit of a lifetime: making large software projects succeed, in spite of the army of fuckwits.

    Things were going alright. Everything was under control. I mean, it hasn’t been easy, but it hasn’t been very hard either. I’ve worked very hard for a sustained period of time, but the hard work was paying off: the project was running on time; everything was going smoothly. Of course the fuckwits were going to swing into action. Of course they would try their very best to sabotage, vandalise and otherwise destroy any chance that the project would succeed. My mistake was to assume that we were working together to achieve a successful outcome; that they would be pleased that things were going to succeed, not fail.

    I find it very hard to switch off. I find it impossible to concentrate, when I’m supposed to be enjoying some rest & relaxation. I can’t sleep. My life revolves around one thing, and one thing only: trying to make the gigantic project a success, in spite of the enormous efforts to ruin it.

    I’m a bit of a workaholic bore, sorry.

     

    Tags:

  • I ❤️ a Crisis

    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:

  • Maybe I’m the Muppet

    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

    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

    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

    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

    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

    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: