Office Tales

Introduction

Going to the office 5 days a week for my Software Engineering role was such a standard thing until the whole Coronavirus and lockdown became the new world. It’s crazy that my employer doesn’t have any interest in us returning to the office other than for optional collaboration. I mean, it does make sense, but it’s a complete u-turn on their previous ideals. We used to have a few offices nearby, but I think we only have 1 now. They redecorated the remaining office, cutting down the number of desks, and we are allowed to book time in the office if we wish, either individually or as an entire team. I have never been in though, and have only seen a handful of colleagues on a recent night out.

Things I miss about the Office

I think I miss the conversations you overhear from nearby desks, and communication is much more efficient when you can just walk over to someone’s desk. There will be people that you don’t need to interact with for your current work, but will acknowledge them as you walk about the office (often going/returning from lunch breaks). So it’s much more social when working in the office. I think there is a general awareness of what things are happening across the business, because you see people moving about and hear them talking about work. Now I only get that information if people post on communication software such as Slack/Yammer.

It seems I have quite a few draft blog posts that aren’t that exciting on their own, but I’ve put together a collection of ideas to reminisce about office life.

I’ve just discussed some things I miss about the office in this introduction, but the rest of the blog is basically “Things I don’t miss about the office” and “Other tales”.

Things I don’t miss about the office

Moving Desks

Every so often, managers decide to reassign loads of people between projects. Then, if the team sizes aren’t the same, they have no choice but to rearrange the desks, or simply relocate teams. This meant the entire department would move, even if the new desk is just 1 desk away. It was a major disruption and was basically a waste of half a day. People tended to unplug their PC a bit too early, but you did have your PC, 2 monitors, keyboard, mouse, drawer unit, then loads of cables and other items. It’s a big chain of moves though because you can only move if your new desk is free, but it is only free if the current person’s new desk is free and so on.

There was supposed to be a big move shortly before the lockdown happened. We were told that it was coming but then seemed to get delayed but no announcement (so no one knew what the holdup even was). 

I was told I was moving desks by my manager. An entire month went by with no update. I ask my manager what is going on. He says “I’ve been asking many times and I don’t get a concrete response. If you hear anything before I do, then tell me“.

A few days later, I heard another team talking about the new seating plan. I told my manager as requested.

He says he has the seating plan “but I need to spend some time to digest it“.

What are you on about? Just send it to me.

It’s a seating plan that has been released, and many developers were already reading it. Why is he making out it’s something he has to analyse then explain to me?

Anyway, the conclusion is that desk moves are very disruptive, managers find it a really hard task and they change their minds about it, then this makes it seem like a bigger event than it needs to be.

Sounds Of The Office

When I need to concentrate on programming, I often put my headphones in and listen to music. Drowning out all the random talking really helps you focus on your work. If people are talking, I’d often want to listen just in case it is something interesting and work-related, or maybe some funny casual chat that I want to hear.

Periodically, I’d take my headphones out, or maybe I would have to because I want to speak to someone or have a meeting.

Although the general sounds of the office were fine, there were some sounds that would do my head in.

Many people also used headphones to listen to their music, but there was one woman that often had her music on really loud. One time I looked over and saw that she had hair covering her ears, a beanie hat over that, then the headphones were placed over that. So the speakers have to go through a hat and her hair to reach her ears. No wonder she has it that loud. Also, I found it more distracting if I recognised the song. When Tool’s highly anticipated Fear Inoculum came out, she was listening to classic Tool every day and it went on for well over a month.

There were a few people with really exaggerated laughs. In previous blogs, I have mentioned one guy which I nicknamed Beavis for his style of laugh, but there were plenty of others that often did a fake laugh. One person sounded more like they were in pain rather than having a good time. It stressed me out.

There was one person that coughed a lot but it was more like a “ah mmm” like a stereotypical teacher would do to get a student’s attention. It wasn’t aggressive enough to actually clear her throat so it just seemed pointless to me, and extremely annoying.

Maybe the worst thing is this next subject, because I wouldn’t ever consider doing this whilst at work. I didn’t realise until I heard these sounds in the office, but I think it is a sound where it’s very satisfying to hear when it involves you, but hearing someone else do it; then it is vile. There were 2 managers sitting a couple of desks behind me, the woman was filing her nails and the scraping sound was very distracting. The worst thing that had me cringing though – the male was clipping his nails. Like I said, really satisfying if I am clipping my nails, but hearing that “click” sound on someone else’s; it had me cringing. I had to put my headphones on and crank up the volume, and try to not imagine those fingernails fly across his desk.

Kicked out of large meeting room

Meeting rooms were a really in-demand thing. Managers do love meetings, especially pointless ones. Then when you really do want a meeting, you just can’t get a room.

There were two meeting rooms next to each other, located near my desk.

  • Meeting Room A holds about 8 seated people, but you can get more people in if standing
  • Meeting Room B holds 3 people but you can get more people in if standing

I was called for an ad-hoc meeting with 3 other developers. Both rooms were free at the time. We take the larger room (Room A), since there’s 4 of us.

5 minutes in, someone knocks on the door

Sorry, I have a one-to-one and have booked this room

My fellow developers didn’t seem interested in arguing, so I followed suit and kept quiet. It’s a one-to-one so it’s a meeting for 2 people. Room B is perfect for them.

So after moving to Room B, we were trying to crowd around a laptop – crammed awkwardly in our seats. Meanwhile 2 people were sitting comfortably around a large desk in the opposite room. It looked ridiculous.

Office Tales

Empathy Lab

As I just explained, Meeting rooms were in high demand so we needed more of them. Of course, we like cutting down the number of meeting rooms for some cool initiative. One of them was the “Empathy Lab”.

“We were inspired in part by Facebook’s empathy lab which shows how people with impairments may interact with Facebook using assistive technology.

However, when building our accessibility empathy lab, it was important to us that it had a dual purpose: To raise awareness about accessibility, but also be an assistive technology testing space.”

I never saw it get used, but I did see many people get frustrated that they couldn’t find a meeting room.

The Recruitment Letter

Beavis gets a hand-written letter delivered to work written in a green pen. I don’t think I’ve seen anyone get anything delivered with their name on it that wasn’t a package, mainly from Amazon.

He opens this suspicious letter, and it is from a recruiter apparently from LinkedIn.

She explains that the unconventional approach to contacting him is due to the fact that his profile lacks detail and therefore that signals he doesn’t want to be contacted by recruiters.

<Sure, that makes sense.>

She likes the lack of detail in his profile though; it’s the kind of person she is looking for, so she wants to meet in person and talk at a Café.

I’ve never heard of this before? Is it a weird scam?

AWKS

Years ago, I wrote about how I was working in a team that was making the framework for a new application. One of our developers, Timothy, got moved to a team known as “Solutions Team” who were making a framework for the new application. I had asked him how his team differed to mine, surely we were doing exactly the same work? He said he was just doing what the managers told him.

A new developer, Nina joined the Solutions Team.

She comes over and asks Timothy to send her some documentation so she can understand what they have done over the last few months. (The correct answer is “nothing really, just messed about and partially duplicated another team’s work).

You could see the absolute terror in Timothy’ face. I think at that point, he was probably realising that I was right all along and their team was pointless.

Nina detects the panic and says in a concerned tone “are you okay?”

Timothy says “yeah” dejectedly, and then mumbles about “maybe he should update the documentation.”

Nina says she will come back later

It was the most awkward situation in a long time.

Just Paste It In

William has been working closely with a Junior developer. The Junior had a list of objects and needed a simple sort.

William is new to Javascript, but the syntax is exactly the same as C#. He looked at the method signature and didn’t understand it, so he told the Junior to google it.

The first solution they stumbled upon on Stack Overflow had an overly complex solution, but the original poster did request he required only one method that can handle sorting various items. Therefore it required an elaborate solution.

In the Junior’s case; he just wanted to simply sort a list; therefore this code wasn’t appropriate.

William told him to paste the complex method in and “it will work”. The Junior challenged him on it, asking if the algorithm sorted the items in ascending/descending order, and asking him to explain how the code worked.

William then just reads the name of the method and the parameters, trying to say some words in a confident way to blag that it was the correct thing to do: “It’s a dynamic sort, you just pass in the list, along with the name of the property you want to sort by“.

The Junior asks again if it sorts in ascending or descending order.

He then says “yeah you are right, this might not work“.

He had no idea what that code did, he was just hoping it worked – so was just confidently telling him it would work if he just pasted it in.

I ended up telling him how to do it. It’s a one line solution; not a 30 line method.

William Nonsense

While we are all working at home, teams have set up an optional call so we can socialise and try and keep the office banter. I was paired with William’s team. I have quite a few blogs where I comment on how poor William is at communicating; he constantly uses wrong terminology which causes all kinds of confusion.

A team member had suggested we have a main subject of conversation to start off with, so there’s always something to talk about. So we had subjects like “today’s news”, “sports”, “board games” etc. People were suggesting topics for Tuesday and the team agreed on “hobbies”. 

It sounds like on Thursday arrange the talk for Friday to be bobbies lol 

William

Okay, bobbies is a typo of hobbies. But, why would you phrase the sentence like that? Why not simply “tomorrow’s subject is hobbies”. Why does he need to mention today is Thursday? Why end the sentence with “lol”. It’s just complete nonsense.

Blinded by Job Titles

Earlier in the project, a Junior Developer switched teams to go work with William. I think the Junior saw it as a prestigious switch because the other team has a cooler name, and instead of myself educating him, he would be educated by William who has the Senior Developer title.

Obviously, I felt William would be a bad influence. One day William came over and moaned about how pointless one of our repositories was. To be fair, I did think it was a bit pointless, but the idea came from a Software Architect.

When this Junior Developer was in my team, he followed the Architect’s wishes and created the repository. He even did the initial implementation of the small library, and even made the changes when we needed to update a schema. At that point, I did challenge if we needed this code in a separate repository given that it is used in only one place. I said we should consolidate it. The Junior didn’t think much of this suggestion. 

A few days after William had moaned about it, I was talking to the same Junior Developer about it, and he states “I don’t know why you guys even have that repository; it is rather pointless”.

I was annoyed, because all he had done was just copy William’s point of view. I think it comes down to the fact that I’m not a Senior so my concerns were dismissed, but since William has a Senior role, then his opinion is valid. Even though William mainly talks absolute nonsense, his job title seems to give him much more credibility in the eyes of a Junior.

That’s why it annoys me, because the Junior is just judging by rank instead of judging information based on the validity of the statement.

The Junior didn’t think it was pointless when he created the repository. He didn’t think it was pointless when updating the repository. Then all of a sudden – it is pointless.What I want you to take away from this blog post is that: You get good Seniors, you get bad Seniors. Rate them by their actions, and not by the job title. Don’t automatically accept what the bad ones say. Show respect to low ranking Developers when they say credible things.

Using Instructions To Make Instructions

William contacts me and says he is reading our instructions of how to deploy an application and there’s some parts he found hard to follow. Which is weird because his team had made several apps, and this wasn’t an issue then.

So I asked him what he is trying to achieve. He says that he is planning on “putting together some instructions for other teams to follow”.

Sometimes I think William is just in my imagination because these situations are like an unbelievable, comedic character. This isn’t “The IT Crowd”, or “The Office”; this is real life.

He is trying to write instructions on how to deploy an application by… reading some instructions on how to deploy an application.

They have already been written. I wrote them, for this very purpose. He is reading them, and plans to write some himself. Why?

This is literally insane.

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.

The Problematic Button

William had a problem where his form controls could not be focussed; so you couldn’t click a button. He blamed me for breaking this functionality:

“You added a button which is clickable but you disabled everything else”

I told him it was a simple HTML button with an onClick handler; there was nothing fancy, not even CSS applied to it. I hadn’t changed any other component.

I asked him how he knew it was me that broke it. I asked him if he has verified his outlandish claims by removing the button and seeing if the problem persists.

Of course he hasn’t, he just looked at who had made a change last. I asked him if he had seen it working before – since this was a new page he was adding. He didn’t even seem sure.

Turns out it was some CSS that broke the functionality, but this code had been there a while. No idea why he didn’t notice it before, but it definitely wasn’t my button.

Obsoleting Your Codebase

William sure has a knack for saying the wrong thing, leading to lots of wasted time.

His team had been using our repository to check in their example code. Our repository’s purpose is example code, so it fits nicely in there in my opinion.

He comes over to my desk and claims that developers will wonder where they need to go to find the example code, so he wants them to go to a new repository he has just created.

How are people going to find his repository if they somehow can’t find our repository?

Well, his idea is that his repository will also deploy a website with instructions on.

How are people going to find his website?

Well, he hasn’t thought of that point. He also stated that when he moves the code to the new repository, it will make our codebase “obsolete”.

I was really annoyed by this. Firstly, if you create a new repository and move all the code from an existing repository, all you have essentially done is renamed the repository (and wasted a lot of time). Secondly, why does he think his repository is more important than ours? Surely it should be agreed with the team, rather than just pulling rank and forcing his ludicrous ideas through.

I firmly put my point across and then he replies:

“I’m not making your codebase obsolete, I’m just moving my code out of it. None of your code is going anywhere”.

WHY DIDN’T HE JUST SAY THAT THEN!?

I still think it is dumb creating another repository, because now there will be two repositories to check for example code, and all the example code is currently in the same location. If a website is actually helpful, then it can be added to our repository.

Your Code Is Unstable

William sure has a knack for saying the wrong thing, leading to lots of wasted time.

William joined the stand-up and said that he needs a “stable” build of our code, so specifically wanted the Lead Developer to merge our latest changes into our “master” branch. He kept on saying our “master” branch was “unstable”.

Later on, he comes over to my desk, and I ask him what he means by “unstable” – since that implies there is some kind of crash and we didn’t know of any. He then replies:

“it doesn’t work”.

“what doesn’t work?”

“eeeeeeeer”.

He then asks another team member to explain, and his colleague ended up saying “the branch doesn’t build”.

Weird I thought, since it is a “gated build”; we can’t check in unless the build completes. Turns out the Lead Developer had bypassed the gated check and broke the build.

So we have gone from “It’s not stable”, to “it doesn’t work” to “it doesn’t build”. I don’t get how you can be that bad at communicating such a simple development concept.

Additionally, on the stand-up call, I felt it was very patronising to specifically ask for the Lead Developer to do a basic merge. As it turns out, he meant that the Lead Developer should sort it out because he broke it, but he never stated that was the cause of the issue. It would have been good to open the conversation with that fact. You know; give some context and background to what the problem was.

William

I’m gonna create a new character called William because I have a good feeling he will be a good source of stories, so don’t want to group his stories with Colin.

There was a time I was looking through the recent changes to our software and I saw someone had added some additional error logging. When people have done this in the past, its because there is a bug they cannot recreate, so they need to add additional logging code to gather extra information in order to diagnose the issue.

Anyway, I look at the code and realise that what they were logging wouldn’t be helpful at all. I asked the developer what he hoped to achieve and he said “William told me to do it.” So I was like “If William asked you to jump off a cliff would you do it?“. He replied “But William is a Senior“. I was like “so what? you need to consider things for yourself“.

Recently, William has got involved in our project and has been trying to help decide how to approach our architecture.

We were discussing how users could be updated with real-time changes to data. William stated we couldn’t use SignalR. I asked why and he gave me a shocked look as if it was obvious. “It doesn’t work with web browsers” he said. Weird, I thought, because a partner product uses SignalR for their website.

SignalR supports “server push” functionality, in which server code can call out to client code in the browser using Remote Procedure Calls (RPC), rather than the request-response model common on the web today.

https://docs.microsoft.com/en-us/aspnet/signalr/overview/getting-started/introduction-to-signalr

I was looking into a solution involving Web Sockets and he came over and told me it has been ruled out because it is limited to 1 million connections. I was like “1 million connections? How many do we need?“. He was like “we need to think bigger than that, Websockets isn’t scalable“.

I asked around to get an idea of our current userbase. Turns out we have ~180,000 users, but around half will be active at any one time. So even if we did scale it up, 1 million is more than enough. I was speaking to one of the Architects and he reckoned that the 1 milllion limit can be surpassed with certain implementations.

Anyway, it got me thinking that maybe you shouldn’t always assume people know what they are talking about. William states things with such confidence that it sounds like he knows what he is doing, but really; it’s just the first idea that popped into his head.

“As a junior developer, hearing others say “I don’t know” is extremely reassuring and erases the common misconception that experienced developers know the answer to every question, and have a solution in the back of their mind for every type of problem. Admitting you don’t know something is nothing to be embarrassed of — instead, it’s a new learning opportunity for everyone involved! It may even lead to another occasion to pair programming or debug a problem together”

https://dev.to/httpspauline/5-ways-to-create-a-junior-developer-friendly-culture-3n4

So if William admitted that he needed to do some research, we could have investigated various messaging technologies.

Without me questioning his statements, we could have rejected two perfectly viable options.