agile – Nick Grant

Tag: agile

  • Sprint and Coast

    This is a story about IT projects…

    Bipolar Mood Chart

    I’m sorry steady eddies, but if you want to get anywhere with a big complicated project, you’re going to need somebody who’s a little bit of a madman. There’s this idea that building a piece of software is a bit like building an aeroplane. Plan the work, work the plan. The idea is that the software architects will come up with a brilliant design specification, and then programmers can just come along and build it. Wrong.

    Firstly, you have to plug together all the bits of tech, and make them work with each other. From the front end to the back end, you have the “full stack” and it takes a special kind of masochist to declare themselves to be a “full stack” developer, because you’re liable to be asked to change the buttons to a slightly different shade of green far more often than you’re likely to be asked to make a working piece of software.

    For me, I’ll start with a database design – a schema. I will model the data. Most applications have a CRUD element: create, read, update and delete data. If you think about the classic example of a database that holds all the data on your customers, most of it will be performing CRUD operations to keep the data up to date.

    Then the next thing is the data abstraction layer. How is your software going to store and retrieve the data from the database? Software talks one language, databases talk another. Interfacing between them is easiest when you use a bit of software that does the ‘translation’ for you.

    Then you’re going to need a bunch of business logic. Sure, you have all this data stored, but you’re going to want to do something interesting with it. Maybe you want a piece of code that tells you who all the customers who you need to contact today are. That’s a bit of business logic, and you wrap it up in a service.

    Then you’re going to need APIs. APIs are Application Programming Interfaces. APIs let one bit of software talk to another bit of software, which can be done over the Internet. You need an API so that your website running in your Internet browser, can talk to the server to call the services that get the data to display, and call the services that have the business logic in them. When you click a button on a website, a request goes off to another computer somewhere in the world, which is processed, and then the response comes back. The API describes how this can happen: it’s a contract.

    Once you’ve built your APIs, you can build the user interface. The user interface is the pretty bit you see when you download an app from the App Store, or when you visit a website. When you visit a website, the user interface is actually downloaded and it runs on your computer, in your Internet browser.

    With a website, the user interface will be built in code that’s very different to the code that runs elsewhere. Because web servers execute millions of requests, their code is highly optimised. Because your Internet browser needs to support millions of different websites, developed by millions of different developers, the code is designed to run on almost any computer.

    Then, when you’ve written all this code, you need to set up your infrastructure. You need a server, you need to connect it to the Internet, you’ll need to connect your domain name to your server, you’ll need to configure the server with website hosting software and the database, you’ll need to protect your server against hackers, you’ll need to deploy your code onto your server. Then, people can visit your domain by typing www.yourdomain.com and the user interface code will be downloaded to their computer’s Internet browser, and then the API on your server will be called to get the data it needs. Bingo! Your software is live.

    Just getting a basic website running requires you to be:

    • A system administrator (a.k.a. “sysadmin”) so you can configure the server
    • A security specialist (a.k.a. “pentester”) so you can protect yourself from hackers
    • A networking specialist, so you can configure your domain name, load balancing, traffic routing
    • A database administrator (a.k.a. “DBA”) so you can configure the database
    • A serverside developer (a.k.a. “backend dev”) so you can write the service code
    • An API designer, so you can define the interface contract between backend and user interface
    • A web designer, so you can make the website look all pretty
    • A front-end developer (a.k.a. “UI dev”) so you can write the scripts that control the user interface
    • A mobile developer so you can make an iPhone or Android app that does what the website does
    • A QA engineer (a.k.a. “tester”) so you can make sure the damn software works
    • A release manager, so you can package up your software and deploy it
    • An operational support engineer, so you can diagnose and fix problems when they occur

    That’s 12 different roles, or “hats” that you have to wear. Also, bear in mind that all your users care about is what colour the buttons are.

    If you’re a “full stack” developer, you’re highly in demand, because you can take a piece of software from an idea, to something that actually works and can be used by people anywhere in the world, via the gift of the Internet.

    Do you notice that none of those roles are “programmer”. There is no such job as programmer anymore.

    Back in the 1970s, you used to ring IBM up and they would wheel a dirty great big cabinet into your basement, and then a zillion wires would connect every “dumb” terminal in the building to it. The dumb terminals would just display on their screens what the mainframe would tell them. Essentially, it was just one computer that had hundreds of monitors, and hundreds of keyboards.

    Programmers in the 1980s had everything they needed all in one box. User interfaces were just green text on a black screen. There weren’t buttons to click on, that could be different colours, so nobody had to waste their time changing the colour of the buttons. There weren’t pretty graphics for people to argue over. There was just green text on a black screen.

    Because everything was on one box, everything was the same computer code. The data and the code and the different parts of the system were seamlessly interconnected. There wasn’t computer code flying around over the Internet, being executed in billions of different Internet browsers all around the world. There was just one blob of code, running on one computer, with hundreds of users. That was programming: writing programs to run on one computer, not billions.

    Programming’s not even that hard: if this, then that. That’s about the gist of it. If you know what the words AND, OR and NOT mean, you’re well on your way to being a programmer. If you can write a list of instructions for another person to follow… that’s how you become a good programmer. You just get really good at righting really good instructions for a really stupid person to follow.

    IF you see some gold THEN go and pick up the gold

    Looks pretty easy, right? Well, then you find that your program doesn’t work very well when the gold is on the other side of a Plexiglas window. The automatons following your instructions are going to get stuck on the “go” part, and will find themselves just walking on the spot, with their nose pressed against the glass, trying to get to the gold that they can see.

    Fast forward to the present day, and you might have the situation where your website looks absolutely awful because granny is still using Internet Explorer, but you only tested your code in Google Chrome. We have the situation where your website works perfectly fine when one person is using it at a time, but when millions of visitors are trying to access it at the same time, they’re all treading on each other’s feet and the whole thing falls in a heap.

    A lot of techies want to be programmers, but programming is such a tiny part of anybody’s job. If you hire a bunch of programmers, and they all insist that they only want to do programming, you’re never going to have a website.

    If you hire a bunch of web designers to build you a website, you’ll have a very pretty looking thing, but it won’t work very well. It’ll be fake. It’ll be window dressing. It’ll be a film set, where the buildings don’t actually have anything behind them: they’re flat fronts, propped up from behind.

    Film Set

    If you hire a bunch of back-end developers to build you an application, you’ll have a beautiful set of services and APIs, but you won’t have anybody to tell to change the colour of the buttons. If you tell the serverside developers how important it is that the button colour gets changed for the millionth time, they’ll just say “yeah, yeah, yeah… I’m writing down on my invisible TODO list”.

    So, you hire a full-stack developer, because they can do everything. Trouble is, they’re all a bit mental.

    If you can do everything all on your own – you can wear 12 different hats and context-switch between them – then you’re going to be driven mad if you have to work for somebody else.

    Even though I can do everything, it’s not like I should do everything. It’s not healthy, to have constant interruptions, and to be pulled from one thing to another all the time. In fact, it’s distinctly unhealthy.

    The only way that a full-stack developer can make any progress is to work really, really quickly.

    If you throw together a fully working application in the blink of an eye, you can get it done before anybody asks you to change the colour of the damn buttons. These herculean efforts are incredibly draining. Holding so many different competing tasks, and also the big picture, in your head, while working as fast as you can… that’s exhausting.

    Most software ends up in the bin anyway, so you might as well throw together these hastily built applications, that at least prove that things can be done, technically. There’s already too much useless vapourware crap out there that doesn’t actually do what it purports to be able to.

    And so, I end up working on project after project that’s clearly going wrong. I hastily cobble something together. I get something working end-to-end. Then, I’m burnt out and I have to take the money I’ve earned and go have a lie down in a darkened room.

    I actually don’t think software can be built without some nutter who’s actually going to fill in all the blanks and prove out the concepts. Every important computer system that I’ve ever worked on has had one madman who’s single-mindedly taken the project to the point of MVP – Minimum Viable Product.

    It’s unhealthy for your moods, to be expected to sprint as fast as you can, and then reap the rewards but be burnt out, but it’s certainly lucrative and a good career strategy. The financial incentives can’t be ignored. Also, if you’re a complete-finisher personality type, it’s the only way you’re ever going to see a successful IT project, because so many people are happy to bumble along until the project eventually goes so far over budget and has spectacularly missed its deadlines, that it gets cancelled.

    My current project – which is getting cancelled because it’s over budget and late – has been slightly better for me than other projects have been in the past, because I just concentrated on making sure my team was on time and on budget, instead of thinking about the overall project. Net result, I’m out of a job again, but at least I’ve got a happy customer and a good reference, plus I’m not totally burnt out. It’s a damnsight easier to only think about my 1/8th of the project, rather than feel responsible for the whole thing.

    God knows how I’m going to reconcile my personality – a completer-finisher – with IT’s staggeringly bad track record of ever successfully delivering projects on time and on budget. My health is suffering as I’ve tried to single-handedly get projects back on track, and I never get any thanks when I do that. I’m not saying I’m a hero. I’m just saying that I don’t like to bumble along and fail.

    Although I can do full-stack development, I don’t think I should because it’s just too much stress, being spread across 12 different roles. I reckon I’m going to look for some kind of development manager job, where I can have more management input into the way things are run.

    It’d be interesting to know what my mental health would be like without the kind of external pressure to rush, rush, rush. It’d be nice to work on a project where I could take my time, take pride in my work, do the things I’m good at. Do those projects even exist?

    I think it’s the engineer’s curse. “Can you do this?” is always answered honestly. Yes, I can probably fix your damn car, but should I really be doing that if my skill is as a software developer? “Yes I could, but I’m not sure I should” is the correct answer, but engineers aim to please. So few managers understand that it’s a dumb idea to ask their capable engineers to do everything and anything, and expect them to spread themselves so thinly.

    Even though management doesn’t agree with me – too frustrating and boring – at least it gives me the opportunity to throw a bubble around my development team and protect them from bad managers. At least I can create the kind of culture that I’d like to have, as a developer, for my team.

    It’s hard to know how to balance your skills, your needs, your values, and the fact that life’s a lot easier if you’re paid a lot of cold hard cash.

    Anyway, it’s all rather academic until I’ve dug myself out of the debt hole.

     

    Tags:

  • Take This Tablet 3 Times a Day

    This is a story about prescriptions…

    Tablets

    Are you underemployed? Are you unchallenged? Are you jaded? Are you disillusioned? Is your existence meaningless? Are you lacking purpose, goal? Are your ambitions, creativity, ingenuity and resourcefulness being thwarted? Are the prime years of your life draining away, washed into the gutter?

    I want to write 3 times a day, at least.

    I need to write 3 times a day.

    I get to work, nearly an hour late. I have a quick 10-minute call with my team. Then, I have nothing to do until lunchtime. If anything is going wrong I try and fix it, but my whole job is to try and steer the ship strategically so we don’t ever get into trouble. I’d love it if a big crisis kicked off, but I’ve managed things effectively, so everything runs itself with little drama. Sensible, but boring.

    So, I need to write something in the morning to get me through to my mid-day break.

    I take a 2-hour lunch. I get away from my desk and go and read a book somewhere. Sometimes I sit in the park. Sometimes I sit by the river. I’m only supposed to take an hour for lunch, but who’s going to question it when my team are so far ahead of the project deadlines and the client is happy?

    Then, I need to write something in the afternoon to get me through to home time.

    I stay on top of any queries. I’m watching like a hawk in case there’s anything I need to deal with. One strategy that I’ve employed in the past is to let things build up and build up until there’s an artificial crisis that I’ve created, and then I deal with the backlog in a flurry of activity. Through this strategy of putting things off I made a depressing discovery: most ‘work’ is unnecessary and can be forgotten about. Nobody’s going to die if the crap that I do doesn’t get done.

    When I get home, I have pent-up frustration that I haven’t been productive. My energy and enthusiasm for completing tangible tasks with meaningful output, has been completely unmet during office hours.

    Sometimes I draw. Sometimes I make music. Sometimes I make a video.

    What I really want to be doing is writing. There’s nothing nicer than relaxing on my sofa with my laptop, brain-dumping. I have so much to say, and there’s so little time. Words come flooding out of me. There’s no shortage of things I want to write about. Researching what I want to write about means that there is even more to write about. Research sets off a chain reaction. The number of topics that I’m passionately interested in grows exponentially.

    When I get home, I take off my suit and hang it up. I put on my civilian clothes. I relax, but I’m still not quite in a relaxed mood. It’s not like I want to go out for a run, or to go out drinking or dancing. I’m not quite able to shake off the shackles of the rat race, despite the fact that the last thing I would ever think about doing is flipping open my work laptop or giving my project a moment’s further thought.

    My thoughts revolve torturously around “how am I going to get up and do it all over again tomorrow?”.

    Drawing, music composition, video editing… these things require a considerable amount of effort. Writing is something I’m compelled to do. Freedom of expression is important, and I’ve allowed myself to be completely free to write, when time allows. I do not self-censor. The only people whose identity I’m careful to protect are my friends. The only people whose feelings I consider are those who care whether I live & breathe. It’s remarkably liberating, not caring if some mean judgemental family member takes offence. It’s terrifying thinking that every word I write could make me unemployable, but so exhilarating to thumb your nose at a job you have total contempt for.

    A simplistic analysis might conclude that I have transferred my ‘addictive personality’ to writing, but doesn’t our society applaud the workaholic? The serial entrepreneur who puts him or herself through enormous stress is lauded as a captain of industry, an engine for growth, a valued member of the economic community. Whatever I do, I’m unlikely to approach it half-heartedly. If I’m going to work a job and make money, I’m going to work as hard as I can, and make as much money as possible. If I write, I’m going to write until my fingers bleed and I have to be prised away from the keyboard.

    Society applauds my bipolarity. Not so much the depression, but the fact that I can achieve ‘overnight success’ during my hypomania means that I have no shortage of achievements in my portfolio. My shrewd opportunism means that cash windfalls have always carried me through the inevitable crash in my mood.

    In fact, the whole working world is structured to celebrate the person who does the heroic big push to meet the deadlines. The steady eddies who just quietly get on with their work, have nothing remarkable to help them to stand out from the crowd. Even the idea of working at the level of intensity that we do in academia and employment, is destabilising. Cramming for exams, dealing with unrealistic workloads, and then collapsing during the holidays, barely recovering before the next painful bout of work or study. Who cares if your nerves are frazzled, as long as you’re getting the “A” grades, right?

    The project I’m working on is being cancelled, because it’s failing. My team is way ahead of the deadline and our part is the big success of the project, but the other 7 teams have failed. It’s a big mess. An expensive white elephant. A big embarrassment for the consultancy and the end client.

    My attitude has been completely different to the projects I have worked on in the past. Normally, I don’t care what my official role & responsibilities are. Normally, I go and find the biggest fire and try to help put that out.

    I decided to adopt the attitude of focussing only on my responsibilities. I decided that I would concentrate on the job that I’d been originally been asked to do. I didn’t go looking for trouble. I didn’t tread on anybody’s toes.

    The net result is that I have happy bosses who are overjoyed with my work and I’m getting a good reference, but the overall project is a failure. Whether or not I would have been able to make a contribution to the success of the wider project is debatable, but I do have a track record of helping to turn around late or failing projects. I’ve made a habit of running into the burning building when all others are fleeing for their lives.

    It’s so bizarre and surreal that I’ve spent 4 months keeping a low profile, writing, doing as little as possible, and I’m far more appreciated than when I was working 14 hours a day, 6 days a week.

    I used to get rung up routinely every weekend, to run conference bridges and orchestrate things on the failing project I worked on before this one. When shit was hitting the fan, I was there rolling up my sleeves and at least trying to be a calm head, even though I obviously claim no credit for the hard work of my colleagues.

    That previous project ended with me finding out my security pass and access to email had suddenly been revoked and I was persona non grata with the senior management team who had previously been begging me for my help.

    This current project is finishing with the work that my team have produced being lauded as some kind of ‘jewel in the crown’. I’m being hailed as some kind of amazing manager, when in truth all I’ve done is sit unobtrusively in the corner of the office and write my blog.

    I’m certainly one of the highest paid writers that you’re ever likely to meet, but yet I was hired to run a software project, not to write.

    For all those people who say “art is just a hobby” you’re wrong. I spend the bulk of my time and effort writing, and being an IT consultant running a software project has been a little side project for me.

    People walk up to my desk to ask me a question, and I quickly minimise what I’m doing. I then give the first answer that pops into my head. My whole body language seems to suggest that I’m very busy and my time is precious, so there isn’t really a culture of lengthy discussions and debate in my team. It might sound horribly autocratic, but it certainly seems to get the software built and my team report a high level of job satisfaction. There is actually a great level of teamwork and mutual support in my team. The language we use with each other is very positive and complementary. We spend time applauding each other’s efforts and celebrating our achievements.

    So, I’m torn. Clearly I’m doing something right. It just feels so wrong.

    Imposter syndrome means doubting your skills and abilities. I feel like a double imposter, because not only do people tell me I’m doing a good job, but I know that I spend most of my time writing my blog.

    Things are coming to a head even more in my final week. My team are pulling together pieces of work that I asked them to do as part of a strategic plan, and it’s working. In the final analysis we will finish up with a piece of software that’s amazing quality and yet neatly packaged up to be thrown in the garbage. My team will all go off to new projects, knowing how to follow industry best practices and having seen them successfully implemented.

    So many things in software get hopelessly botched: Agile project management, test-driven development, code quality, technical debt, continuous integration, release management, production stability, automated regression testing and intuitive user interfaces. Even for me, it’s felt like a dream to see that some of these things can be achieved in a corporate environment.

    My usual attitude of agreeing with bosses – “yeah yeah yeah” – and then just doing things the way I was going to do them anyway is unchanged. The only difference this time is that I’ve used my spare capacity to work on a personal project – this blog – instead of trying to think about the wider project.

    It’s quite exhausting – faking it, looking busy, watching out for anybody who might look over my shoulder – while also attempting to alleviate the boredom and fight the uncomfortable feeling of knowing that you’re being unproductive, wasting time.

    On the face of it, it looks like a good prescription for stability, financial success. I’ve turned up to work every day. I got paid every week. What more could you want?

    However, how sustainable is it really, to live such a lie?

     

    Tags:

  • Micromanagement

    This is a story about getting promoted at work…

    White collar worker

    I can wear pretty much whatever I want to work. Some of us techies wear jeans and t-shirts. Some people wear fashionable trousers and tops. I wear a white collar. It sends a message: I’m an idle manager, and I’m not going to roll up my sleeves and get myself dirty.

    How do you get a promotion once you have become skilled at your trade? Once you have mastered your chosen profession, how do you keep growing in your career?

    A handful of software engineers, programmers, web designers, hackers and people who are generally skilled in the dark arts of making computers do magical things, will have the good fortune of being promoted into management positions. It is not a logical progression.

    One of my friends who is a startup founder talked about how “lucky” his engineers were to receive a good salary for their job. He talked about the wages that he pays as if it were an act of charity, and his employees were fortunate to be able to write code and get paid.

    I can only imagine that people who shuffle paper around their desks and sit in tedious meetings all day long, are jealous of the people who actually get to make stuff. I can certainly vouch for my frustrations at being away from the coal face. I’m so bored, with nothing to do but ‘manage’ a team. Management is horrible.

    I’m in an interesting position to be able to compare myself with my peers. On my current project, there are 8 teams who are working together to deliver the final end product. This means that I have 7 other managers, all of whom started work at a similar time to me, to directly compare myself with.

    Myself and the other 7 managers deliver our work in 2 week chunks, with a demonstration to the customer at the end of it. We demonstrate the work that we have completed in the preceding fortnight. The customer then either accepts that the work is up to the expected standard, or rejects anything that they are unhappy with. Also, it’s quite possible that not as much work as was expected was delivered. Failing to meet your delivery commitment, and missing the deadline, is something that is very common on IT projects.

    I’ve worked on the project for about 14 weeks: 7 two-week chunks. The team that I manage has delivered on their commitments for 7 fortnights in a row, and the customer is very happy with everything we’ve done.

    The other 7 teams have consistently missed their deadlines and have a number of things that they have demonstrated that have not met the customer’s expectations.

    So, what’s the magic trick? What’s the secret behind good management? I must be managing the hell out of the members of my team, right?

    Wrong.

    I’ve been developing software for the best part of 20 years, and my biggest problem is with micromanagers. Managers are so keen to be seen as adding some value, that they can’t help themselves from getting involved with things that they’re absolutely clueless about.

    IT projects used to be run by project managers. A project manager is a jerk with a clipboard who’s attended a week-long training course in PRINCE2 (Projects in Controlled Environments) and has then gone tear-assing around town, botching every project they’ve ever laid their hands on. Project managers are a pointless waste of space.

    So, along came a practice called Agile software development. From Agile came the idea of a Scrum Master. A Scrum Master is supposed to be one of the developers, who knows the Agile methodology and can help to organise the team. Scrum Master is not as job… it’s a role that one of your existing development team has.

    Unfortunately, that left a load of useless project managers on the scrapheap.

    All the project managers then paid to go on a week-long training course to become Certified Scrum Masters. They then returned to the same companies where they had been screwing up the IT projects before, and demanded that the projects hire them as “Scrum Managers” to do full-time “Scrum Management”. They then went about doing everything they’d always done, just the way they did it before, and making a balls up of every IT project.

    I’m a bit different. I crossed out the words “Development Manager”, “Architect” and “Software Developer” from my CV and resubmitted it to an employment agency with the words “Scrum Master” substituted. I then had the shortest, easiest interview of my life, and was immediately hired to be a ‘Scrum Manager’.

    Since then, I cancelled every meeting that my team were expected to attend, banned anybody from approaching my team members directly, and then left them alone. I left my team all alone for 14 weeks. I don’t hassle them. I don’t try to ‘add value’. I don’t try to get involved. I just let them get on with things.

    So, am I slacking? Well, if my team escalate an issue to me, I work to try and get it resolved, but otherwise I leave them alone. If my team need something they don’t have, I try to find it for them. I try to think about what they’re going to need in future, and make sure it’s ready before they need it. Other than that, yes, I suppose I AM slacking.

    If somebody said to me “Nick, I need you to justify your job. Show me what work you’ve done” then I would find it very difficult to actually point to something more tangible than saying management-speak bullshit like “I’ve facilitated the productivity of my team”.

    Results speak loudest though, and I know I’m never going to get a grilling from my bosses, because my team are happy, productive, and they keep hitting their deadlines with high quality software that the customer is prepared to pay for.

    It’s incredibly boring and incredibly frustrating, sitting on my hands. My team show me stuff, and my natural instinct is to try and think of something that could be improved. My natural instinct is to understand precisely what each team member is doing, and why. My natural instinct is to try and tell people what they should be doing, how and why. I have to fight all these instincts.

    Sometimes, my team will come to me because they want a decision. My natural instinct is to have a discussion. My natural instinct is to understand all the pros and cons and debate them. I don’t do this. I just make a decision and then everybody gets on with it. I might make the wrong decision, but as long as I’m right more than I’m wrong, then we’re winning.

    And we’re most definitely winning.

    The other 7 teams are unhappy places to be. There is a huge problem with staff turnover in the other 7 teams. Lots and lots of people are taking time off sick in all the other teams, except ours. My little team seems to be a happy oasis of calm in a sea of stress and accusations of blame.

    Just about the only thing I do with my day is to spend 10 minutes complimenting each team member on the work that they’ve done and thanking them for their contribution. I spend a bit of time apologising for any frustrations there might be for things not going perfectly, and a bit more time reassuring everybody that I am listening and trying to improve things. Other than that, I leave everybody alone.

    Every two weeks, the team get to show off what they’ve done, and every two weeks they have a big push and manage to get everything done to a high standard and give an impressive demonstration of their work to our customer. My only job is to be there to shut the customer down if they start asking why this or that hasn’t been done, when we never said it would be.

    We don’t underpromise and overdeliver. We make a realistic commitment for the work we’re going to undertake, in agreement with both the customer and the team, and then we get on and build it. Then we demonstrate that we did what we said we were going to do. Nothing more. Nothing less.

    What’s the role of management in all this? I haven’t really figured it out. I feel terrible. I feel like a fraud. I feel like I’m getting paid money for doing nothing.

    But doing nothing seems to get software built.

    Nobody likes to be micromanaged. Nobody likes having somebody breathing down their neck. Nobody likes to feel they’re not respected enough to be allowed to get on with their job. No professional is going to thank you for trying to interfere with their field of expertise. Nobody wants to have to explain their shit to a goddam manager.

    Software should be like a delightful magic trick.

    It’s a recipe for success that’s working brilliantly well with my team, as proven by the numbers and the direct comparison with my peers: the other 7 teams, who are under-performing and unhappy.

    However… I’m not happy. I’m bored.

     

    Tags:

  • If You Read This I Will Have To Kill You

    This is a story of “greedy, lazy, incompetant people who got found out”…

    Fear and Loathing in 8CS

    Justice is a funny thing. So is Karma. Things will always catch up with you. “My name is Earl. I’m just trying to be a better person”.

    I might not particularly agree with the Patriot Act, but I agree with the punchy tagline that was used to sell a lie to the American people, who were still scared and reeling from the biggest terrorist attack on home soil: nothing to hide; nothing to fear

    However, I have a job which I need to pay my rent, but someone who isn’t me (Earl) was working with a colleague who had his/her contract terminated today. Here are some more words I heard from Earl:

    “I had asked to be moved from one scrum team to another due to a difference in style and approach from the way I like to do things, which has always been quite successful for me. However, it’s not in my remit to tell other people how to do their job, so I asked if I could work with the a person who seemed to be doing things more in line with my expectations.

    There then followed a blissful two days of productivity. The business seemed happy. The product owner/CIO seemed happy. Us developers were overjoyed and we were high-fiving and walking around the office with big grins.

    We decided to go out for lunch as a well bonded happy team, at the suggestion of our scrum master. But he/she never showed up. As we sat there at lunch, we all agreed what a great guy/girl he/she was, and that we wanted to support him/her from the inevevitable management pressure that was going to fall on his/her shoulders.

    We were surprised that our colleague didn’t join us for lunch, especially as it was his/her idea. We had left a note and tried phoning him/her.

    Over lunch we discussed how ‘damagement’ (management) were not really interested in knowing the truth, and in fact didn’t want to know it, as it would undermine plausible deniability.

    I observed that a couple of people had been asked if they would like to consider other opportunities in light of the increasing and relentless pressure. I wondered whether I might have been guilty myself of precipitating one of the scrum masters’ untimely departure. It was almost an open secret that I thought he/she was a micro-managing waste of space.

    I had actually been one of the people who was asked to consider other opportunities. I nearly laughed in the face of the person asking me. The irony of it was beyond belief, given this person’s dependence on me during the previous weeks. I stood my ground and asked him/her to resign instead.

    This kind of brinksmanship must be going on all the time between these equally incompetant fools. Knowing that I was competant, it was not brinksmanship for me. Instead I felt confident that the project and the client needed me more than I needed the contract.

    You can’t bluff a poker player who is holding the nuts – the very best possible hand available from the cards that have been dealt. It’s a simple matter of memorising the odds for all the possible hands, and then your play becomes automatic: you know almost immediately when you should fold.

    When we got back from lunch, I went for a pooh. I sat on the toilet, looking at Facebook and taking my time. I was relaxed and enjoying my job again, for the first time in ages, after having been empowered to do my job and make things better.

    I came back to my desk, and my team told me he/she was gone. Immediate effect. They had got rid of him/her while we were all at lunch, with that empty chair at the dining table.

    We speculated during the afternoon that the reason for termination was a lack of fear. Our departed colleague was rumoured to have no mortgage. He/she was too honest. Too fearless. He/she wanted to do the right thing.

    I liked him/her, even though many people didn’t, seemingly for intangible reasons, unrelated to whether they could do their job well or not. His/her face didn’t fit it seems.”

    Anyway, I’m not really able or willing to comment, given my position on a sensitive, high-profile project that I can’t talk about, and would never talk about, given my professional duty to my client. I will say this though, of the attitude of me and my colleagues. We care very deeply about the needs of our client and customers, and we always put those needs first, often ahead of our families, our health. We are passionate and dedicated, and excel at our jobs, under the most intense pressure and stress.

    We are all trying to be the very best we can possibly be. We need to be. The bank is “rotten as shit” as the Department of Justice will attest. $1.9bn fines don’t get dished out every day. We are turning it around though. I really like the CIO. I really like my team. I really like my job. I really like trying to save hundreds of thousands of jobs. We don’t get to do that in IT very often.

    [Picture has been removed by IT Security]

    Me in the office, wearing a rugby shirt, looking like I’m having a ‘good time’ despite having worked far too many 7-day weeks (September 2015)

    Tags: