Social Media Policy

We were reminded of the Social Media Policy. I think this is a standard policy these days. We aren’t allowed to defame/criticise my employer online. If we do talk about work online, then we need a statement along the lines of:

“The views I express here are mine alone, and do not represent the views of my employer”

I’ll compromise and update my About page.

This Linux Problem Is Following Me Around

I had a nosey at another team’s Slack channel. There were a few team members complaining that things didn’t work on their machine because the commands were written for Linux and they had Windows.

Why was this a problem now? Their team had been together for a year. Well, a new team member had joined and he had used his “seniority” to introduce some new tech, written it with his Linux laptop and screwed his team over.

Then he replies something along the lines of “I don’t know Windows so I can’t help, but this is frustrating, so someone needs to do something about it because this problem is following me around“.

Well, dude, the problem is you. Stop setting up processes that aren’t compatible with your team members.

What I found interesting was that the complaints weren’t aimed at him. It was like they were following the “don’t hate the player, hate the game” kind of mentality… which I think was just because the developer has a fancy rank and they didn’t want to disrespect him.

It’s definitely his fault, and he should take responsibility to fix it. Maybe use a Windows computer; that is one solution.

Meetings At Your Desk Are A Problem

The Situation: We normally all work in an office, unless someone is working from home, in which case they will remotely connect to meetings. Due to Coronavirus, we are all at home.

One of the high ranking development managers makes an announcement:

I have had feedback from my teams that they are now finding they are at their desks for large parts of the day due to back-to-back meetings. 

I recommend starting meetings 5 minutes later, finishing 5 minutes earlier; ensuring a 10 minute break between all meetings.

Additionally, do not book meetings during lunch time. This is more important than ever.

Development Manager

Alright, let’s analyse this statement.

For him and his management team in the usual office scenario: they would be at their desks, then move into a physical meeting room for meetings which happen frequently throughout the day. That means they aren’t just staring at their screens, and also get a walk and change of location.

Due to the lack of meeting rooms (which have been slowly removed from us over time), and due to the fact that the Managers had them booked for all their meetings, Developers would then have to stay at their desk and hold a remote meeting instead. This meant that they are at their desks all day. They are at their desks programming, then stay at their desks for meetings. So this was a problem for most people in the office.

With the Coronovirus, everyone is now at home, and therefore everyone has to have remote meetings. We are all equal now. All the managers are all crying about being sat at their desks all day.

The reason why we (developers only) booked meetings during lunchtime – is when we needed a physical room, and it was the only time managers didn’t book their meetings. If anything, now we are at home due to Coronavirus, I think I don’t care as much about lunchtime meetings because I don’t eat consistently at home.

Do you think things will change when we get back to the office?

Or do you think – since the managers will be fine, they will forget about how the developers have to work at their expense?

WordPress – The 100 Post Special

I probably come across like I hate my job and hate my colleagues, but the truth is that it’s a safe job and has a very laid back culture. Most people are actually really nice and we do feel close to the developers in the close vicinity.

There are plenty of great developers who really know what they are talking about, but that’s not that fun to write about. There’s plenty of other blogs that write about great ideas and genius developers. My blog fills a gap in the market. I’ve read many blogs that describe people’s experience with Imposter Syndrome; where they reach a certain level of success but feel like they didn’t deserve it. I often write about people that have had a certain level of success, but definitely don’t deserve it.

Some people at work occasionally do/say stupid things, and when someone does do something stupid, then it plays on my mind and I probably over-analyse. It’s usually the same several people that I rant about anyway, so it’s more of a minority than a majority.

After ranting to my friends about it, it does feel good, but then I like to put it into text. It’s like a diary of all the good/crazy times and will be great to look back on one day.

I often check the view stats and see no one actually views my blog; which is disheartening. Well, sometimes I get one view now and then. I enjoy writing the blog though, so I carry on anyway. I’m finding it very therapeutic to put my thoughts down. Maybe one day, someone will find it, share a link, and then it could gain traction.

A few weeks back, I got a notification that someone liked one of my blog posts. I check the view counts, eagerly anticipating that 1 view statistic, and ready to bask in its glory.

0 Views.

I think I know why this is. I reckon if you go to my main page and view the blog, then it doesn’t count as a view because you aren’t on a specific page.

I always like using RSS feeds, so there’s loads of blogs I read without contributing to the statistics (since I’m viewing it inside some software). I probably should click through more and show my support, maybe even write a comment of appreciation on occasion.

It probably means a lot to bloggers because it takes a surprising amount of time to write each post. “Likes” and “comments” will encourage them to write more content, and try and write content that their audience enjoys. So if you are reading this, interact with my posts in some way. Also, show appreciation to other bloggers that you like. If I don’t know what audience I’m reaching, maybe your other favourite bloggers don’t know either.

Mistake

At lunchtime, I overheard a conversation from the adjacent table. We had a visitor from another office and he was talking about his life to one of the managers; Jackie.

The visitor explained that he had an older brother but there was a 7 year age gap between them. Jackie exclaimed:

“You must have been a mistake!”

Jackie

The “joke” there – is that there’s usually a 1 or 2 year gap between siblings when parents plan to have a couple of children. A larger gap could mean the pregnancy was unplanned.

What an awful thing to say to someone. Even if you knew someone quite well, this seems inappropriate. To say that to someone you have just met; its unfathomable. To say it to someone at work; is probably a sackable offence.

The Junior Contractors

Recently, we have hired a bunch of Junior developers via a Bootcamp company. This company basically takes people on an intensive training course, then they find them work. So they are essentially a contracting company, but are sending out fresh-faced developers to their first jobs. Let’s refer to them as Training Company.

As far as I understand, the intention is to hire them permanently, but my company is prepared to pay the premium for the Training Company to educate them.

I think to preserve their own interests, the Training Company give them assignments/exams to complete. This way they can understand how good they are and quickly reassign them if they are let go by their current “employer”.

So for the past two weeks, these Juniors have either been studying for an Agile exam, or writing an essay based on work they completed, but they are doing it in company time, not in their own free time.

So the way I see it; they are getting paid by my employer to do work for the Training Company… with the Training Company pocketing a fee.

They are completely mugging us off there.

Yet, if the intention is to employ them permanently after the initial contract; then all these assignments the Training Company give them are pointless. Unless of course, you can prove that these assignments and exams are actually beneficial.

One of the Juniors comes back from the exam and says they have failed. They then go up to their line manager and say “was that a retrospective I led last week?”, the line manager brutally replies “no, it was a refinement session; that’s exactly why you failed”.

Exposing a Secret Team

There’s been quite a few times where projects have been scrapped, or switched to a completely different team.

A project which is making a library (that I reckon will be used by every team) quietly got abandoned, then reassigned to a different team. The reassignment wasn’t communicated either. I found out just by browsing the repositories, and saw one with similar functionality.

My team felt the need to use such a feature and so we posted in Slack asking if anyone had plans/advice. Later that day, a big announcement was sent out, stating that people will need this, and teams should contact them for further info.

We contacted them for further info, then they said they don’t have an API because they didn’t consider people would want to use it just yet.

Are they having a laugh?

Why does it take people to ask about a project to then publicise the existence of it. Then it turns out it wasn’t even ready for other teams to even consider using.

The general advice to teams was to proceed “API first”, so that way dependent teams aren’t blocked. Then this team, whose entire existence is to work with pretty much every team – comes out with “we didn’t consider people would want to use it just yet”. Why were they working in secret?

Anyway, that’s even more work to block on our backlog then.

Communication Channels: Pass It On

In our office, we technically have 2 companies but we are part of the same parent company. We have separate Slack accounts so cannot contact them through there, but we can contact them via email groups. Big announcements go on the Intranet for everyone in the group to read.

For some reason, occasionally, people decide to send communication in a “Pass it down on a ‘need to know’ basis”.

There were some big changes to the computer network and this was sent from IT to the Head of Development. He then sent it to the manager below him. He then sends it to several managers below him. They then send it to the people they manage. I finally get the email.

How long did that message take to be forwarded on that many times? Also, it only seemed like it was sent to people in my company. What about the other guys who work in our office?

I ask them if they have heard the news. They hadn’t, but would be massively impacted by the changes. If I hadn’t told them, there could have been big consequences.

Why wasn’t it sent to the mailing list for the entire office? Or put on the Intranet as an important message? It affects everyone. Sending the information to a small subset of people is just dumb.

It’s hard to believe how each member in the chain read the email and doesn’t question it. They just forward it on like expected. Then when it finally gets to me, I end up in a rage. It’s just an absurd way to communicate, I don’t get why people cannot see it.

What is the process when one of the managers is on annual leave? Does the sender then check who they manage and send it to them directly? Or do they just not get the message?

Derek: 0 Points

I made this blog primarily to talk about Derek and I seem to have convinced myself I had already written this story, but it seems I haven’t.

I have often thought about how to measure a developer’s performance and it seems an impossible task. The best idea I had was to somehow assign the same work to 2 different developers and see who writes it faster, who writes the cleanest solution, and if there are any bugs in the produced code.

There was some work where Derek had to add a new user control in a certain condition. He had spent over a week on it, then kept on ranting about it in the stand-up meetings. He kept on saying how it was too big for one piece of work and we should have refined it more. I told him he could have split up the work into small Tasks and completed them separately. There was nothing stopping him doing so, but he kept on using it as an excuse. “It’s too big, my focus keeps jumping between many files as I add code here and there”.

It got to the 11th work day, and he said he was on annual leave in the afternoon, and he was trying to solve an error but he didn’t expect to get to the bottom of it. I told him to write down his findings, and shelve his code. I would take a look at it in the afternoon when I was free.

He doesn’t bother sending me any explanation of the problem, but it’s not a big deal; I’ll grab his code and test it out.

I take his code and look through his changes. He has changed way more files that I anticipated. He has put the main part of the code in a file I didn’t expect. The code that looked reasonable still needed to be tidied up.

I reverted his changes from several files, moved his main code to a different location, refactored the code so it was clearer, added the rest of the features that were mentioned in the user story. The next morning, I did a bit more refactoring, added a few unit tests. Job done. 1.5 days compared to Derek’s 10.5.

You may tell me that he gave me a head-start. I would argue that I wasted time trying to understand his code and I ended up deleting the majority of it, and the bits that I kept – I could have written within minutes anyway. It would have probably been quicker if I had started from scratch.

When we actually planned that piece of work, I expected it to take 5 days. In hindsight I was wrong; it was only 1.5, but Derek took 10.5 and moaned it was too big. 10 working days is a full 2 week “sprint”, and he failed to deliver any work during that time.

If you wonder how much better I am than Derek and wanted some kind of measurement, I reckon I am 9 days better. My solution met the requirements and there were 0 bugs.

Describing a Bug That We Are Already Fixing

William comes over and tells us of a problem he was looking at, but reckons it belongs to our team. Paul tells him that I am looking at it and have a potential fix. Paul explains how the fix works.

William then explains what the problem is. Paul tells him he knows what the problem is; we have a fix. William argues that it won’t work. I tell him I have a potential fix. William says it won’t work; he has witnessed the problem. I tell him I have a fix.

He still isn’t happy, he tells his colleague to demo it. He opens the menu, and is about to switch to the problematic application; but nothing shows in the menu.

William explains “Yeah, I broke it last night. Well, you can enter the URL, that will work”. His colleague corrects him and tells him that if the menu is broke, then the URL won’t work either.

William goes back to his PC, fixes it, comes back over. He shows the menu is now working, then exclaims “there! I have proved Paul’s theory is correct”.

No you haven’t, the behaviour is just back to what it was; with the bug we had just been talking about. With the bug that I have a potential fix for; but working on my machine only.

I’m beginning to think William has actually lost his mind. It’s very concerning.