Global Employee of the Year

Colin was instrumental

Director

Colin was a developer I originally wrote loads of stories about after he got unfairly promoted to Senior Developer. There was more injustice a few years later, when he found himself promoted to Principal Developer. Weirdly, his work best-friend always got promoted at the same time, or close to it, so he eventually found himself as a Technical Architect even though he is the shyest person that I know at work, and he has low productivity.

I’m not sure if Colin has some dirt on the Development Managers or the Directors but he seems to have so much influence now. My close colleagues also think it is farcical but laugh it off when I say he must have some dirt on the senior management. But how else can you explain these nonsensical decisions?

Colin had recently proactively tried to address issues that occur for users, and the CTO was impressed with him so gave him an interview at the monthly update presentation. Recently, he changed role from Principal Developer to Technical Manager, which I think is more a sideways move than a promotion but it’s interesting how he seems to get what he wants.

Near the end of last year, the Directors announced they would be hosting an Employee Awards event to celebrate people, or team’s achievements.

I’ve never been happy with these in the past because awards usually go to people whose managers are enthusiastic about such awards, or are charismatic enough to persuade the awards panel that their line-report/team deserves something. Or, it goes to a team that was assigned a project that was worth loads of money, regardless if it was actually a great success.

Anyway, our team (well, really it is a group of teams) got one of the awards even though I don’t think we have done anything particularly great, and many of the items Colin has been involved in have led to a few Major Incidents.

Furthermore, Colin got Global Employee of the Year.

Employee of the year!

Global!

HUGE impact on our customers through his amazing work following the issues we had earlier in the year, Colin was instrumental in most of the changes that have since been applied, and made such a difference. He led the team to ensure that everyone was able to contribute and fully felt supported and Colin’s high standards in “collaboration” demonstrate the best in our corporate values.

Director

So in multiple offices in the UK, India, and all those smaller companies we seem to buy out and then we don’t hear much from them – Colin is deemed to have contributed the best work last year. So he gets a promotion, a team award, and the highest-rated individual award.

Absolutely ridiculous. I think I have written this many times in the blog, but if I was someone reading it, and was familiar with previous blog entries about Colin – I certainly would not believe this was a real thing that happened.

I had a call with Colin and he said he has been really stressed this week. There were 3 Major Incidents, 4 people across the teams he is managing have resigned, and he has had to sack his work best-friend Technical Architect (no idea why this happened – it is rare that we sack people but it will be a blog entry if I find out).

You would think morale would be high if a team (or group of teams) were performing well enough to win an award. Yet we are 5 people down across these teams, another is on long-term illness, and I don’t think we were producing much when we were fully staffed. Colin sure has a job to do here.

Pointless Project Update Meeting

A couple of years ago, I was working on some new software but the management of it was an absolute disaster. Even though it was an absolutely massive project, I was often sat there not knowing what to do. Additionally, there were teams that were doing exactly the same work as each other. It was a mess, so eventually I moved back to work on our existing software.

This week, there was a project update demo by a team still working on this new software. I thought all the speakers were working on this feature, but it seems Jennifer might have been on annual leave or something because she didn’t understand what work was done.

After a few slides of their presentations, Jennifer interjects.

Jennifer : “How is this different from what Igor is doing?” 

(Igor is part of another team)

Luke: “I’ve had the conversation and I still don’t understand why this was brought in twice.”

Jennifer: “I don’t know what the use case is for the two versions.”

Mark: “We never got to the bottom of it, so we just cracked on and built what we got asked to do.”

Brilliant. So there’s multiple members of the team that were aware that another team was also making this functionality. Despite having conversations with managers, they still were none-the-wiser, so then they just made it anyway, despite knowing that one team’s work is going to be binned off.

I can’t believe a couple of years have gone by and they are still doing stuff like this.

Positive Discrimination

A few years ago, an “Employee Forum” was created to discuss Women’s issues at work. If there are issues like wage inequality, then I’m all for it, but I just didn’t understand why we formed this. I hadn’t heard any complaints, but I suppose they aren’t gonna complain to me. If anything, I think women are treated better at work.

I was thinking about this scenario recently which I’ve known to happen several times now. A woman is about to have a child, so they manage to take a full year off. 9 months for the actual maternity leave as a starting point. Apparently those 9 months accrue holiday allowance as if you were actually working, and any bank holidays during this time are also added to your holiday allowance too. So it ends up accumulating to around 4 weeks annual leave. Then they ask for 2 months unpaid leave and get it. May as well round it up to the nearest year, right?

Instead of worrying about returning to work and people being promoted ahead of them, they somehow manage to also pre-arrange a promotion, so they actually jump ahead of their team. They have 1 year less experience than their team, aren’t aware of things that happened at work in that year, yet get promoted ahead of them. Sometimes even going part-time too.

I’m not just saying this is unfair to men. There’s sometimes loads of women in their team, and yet they just have to work that year as normal, and might actually be denied a promotion because of this person that will return in the promoted role. It’s like we overcompensate because we don’t want to be accused of discrimination.

Now men cannot get pregnant, but what happens if they want a year off? One man wanted to see his family that lives in Australia, but he decided it would be nice to live with them for a year. He asks for a “Sabbatical” but gets denied. He is told that there will be positions available in his role in a year’s time, so he can just re-apply for his job. So as planned, he quits and goes to Australia. After a year, he returns to England, he comes in for the interview and gets rejected!

I don’t see how that is fair. He wanted 100% unpaid leave for a year, then to come back to his standard job. Yet, women get various pay for their time away: some full pay, half pay, and often a promotion with some scope for working less hours. Then they are taking time out of work to discuss “issues” in this Employee Forum.

I think both these reasons are fundamentally the same reason – you want time away for “family” and it’s much better for your mental health not to have to think about work. I’m not sure if it is the right thing to randomly decide these things, or seemingly decide based on gender.

Team Composition

Several months ago, new teams were formed and we were shown the proposed structure. I thought there were a few strange decisions.

When there’s a team of 8 people, what’s the chance that you would end up with 2 James’ and 2 Louises?

I swear managers like to go out of their way to be annoying :smile:

It’s almost like they think “how can we maximise the communication problems?

If I was choosing teams, I would notice this, and would swap teams to remedy this. I can understand it might not be possible due to job roles and skill sets, but I’m sure most scenarios could be avoided. I’m sure these teams were chosen randomly rather than having any rationale.

Another team had Jack and Jacqueline. I pointed this out to Jack and he didn’t think much of it… until some members of the team referred to Jacqueline as “Jack” and the conversation became confusing.

The team that I recently moved to involves a third party API which is locked down to only allow network traffic from the UK. (I don’t know why the test API has these extreme restrictions – probably unnecessary “red tape”). It should be obvious to managers that this team needs to be fully UK based, but their insistence of being inclusive meant they still added members located in India.

I was replacing a UK developer who left because he was asked to do everything – because the Indians couldn’t connect to this API. In the first week when I joined the team, I was busy working, when one of the Indians contacted me and told me to pick up a bug fix because it was high priority, and they wouldn’t be able to debug/fix the bug accurately/comfortably.

We had 2 fairly urgent bugs and I was being asked to do both of them, yet I didn’t know what the 2 Indian developers were doing in the meantime. No wonder the other guy left – the team’s composition is nonsensical, and the Indians are always going to use this excuse. I’m sure the Indians don’t actually want to be in the team though, they would be more comfortable being assigned to any other team. 

You would think creating teams is generally easy, but I suppose there’s a bit of complexity to it. I’ve never had the opportunity to propose a team structure. I’d probably say my method would be something like this:

  1. Pick the correct number of Developers and Testers, considering their ability and knowledge. Do they have experience in the areas the team is focussing on? Does their job title really reflect their true ability? No point just putting one Senior in the team if they don’t have Senior qualities.
  2. Consider their personality types, are there any leaders in the team? No point putting together loads of silent types. Conversely, you probably don’t want too many big personalities.
  3. Consider if there’s any problems due to their location (access to networks or physical locations, consider time differences).
  4. Consider how well people get on:
    1. If you have people who are really close and are productive, then it’s most likely a good idea to keep them together.
    2. Conversely, people that have caused conflicts in the past could be placed in separate teams. No point risking extra tension.
  5. Try and avoid having similar names. This gets confusing in both written and spoken communication. 
  6. You may be limited when people can start working in the new team. Presumably everyone is already working on something and will need to transition.

Mentoring #6

I am mentoring an Apprentice who has never done C# before and this is his first programming job. So this is a diary of some-sort of his progression and my ability to mentor.

The months have flown by, and my last Mentoring blog was back in August!

Back then, we were in different teams and I stated that I wasn’t going to be proactive in helping him since I had constantly given him advice, offered to spend time with him, but I didn’t see much effort on his part. Since he was in a different team – it wasn’t really my responsibility to help him progress with his team’s work.

Things have changed slightly since I got reassigned to his team (managers sure do love reassigning people!). I gave him a list of bugs to look at, which were (what looked like) easy ones. It is proper work to do (rather than working through tutorials), although hasn’t gone through the normal prioritisation process, so even when he fixed them (well with a lot of supervision from me), they are just now lingering in a code branch and won’t actually get tested and released.

I spoke to him at the start of December and said there’s going to be downtime as most of the team are off, and we end up having a “change freeze” where we don’t release anything to our users anyway. December is the perfect time to do his personal project and write as much code as he can without any expectation/pressure from any management or team members.

A few weeks later, I asked him what he had done and he said he was just “finishing off some online courses”. Which to me, should have taken a week at most and it mainly involves just watching videos. He said he would move onto his personal project next. A week later, I asked him if he had any code to show me or discuss and he said

I’ve been chilling out… it’s Christmas”. 

Apprentice

I really wanted him to get involved in the projects next year because I think January/February is going to be really busy. We’ve been putting off starting projects (although a few of them I actually had a look at in the December downtime, and prototyped a solution), but they will no doubt want to rush them out as they suddenly become “urgent”. 

However, since he has barely put the effort in again, he still is way behind the skills level he should be performing at – which means it’s going to be difficult to assign him parts of a project he can actually do.

Change to avoid change

Where I work, we go for long periods with barely anyone leaving the business, then we seem to be hit with several at once. There’s been a few people leave recently when we announced we would switch from the standard Agile process to SAFe.

With this restructuring, some roles did change but I think it was mainly people that weren’t affected like Software Developers.

I was talking to one of my colleagues, and he said 

“Why are people leaving? it sounds like we will still be using the same technologies”

Developer

The thing is, Developers will leave if you make them use different languages, and Developers will leave because they want to learn something new, so you cannot win.

I think some people may be leaving because they don’t believe our new software will ever get finished, then they have used the news of the process change as a final trigger to leave.

It seems quite stupid to me though – a change in management/process often makes people leave, even though leaving means you are dealing with a new management/process anyway in your new company.

It happened when we moved from Waterfall development to Agile. It also happened when we moved offices, and we have moved 3 times; even though it’s always been 10 minutes walk at most to the new location. If you come by car, it’s not even a problem unless the parking situation is different.

“OMG IT IS DOWN THE ROAD, I AM LEAVING to an office further away”

Stupid staff member

I remember with one office move, I was in the new office kitchen and talking to a Developer who was leaving. He said “I’m sick of these office moves”. I pointed out that we were literally standing in the new office, so he has already gone through the hassle of moving. He said he was only here because he had to serve his 3 month notice period. Yet he was moving to a new job that was probably further away from his house, and would more likely to have more job pressure because it’s very relaxed where I work. Also, since we had moved office, you could essentially guarantee we would stay there for at least 2 years because of the building lease. At a new job, you will more likely have to move offices within that time period.

In my mind, a change should be an encouraging aspect to make you stay, unless one of the changes has a negative impact on why you liked the job. In my experience, it seems a lot of people don’t see it that way.

Crisis Meeting

Apparently my employer has recently made a big deal and sold our software to a large group of users, but the users now want to reverse their decision based on other customer’s opinions of our software. Not sure why this group of customers only found out these opinions after making the deal.

We had a meeting with the new Head Of Development to discuss what we can do about it. The overall aim is that we need to repair our reputation: fixing major bugs, improving performance, improving the user experience in general, and making it clear to our customers that we value their opinion.

He initially stated that he wants more bug fixes, especially performance improvements and delivered in smaller, but frequent releases. He states that the current process doesn’t work and we should ignore it and come up with a new one.

Sounds great in principle, and a desired philosophy of Agile Development. However, Release Management stated it wasn’t possible to update the entire customer-base so quickly. This is partially due to the way some users work, and some contractual obligations. Both of these problems pretty much come down to the idea of essentially wanting close to zero downtime, so they want to choose a specific time to accept our updates, and they like this to be around once a month.

So the discussion turned to the development side. It seemed we were in agreement that we need higher-skilled staff to target these important bugs (we love throwing Juniors at these important issues), and we would also like to work in Domain based teams. Examples of this team idea is that you’d have one team that exclusively handles the Reporting module, and another handles Registration module etc. This way you can have a fuller understanding of all the configuration, features and the codebase; so can fix/enhance the software faster. Essentially you specialise, rather than going with the jack-of-all-trades master-of-none style. We also wanted more Testers since some teams have produced a lot of fixes recently but the Testers couldn’t get through it. To be honest, I expected that some Testers were just working slow and the fix isn’t necessarily to throw more staff members at the problem (just have a stern word).

The response from the Head of Development was that “the business” has decided on the team sizes and who is in those teams – and they won’t change. 

So to summarise – we are asked how we can make dramatic changes to the way we work, ignoring the current process… then get told we can’t do our ideas. We’d shot-down his suggestion, then he shoots down ours.

I think he shot down our suggestion because he is too focussed on the current process and structure, and he isn’t taking his own advice by ignoring it and coming up with a new idea. To be honest, it is easier said than done, and I think his way of thinking is – how to preserve the current in-flight projects? You can’t simply restructure the entire department without dealing with the current projects.

What you can do is just make the current project teams bigger and let them take the project and some bug fixes. With a bigger team, they can easily carry on with their project work, and with the extra people, they take on live Bugs, fixing “Technical Debt”, adding more automated tests etc.

I get confused how we get told these “Service Improvement” teams (teams that deal with bug fixes only) are the most important, yet it’s the Project teams that get the most experienced developers and the most attention. He has limited the “Service Improvement” teams to 20 developers with only 4 with Senior rank, one of which isn’t good enough to be Senior. Then most of the other developers are essentially Juniors. 

How can you deal with important bugs with a lack of talent? It’s frustrating that he arranges a meeting to ask how we can solve our way of working, but then he doesn’t listen to the feedback.

If he wants a quality product and to deliver faster, then we need the staff and process to actually achieve it.

Promotion Special

One reason I thought writing a blog would be good is that it would document my software engineering story to become a Senior Developer. That was always my ambition when starting out as a Junior Developer – to become good enough to be recognised with a fancy title.

An industry standard for Senior is probably 5 years experience, but that’s just a rough guide. I mean, 5 years of consistently being bad shouldn’t get you promoted. I’ve written about Performance Reviews in the past, and stated how the process never seems to work, or not for me anyway. So I think it’s been more like 6.5 for me.

Recently, I reflected on my promotion from Junior Developer to Developer in the blog Comparing to Others, and that was to build up to this one. Obviously you can tell from the blog title and the words that I have written so far – I have been promoted. Senior Developer. So let’s reminisce and discuss the movements over the last year or so

A few years ago, I was working on our upcoming software, but I was asked to return to the previous software I worked on, with a strong hint I would be promoted. In my performance review, my manager Chris then made some excuses why I couldn’t be promoted and hinted it should happen in January 2021. But in January 2021, Colin got promoted and I didn’t. He moved from Senior to Principal, so there should have been a free role available. My team members think I am a far superior developer to Colin, so how does it make sense that he is now 2 ranks above me?

My team members started being annoyed. I had people say to me they were frustrated I wasn’t being respected. Even Colin said he had been talking to the Head Of Development about how insane it is that I hadn’t been promoted.

everyone “technical” thinks you should be a Senior

Colleague Developer

and all the Spanish think I am a Señor

Me

I changed managers and my new manager said he would look into my claim that I was underpaid and would try to find out how to come up with a solid plan to also get me promoted. However, I had a performance review with him, and in the review, he read out the feedback my previous boss gave me, although Chris’ notes were vague. So he asked me to explain the “unprofessional comments”. I explained that I have a running-joke where I state “the project is in ruins” when theres a minor change to the scope. It’s an exaggeration and purely in jest, although someone in the team has raised a concern about it. I was really grateful for his response because he laughed and said the person that complained was wrong to do so. However the reason why I panicked when he first brought it up was – I remembered that I responded to Chris’ question on Slack a few days prior with the text “lololololol”. So I then realised that I hadn’t taken Chris’ comments on board whatsoever.

Months went by, and my new manager assured me he was trying his best to promote me but was just getting pushed back by managers. Eventually, after another team restructure, I changed managers again.

In my first one-to-one, my manager asked if there were any concerns I had with the company. I stated that I was underpaid and was getting overlooked on promotions so dropped hints that I would be looking to move on. A week later, he calls me and said he was “absolutely shocked” at how low paid I was so would be taking it to HR urgently because we can’t afford to lose great developers like me. He managed to get a £5k payrise although HR still insisted to underpay me for 2 months before they actually gave me it.

Another month went by and he confirmed I would be promoted. I stated in the past, HR don’t allow big payrises so would probably say I’d already had one and reject the request. He assured me he wouldn’t stand for that. He kept his word, although yet again, there’s a compromise. I get a further £7k but have to wait 6 months until they approve it. HR are just the worst. You would think they would know how to make staff happy. That’s their job, yet they treat people like numbers and not humans.

The good news is that I finally get a good salary and it matches the respect I get from colleagues. It’s not even a change in responsibilities either, so I got £12k extra for doing exactly the same job as before. I probably should have been on this wage/role at least a year beforehand though. Don’t get me wrong, I was grateful for my previous wage. I always remember the times I was unemployed and have known many friends to struggle on low paid/part-time jobs. It’s just frustrating knowing someone could easily join the company and be on a much higher wage than you, and sometimes you even hear underperforming colleagues boast about their higher wage.

The thing is, in the past, our performance reviews have changed several times and we have tried: filling in a form; interviews; filling in multiple spreadsheets and forms; manager’s opinion only – and you could say none of them have worked out for me. It was only when I essentially hinted at leaving did I get the promotion. It shouldn’t be this way. Great people can leave, and the most confrontational get their way. Surely, that is the worst system.

I think I can easily be happy with my job title and wage now. I shouldn’t be complacent because you never know what the future will bring. Maybe one day, I could even come up with an idea about how to fairly appraise people, because we obviously have no idea, and I’m pretty sure it’s a common problem in the industry.

Regrettably Paused

About a year ago, there was one employee that posted an angry rant about the lack of communication between managers and development staff when big changes were coming. The managers actually responded positively and said they will work on it in future. Well, it’s happened again.

It seems she was working in a subteam on a project, and her subteam was never told their project was on-hold. She heard the rumours/news from someone else, and posted this rant before the managers fully declared it to the department:

If a project is “regrettably paused” or abandoned in future, please would you consider announcing this news in the form of a department-wide meeting, inviting all those who were involved with it?

This gives people the opportunity to ask questions or make comments, much like you would if a doctor was giving you bad news.

Developer on a cancelled project

We have had a tendency to cancel projects, big or small over the last year. Some have involved my work where I had finished development – and it only needed to be signed off by Testing. 

Another manager made an unrelated post about them sorting out the project plans and bug fixes. They said there were “300 pieces of work in various stages of the software delivery lifecycle. We’ve decided to continue 189 items, reject 35, and move 76 back to the Backlog for further review.” I don’t know the details of these changes, but I really hope they haven’t cancelled loads of inflight work. It’s just demoralising to have your work cancelled, and a waste of time when it wouldn’t be much work to complete it and get the new features out to users.

Maybe there’s nothing you can do about it. If managers insist we want to follow a new process, shuffle the teams about, then the current work basically needs to be abandoned otherwise the new teams cannot form.

The Changes #3 – Tech Stack

Recently, we have a new CTO and a new Head Of Development. Like all new managers with power, they want to make their own changes.

In The Changes #1, I explained changes to job titles of Testers. In Changes #2 I explain that Developers are also affected.

Our previous management decided our upcoming software would specifically use the cloud service AWS, whereas the new managers want a “cloud-agnostic” approach (work with all the clouds!). So they want us to have the possibility of using one, or a combination of: Azure, Google or AWS – although the emphasis seems to be moving to Microsoft’s Azure. 

Currently, I don’t think there is much rationale for this. Everyone specifically learned how to use AWS, so will need some time to adapt to the differences. When people started learning about Cloud Technologies, the problem of “Vendor Tie-in” was raised and instantly dismissed by the previous management. It makes sense to ensure you have that flexibility, because if your provider increases their costs, then you can easily migrate if you had the architecture for it.

Another change is that they want every product to have their source code in GitHub. Maybe it does make sense to have all our products in the same place. The reason we have them scattered is mainly because our products were acquired by a series of acquisitions, so the original companies had chosen their own languages and technologies. However, our core, flagship product is already in Azure DevOps, and given that the main cloud provider is going to be Azure, surely it makes sense to keep it all in one place?

These changes to jobs, processes and technologies seem to have solely been decided by the CTO and Head Of Development. I feel like they haven’t discussed these ideas with the Development staff at all. I’m intrigued by what other arbitrary changes will be forced on us. With any change, I think you always have to ask yourself “what is the problem we are trying to solve?”. If you can’t explain the problem, then it shows you are making changes just for the sake of it.

Recently, I have been reading Sir Alex Ferguson’s “Leading” book and came across a great quote:

“There is no point suddenly changing routines that players are comfortable with. It is counterproductive, saps morale and immediately provokes players to question the new man’s motives. A leader who arrives in a new setting, or inherits a big role, needs to curb the impulse to display his manhood.”

Sir Alex Ferguson (ex Manchester United football manager)

I thought it was a very relevant and appropriate quote for this situation.