How To Make Your Team Hate You #3

I was thinking about the colleagues I’ve legitimately despised (and it’s not just my opinion), and most of them have something in common: they have either been promoted, or told they will get promoted if they prove themselves, resulting in a change of behaviour. So here is story number 3, and hopefully the last one since I don’t have any more drafted up.

The Situation

I was once on a project where I was the only software tester. Usually, when it’s a proper project where it is going to span 3 months or more, then we would have at least 2 testers assigned.

I was well excited to show that I could handle this responsibility. The project went well, and I was well proud. That project was actually a prerequisite for something bigger, and yet again, I was looking forward to the challenge of the follow-on project.

Collectively, both projects were going to be a replacement for part of our software, but it was going to be phased over time. Therefore, it was important that the old version still worked.

So I looked at what the current system did and wrote all the features down. I then spent ages looking through all the Test Cases, comparing these to the features that I documented. Then I had to write the Test Cases that were missing. This probably took around a month of preparation.

Since the new version needed to do what the old one did, but might have done it in a different way, I basically had to duplicate every test, then start changing the steps accordingly.

Having this 100% complete test coverage worked well, and I knew people would be thankful for it in the future. Anytime a feature is changed, you know there are tests that you can run for your manual regression tests. I think every tester has been annoyed at some point; when they think a test should exist, but it doesn’t, so they have to begrudgingly write it.

I’ve done the work for them. I don’t think any other area of the system had this level of test coverage. No one can be annoyed about this can they? 

As we moved onto the second project, I was told another Tester, Barbara was joining the team. I’m not sure if I was told explicitly, or if I just heard rumours, but I’m pretty sure I knew it was the case that – if Barbara did well on the project, then she would be promoted to Test Lead. Based on my performance over the years, and based on the project I had just finished, I think it should have been obvious to promote me to Test Lead. Maybe I was slightly annoyed, but I don’t think that had any affect on what happened next…

The Conflict

So Barbara joins the team and looks at the test cases. She wasn’t happy. Despite having that 100% test coverage, the tests were “too granular”. She says that when it comes to testing a particular feature, we would end up adding maybe 10-20 tests from my pack. She only wanted to run 1 or 2.

So she starts complaining at me, telling me I’ve wasted my time and I need to rewrite them. She likes the idea of “end-to-end tests” where one test actually tests several features and could describe what a user would do over a 5 minute period.

For example, I may have written a test that describes how to create a document, then another test how to print a document, then another test on how to email a document.

Her way of testing would be to include all the instructions for these 3 features and put them in one test – since a user may log in, create a document, email it to someone, then print a copy out for themselves.

I argued that my way is better, because if there is a bug involving email, you can just pick out the short test involving email. I’d be annoyed if I had to test printing it when it has nothing to do with the email bug fix.

But that’s not how we did it in my old team!

Yeah, but you aren’t in your old team. You’ve joined this one, and this is our process.

She used this statement multiple times about different aspects of how we work. I kept on explaining how if we work “agile”, we are supposed to come up with a process that suits us, and agree as a team. This process suited us, or at least it worked perfectly well before she joined our team.

Yet she comes in, kicks off a massive fuss to try and put her stamp on the team, and bypasses the correct channels for these decisions; which would have been the Retrospectives. I would have been happy to debate it in a meeting, rather than her dictating what I should do in front of everyone.

What Barbara did next was – run off to her manager, who happened to be my manager as well. But because my relationship with my manager was simply a professional one, and Barbara was very chummy with her, then our manager instantly backed Barbara.

So then I had to plan out which features made sense to use after each other. I spent 3 or 4 days planning this out. I spent more days writing them. I only wrote about 7. How many test cases did she write? 

Zero. 

Didn’t practice what she preached.

I was fuming.

When it came to testing the new features, she often volunteered to test the easier items, and gave me the harder items. I didn’t mind, because if she wasn’t on the project, I would have just done them all anyway.

What was infuriating, was that the next day, she would chat some nonsense about how she was too busy so didn’t have time to test it, so then asked me to test it instead. So I’d end up doing all the work. It’s just that it would take longer because I’d finish my work and have nothing to do, then the next day, I’d have to do her work that she was supposed to do. So the result was that we had 1 extra tester in the team, but productivity had halved.

She did this for weeks. It wasn’t a one off. Often, I’d look at her monitor and saw she was sending personal emails, doing online shopping, or just looking at news.

Then when it came to the stand-ups, where we stated to the rest of the team what we had accomplished; she then claimed that she did the work.

I was fuming. How could she say that when I was standing there with her? It’s plagiarism, and absolute lies. I complained to my manager. She refused to do anything. I was so tempted to walk out.

I’d never had that feeling of not wanting to go to work before, but some days I just didn’t want to go. I actually started looking for new jobs.

Sometimes when Barbara was away from her desk, I’d be ranting to my team. We were a close bunch on the initial project, but it just didn’t feel the same way. Soon I was brought into a meeting with the project manager who seemed to suggest I should apologise and try and get on.

I don’t get it. We were all close and worked well together. We delivered a project successfully on time. A new team member joins. Testing productivity is halved. There’s massive friction. Who do you think is the problem? You could easily verify my claim that she wasn’t doing the work. The test case runs are audited. My name would be on every one.

It seemed that Barbara had just sweet-talked everyone and they were determined to promote her regardless. As a Test Lead, you are supposed to have testing skills, people-skills and some management skills. Barbara wasn’t showing any of it. She was refusing to run test cases and she was causing friction. Productivity of the testing side was lower than when it was just me on my own.

Epilogue

So what happened in the end? Well, I was a bit unsure what I wanted in my career. I initially wanted to move up the ranks as a Tester, but it wasn’t happening. I did get the craving to be a Developer, and considered becoming an Automated Tester. I requested a change of role to a Developer since the Automated Tester role didn’t exist in the company. I’d be in the same department, but I knew I’d switch teams so would be away from Barbara. I just had to put up with another couple of months working with someone I despised. 

I did get my internal move in the end. Barbara got her undeserved promotion. Years later she got made redundant. Better late than never.

For more in the series, see: How To Make Your Team Hate You #1 and How To Make Your Team Hate You #2

A Day In The Life Of A Software Developer #1

At the start of the year, I thought of a new blog idea. I could pick certain days to give a run-down of the day’s work, including some banter. I drafted this up before the lock-down when we were working in the office. I hoped to write a few blogs in the series before posting them, but that didn’t work out. I suppose I could still write some based on working from home, but there won’t be as much banter to write about. So here it is. Note, this was when I was in a team doing a Web-based project:

I get into the office and give my previous day’s work a quick test before I send a Code Review to my team. I load up the website, open the menu… the menu is screwed up and won’t open at all.

I couldn’t understand what happened. I’m sure this was working yesterday. I spent some time analysing my changes; I really can’t see how this has happened.

The Junior Developer gets in and I ask him if he can give me any ideas on how this can happen. “Oh, I saw this happen yesterday.

What? You saw it, and never said anything? You didn’t log it, or even post it on Slack for the team to see?

No, it is a minor issue“.

I was outraged. I’ve told him not to ignore issues. We are paid to make things work. Also, if it was logged, I wouldn’t have wasted time analysing my changes when the bug isn’t even caused by my changes. If a bug is logged, if someone assigns it to themselves, then you know not to waste time looking at it, because it is being investigated. If the issue isn’t logged, you can end up with 2 team members looking into it because they think it’s a newly discovered problem.

We end up finding the cause, and we correct it.

Someone talks about a Pop music concert involving the groups: A1, Five, Damage and 911. “Sounds like a traffic report“, Seth says. We all laugh.

It’s time for the Scrum Of Scrums. Dean is currently occupying the meeting room on his own, but on a conference call. Helen waits outside and debates with a nearby colleague if she should kick him out of the room. Josh says “maybe Dean is waiting for the Scrum of Scrums?“. Helen says it wasn’t the case. Dean sees them awkwardly queuing outside, so he quickly leaves the room. The rest of the participants for the meeting show up. A minute later, Dean comes running back exclaiming “I should be in the meeting!“. I laugh at him.

A colleague tells me about a massive rant on Slack about the poor communication from management. I read it. It is brutal, but they make a good point. The upper management have kept quiet, when they used to hype up projects all the time. Additionally, new staff members have been quietly hired, some have even quietly left. We used to get emails to welcome the new starters, and also got emails to arrange leaving parties for departing staff.

Shortly after, some guy I have never seen before is asking a manager, Tim, about the progress of some important bug fixes. When he leaves, another manager asks “who the hell was that?” Tim replies “he has been here for 5 months, he is the latest Project Manager”.

Well, that certainly validates the Slack rant about the quiet hirings. No one in my team knew who he was either.

I’m happy with my work, so I send a Code Review to my team. I check to see if there’s any outstanding Code Reviews that I can review. Last week, I had left a comment about lack of test coverage. The developer hasn’t bothered adding any more tests. I ask him about it, he seems to be playing dumb. I told him I would sort it. So that is tomorrow’s work sorted.

Stupid meeting times

I had a 30 minute meeting starting at 4:30 which overran by about 30 minutes – so it actually finished at 5:30. It’s a problem when I finish at 5, but that’s work I suppose.

The next day, I logged in 5 minutes late at 9:05. I received a message from the Tester on my team:

“are you joining this meeting?”

“What meeting?”

So I opened my emails and saw a request for a 9am meeting which was sent at 5:45pm last night. Ridiculous.

We have this concept of flexible working so the “core hours” are 10-4. This is because you can basically work 8-4, 9-5, or 10-6. Therefore meetings can only really be scheduled between 10-4 if you want everyone to turn up. A 9am meeting isn’t bad for me, but it is when you haven’t had the chance to even acknowledge the invite, and haven’t had a chance to even consider or act upon what was discussed the day before.

Wrong Rob

I was on annual leave, but there was supposed to be a meeting to update on my project. I knew that Rob could do the update himself because he had all the information to pass on to the managers. We have had multiple meetings with these managers, so they know who we are.

I received the following email about the meeting.

Hi,
We had Rob Anderson on the call just now but it’s clear we needed Rob Baker – I will reschedule as soon as possible.

Thanks
Danny

Brilliant. I assume it was simply clicking the wrong Rob in the address book. The thing is Rob Anderson attended the call and was confused what it was all about. I wish I was there to hear the conversation that took place. It must have been pure bantz. I give this the “Email of the Week” award.

Communications Fail: RCA

Another instance of poor communication:

Them: Hi

Them: (4 hours later). “Are you available? I need some clarification”

Me: “What about?”

Them: 20 mins later. “Did you fix this bug? <insert bug number>”

Me: “yes” (nervous about what is happening. Clearly it was fixed by me. I have a “Pull Request” linked against it, and I have added comments to the discussion and filled in the “Testing Details)

Them: (45 mins later) “Can you add root-cause analysis?”

5 hours and 5 minutes to tell me to do something. I had already added the information to the “discussion” section; they could have just moved it to the correct section, then informed me that there was a dedicated section I was supposed to fill in.

So frustrating.

Poor Communication

I love writing stories about poor communication. This isn’t the worst by any means; given that the conversation lasted 7 minutes which is quick compared to some other conversations I have been enraged about. The thing is, it is still too slow. I get the question 4 minutes after him initiating the conversation by saying “Hi”. It took a further 3 minutes to get the actual problem from him.

Why couldn’t he have just said:

Hey dude, when you checked in your code, did you encounter any test failures at all? I am getting these failures <insert link to failing build>.

Ideal Conversation

Then I could understand the problem and context, and viewed the build output to work out what was wrong.

Here is the actual conversation:

[Yesterday 5:38 PM] Andrew
Hi
​
[Yesterday 5:42 PM] Andrew
yesterday you checked in your code into the Main branch
​
[Yesterday 5:42 PM] Andrew
did you face any build errors
​
[Yesterday 5:43 PM] Me
No. It wouldn't have checked in otherwise. What's the problem you're having?
​
[Yesterday 5:43 PM] Andrew
okay..because we are getting some build errors
​
[Yesterday 5:44 PM] Andrew
just wanted to ask you
​
[Yesterday 5:44 PM] Me
What are the errors?

[Yesterday 5:45 PM] Andrew
unit cases are failing 

<Shows screenshot of a message that says “There might be failed tests”. Pretty much useless>
​
[Yesterday 5:45 PM] Andrew
in Configuration Manager

It’s frustrating constantly receiving small messages with barely enough information. I shouldn’t have to ask him twice what the errors are after being told there are errors.

Turns out he had missed the post by a developer stating that everyone must merge Main into their branch. His branch was a whopping 2 months out of date, which is pretty bad practice.

Slack Analytics #2: September 2020

In Slack Analytics, I stated:

I have sent 1,700 messages for the entire year.

I was interested to see my output this month. I have been sending a lot of messages to my Apprentice, I’ve been engaging in conversations with managers and testers to discuss many of my bug fixes. Some new Apprentices joined and I have also been helping them. Also, since I don’t get to physically talk much, my Slack usage has gone up.

1,803 messages over 26 days.

In Slack Analytics, I also mentioned the highest number of messages sent by someone was “3,500 across the 18 days she was in the office”.

Again, she still leads the monthly charts, but this time has 3,709 over 21 days, so it’s basically stayed the same.

Now this is interesting. How can you make everyone work at home, yet her message count hasn’t increased that much? I was expecting to see several people have counts that eclipse this figure. 

Slack only allows you to see Last 30 Days, or All Time, so I don’t think I can get access to see the change pre and post lockdown. You would imagine taking away face-to-face communication will increase everyone’s usage.

I guess there are two ways to actually slack-off work. Using Slack to send banter messages to your colleagues, or just not working. So message counts could go up because more people can get away with not actually working, or it can go down because they really are slacking-off work.

The new Apprentices have been pretty quiet so far, and I would have thought they would be constantly messaging people since they wouldn’t have a clue that was going on. There’s a developer that is really quiet when we were in the office and he never seems to publicly post anything on Slack. I tend to forget he exists.

DeveloperDays activeMessage Count
Apprentice A22 286
Apprentice B21 525
Quiet Developer23429
Slack Analytics

Mid Year Review 2020

Intro

I’m not sure if the “end of year” coincides with the tax year, or if this “mid year” should have been a few months back, but the organisation of our performance reviews has been poor this year.

I think we were supposed to agree on some objectives back in January or something, which got delayed, I think this was mainly due to managers having to decide which crazy criteria we are judged against this time. I have ranted about different ways of evaluating performance, but they usually seem unfair and favour those who love to exaggerate or are a bit dishonest; which isn’t who you want to give pay rises and promotions to.

Anyway, the mid year review was booked in and I pointed out to my line manager that I have no objectives and haven’t prepared anything. Then he said “don’t worry, I’m just gonna free-style it”.

So much for being fair! In previous years we were told the strict process and consistency across the departments was for fairness. Now we have regressed for a pure free-for-all.

However, I’m not complaining because I hate the majority of reviews. I think you do have to be purely subjective when it comes to analysing developers, and I think you have no choice but to judge how well they fit in the team, which the manager should have awareness of. So I have more chance of finally being promoted under this unorganised style.

The Review

So my manager Chris, begins the meeting by explaining that he has got some notes on his own opinions:

“you’re the strongest developer in the team, or you are up there with the best”

Chris

and he has also asked for feedback from my colleagues.

“the biggest problem with working with him, is that he is too good”

Anonymous

“why isn’t he a senior yet?”

Colin

I know that one because Colin had personally called me last week and told me he had questioned it with Chris. No idea why Colin is lobbying for my promotion. 

I’m good friends with one of the Software Architects, and he has also been trying to influence Chris on my behalf. So I have 2 people protesting about it which is funny.

‘The promotion is finally here’, I thought. Then Chris starts saying that there’s been a bit of negative feedback too, and it’s my communication.

He said that I’m too cynical and sometimes put a downer on the outlook of the project. I wasn’t sure what he meant at first, but then I later realised that as a joke, when the slightest thing has gone wrong, I do say things like “the project is gonna be cancelled!”. Are people actually taking that seriously? It’s just over-dramatic comedy. Instead of Chris asking “how are your projects doing?”, he always asks “are there any projects on fire?” How is that any different?

I do wonder who doesn’t like my humour, since when I am on calls and say things like that, people in the team do laugh. Given that I write it on a lot of Slack posts, surely people understand it’s just a recurring joke; like a comedy sketch show. There’s plenty of witty humour too, not just recurring phrases. I bet it is Becky or someone with a similar personality because she just seems a bit out of touch with technology, and is a bit too serious. She also asks stupid things so I can be quite snappy in my responses on Slack, so out of everyone in the team, I bet her opinion of me is the lowest. At least I answer her questions, most people don’t even attempt to help.

Chris did say to maybe not joke around so much, apart from when I’m with him because he loves my humour.

Chris also started saying he needs even more evidence of my Senior qualities to take to Senior Management to persuade them of my promotion. Therefore I need to accept more responsibility and take the lead on projects.

I think I argued my case really well. Firstly, I said “how can I lead when we have loads of Seniors in the team?” They should be leading because it is their job to do so. The fact that not many show much leadership anyway means they are underperforming, and also I am held to different criteria. It’s also Chris’ job to decide who works on a particular project. So if I’m never the most senior in the team, then I can’t lead. That’s not my fault.

I also stated that I have been given these challenges like mentoring and I do show senior ability by doing all the Code Reviews, then nothing comes from it, not even a wage rise.  He kept on saying he needs evidence to convince the senior management, but I said that he has enough; he had said he regards me as one of the best developers in the team, and realises I was essential in dealing with all the recent urgent fixes that everyone shied away from. He can see that I’m one of the few developers that engages with the conversations on Slack/Teams. What is everyone else doing? Either doing their own work and they don’t care about the rest of the team, or they are simply chilling out.

He did ask why I thought I hadn’t been promoted in the past but others have been. I said others are probably a bit more firm in their demands and threaten to quit if they don’t get what they want, whereas I just get on with things. Also, the way we attempt to measure developer’s performance is just nonsense.

He did say to improve my communication, I need to show more authority and be more firm in my views. So I asked him for a payrise, otherwise I may have to quit!

Result?

It was funny how he said my humour was perceived to be a negative aspect, but I was running the Performance Review like a comedy show. I can’t help myself chipping in the humour. Although there is truth in my demand. If someone joined the company in my role, you can guarantee they would be on equal pay or higher, because I’m somehow still bottom of the salary band. He did promise to look into that.

He did conclude he would sort out my promotion, but when I pressed him on timescales, he refused to comment. No doubt I’ll have to wait another year or something daft.

Good Job

There have been a few instances of managers just regurgitating information, but when I think about it, I guess that’s just how the world is. Someone can report back to their manager and the manager has to trust what they say. Then that manager feeds back to their manager, and so on.  I guess you can’t expect them to verify all the information. That’s why you have a hierarchy and delegate, and get information fed back to you.

It’s quite funny when it reaches Director level, because I’m sure they literally have no idea what certain things mean because they won’t have more than a basic understanding of how software is developed. 

There was a really urgent bug fix, and I volunteered to do it. It wasn’t immediately obvious what the problem was, and I was getting a bit lost trying to debug it. Recreating it was easy, understanding why it wasn’t working was tricky.

Given the urgency, I requested help. I managed to get one of my close colleagues to help. He did point me in the right direction; he pointed out something I had overlooked. Then I came up with the theory of why the bug was occurring, and I was correct. At that point, fixing it was actually trivial.

He had to give feedback to my manager to confirm that he had helped, but he tried to make sure I got credit by saying that I did “a good job”. I know this because he screenshotted the Slack conversation and sent it to me.

I then received a message from my manager stating I had done “a fantastic job”. A day later, the Development Director messages me saying that she understands I have done “a cracking job”.

I love how the adjective basically increased in importance as it went up the chain: good->fantastic->cracking.

I did do a good job from a certain perspective. I did show good decision-making by requesting help to ensure the work was done on time. It definitely worked out for the better. 

Also, another developer should have actually picked this work up, but I detected his reluctance. It was one of those where it was quite late in the week, and we had to fix it with some urgency. He didn’t want the pressure/stress and responsibility. I did step up, and it was a bit more complicated than I initially thought, so I definitely mugged myself off there. 

I’d like to think I would volunteer for things like this anyway, but I am trying to be the centre of attention in order to force my manager to give me that promotion he hinted at. This has worked well, because the Development Director has been told about it.

O365 Integration

“Is it possible to get a few of us together to look at what areas of our software would be hit by Office 365? Another team is testing the integration and needs our assistance on the affected areas.”

Becky

In our software, we already integrate with Microsoft Word, but it relies on it being installed on that user’s computer. This request from Becky seemed like a random request, and there’s definitely a lot more information she needs to provide here.

So I asked “Have there been changes to our software to handle this? I don’t really get what this means. Instead of loading the locally-installed Word, is it going to launch a browser with Word in it? Does this include other aspects like Outlook, Excel etc”.

There’s loads of features of Office 365, do they want Outlook, Teams, Excel, Powerpoint or more to work? It simply isn’t going to work without us adding compatibility for it. Interacting with a Web Application (Word running inside a browser like Microsoft Edge) is completely different to interacting with a Desktop Application (Word running as a standalone software). The former will need to call an API/Web-Service, the latter is interacting with DLL files on the computer.

It turns out it was just the desktop Word application you can install via your O365 subscription. So it wasn’t really anything to do with O365 really. I found out because she eventually forwarded me an email. It had literally everything someone would need to answer her original question, it’s just that she didn’t bother sharing it

Additionally, the other team already had a list of affected areas, and what she really wanted to know if there were any other aspects they didn’t consider.

So why did she ask such a vague question, and why suggest we would be doing the analysis from scratch? 

What a waste of time. Absolutely infuriating. How many blogs am I writing about her poor communication?