“Working Closely”

My manager calls me.

Manager: “Do you know Andy?”

Me: “Yes, he is one of my best friends”

Manager:  “Great, because you will be working closely with him.”

Me: “Brilliant news. So does he know about it? How do we go about splitting up the work; is it a big project?”

Manager:  “Well, simple answer; you aren’t splitting it; you are doing it all.”

Me: “Oh.”

How is that working closely? After I got more information, it turns out all I was doing is merging some of Andy’s work into another code branch. Andy could have just done it. Complete hype for nothing.

I Agree

There’s one guy in my team that always wants to portray himself positively. So he loves talking, and, in my opinion, he basically keeps taking credit for other people’s ideas; or at least wants people to think he had some contribution to them.

So here are some clichéd phrases that he reels off in every meeting:

When someone says something good:

  • “I was just about to say that”
  • “I agree with that”
  • “I was just thinking that”

If he thinks someone knows more than him:

  • “We need to touch base”
  • “We need to arrange a catch-up so we are on the same page”

If he says something stupid:

  • “I’m only asking the question for everyone’s benefit”
  • “I just wanted to call it out so the decision is documented”

Becky did a similar thing the other day:

Becky: “a menu option disappears until you log out and back in again. Do you think that is a feature?”

Sean: “Sounds like a bug”

Becky:  “Yeah, that’s what I was thinking”

Sean: “If we introduced it, this will need to be fixed before the release goes out”

Becky:  “Yeah, that’s what I was thinking”

No, you were thinking it was a feature like an idiot.

It turns out she was just logging in with a different user profile. So the feature wasn’t there to begin with on the first profile.

It annoys me when people just pretend to agree. If you don’t understand something, then someone needs to explain it to you more. In the first example, he does ask questions to get the information, but he also claims he agrees in an unreasonable number of situations. If someone comes up with an awesome idea, let them have their moment of glory rather than using phrases like “I was just about to say that”; because that devalues their contribution.

Awkward Call With The Customer

I get invited to a call with a customer about an important enhancement. It’s about an area of the system I have very basic knowledge of. The call is in 30 minutes so there’s no time to read up on anything.

If it’s an internal call, then it can be embarrassing but it’s easy to explain the situation. For an external call; then as a company, we seem like idiots.

I tell my manager that there is only one developer that knows about it; Bruce. Luckily my manager contacts him and he agrees to come onto the call. I’m still required for some reason.

I still anticipated it would be really awkward. The customer says, “can we all introduce ourselves”. So they all take turns.

“I’m Sharon, lead customer representative in Team A.”

“I am Bruce, I was the Lead Developer on the original project and have been involved in related project X”.

Everyone has great credentials. It eventually gets to me. I don’t have a fancy job title or any related credentials to this call.

<awkwardly>“I am A developer”

Me

Luckily, the customer did the majority of the talking, and Bruce chipped in to deny/challenge the occasional suggestion. I would have been doomed if I didn’t manage to get Bruce involved. He saved the company reputation there.

Surely, we knew about this arranged call days ago. How did we get into this situation? It’s another management failure.

Report Ideas

Our Team Lead had been hyping up how important it is to improve the statistics of our codebase. So we have a report that runs and gives you metrics about duplicated code, “code smells”, possible bugs, test coverage etc.

Our Team Lead said that Colin had some great points and would be presenting them in our meeting. 

​and Colin’s points were

  1. Can we add rules?
  2. Can we remove rules?
  3. Should we document our changes?

​Which are all basic questions and not any kind of guidance. Obviously, the answers are 

  1. obviously, 
  2. obviously, 
  3. and the majority of the time, no; that would be overkill

He also did a demo to illustrate what we can include in our documentation. The “code smell” was that there was the same assignment twice like:

somethingEnabled = whatever!=null && somethingElse!=null

otherFeatureEnabled = whatever!=null && somethingElse!=null

So the assignment logic is the same. Then he said the solution is to create a new variable. Yes, that is obvious….  but he has some timing tests to illustrate the performance difference of 0.00025 seconds. Since he has proven that this is the correct thing to do, we now must document that as the official solution.

Embarrassing. So cringey.

Then the next day, Colin was talking about his work item and said if he has permission, he would also fix the “code smells” that were declared by the reporting software. So the Team Lead asked him what the “code smells” were and Colin said “unused using statements”.

Since when did developers ever declare/ask for permission for something so trivial? We just did it because it’s obvious. Even Visual Studio tells you to do it. “Unused usings” are shown in a lighter font, and you have an icon in the side prompting you to remove them. It’s part of the Code Cleanup feature too, so you run it and it automatically removes them.

Any developer would just do these refactorings as standard. 

There’s a general rule called DRY; Don’t Repeat Yourself that means you should avoid duplicated code. We don’t need to document that any further. 

Other code smells like extra blank lines, spelling errors, unused methods; are all trivial. You don’t need to explain them. The reporting software actually has explanations and examples for all the rules anyway.

The IP

Becky: “I can’t contact my machine.”

Shows a screenshot…

  • initially pinging her machine by IP address; it is responding.
  • She tries to remote on using the machine name, and not the full address; Didn’t work.
  • Then she tries by IP, but it’s a completely different IP to what she was pinging; Didn’t work.

I reply “You are using the wrong IP”

A couple of hours later, she replies: “Nevermind I went into the office to restart it”…even though we are supposed to stay at home and not go to the office.

VMception and other Tales

We were supposed to be using a program to connect to a Virtual Machine. Some of us encountered a bug that prevented us from installing this software on our company laptops.

One developer asks

“Would we be able to install it through a Virtual Machine?”

Yeah of course. Let’s connect onto a Virtual Machine, then install some software to connect to another Virtual Machine that we actually want to connect to. Brilliant plan.

A Virtual Machine in a Virtual Machine. We could make a film about it – like Inception.

What we actually did is log the bug with the provider’s support team, and they quickly fixed it.

Chapter 2

We were given instructions on how to install this special Virtual Machine. We already have Office365 accounts, but for some reason, we were given a separate email address to use just for these Virtual Machines.

Beavis managed to make excuses to take the previous week off. When he finally returned to work, he wrote “I’ve been sent instructions; am I supposed to be configuring this virtual machine?”

<sarcasm> No, you just got sent the instructions to ignore them.

“I think it only works when you remote onto your work PC” 

Rob

No Rob, it’s literally why we are using virtual machines, so we don’t have to remote onto something physical.

Then Beavis is up to his usual tricks, delaying as long as possible just to get out of doing work. He posts on slack:

“The instructions say to log in using my new email address. Do I have to log out of my usual work email because I’m already signed in?”.

Beavis

Is that a serious question? How many websites allow you to log into them with two different accounts at once? Just log out, or use a different browser. Simple.

The other thing of note in the instructions was the 2-factor-authentication. “If you use another app like Authy then you need to download Microsoft Authenticator as well.” I guess the instructions could have just said “You must use Microsoft Authenticator”. That would have been clearer.

Another team member says “I’m getting an error”

“What app are you using?” 

“Google Authenticator”

<facepalm> (-‸ლ)

Watch Someone Drink Water

I was using the Explore feature on Steam, and came across this “game”:

Each Sale I Drink a Glass of Water : The Game

The game/experiment is in Early Access for one year and every time someone buys it, I will record myself drinking a glass of water and add it to the game. The updates with the new clips will be added each Friday. Have fun watching me drink water!

Each Sale I Drink a Glass of Water : The Game

There’s quite a lot of weird cash grabs on Steam, but I guess the phrase “Build it, and they will come” is appropriate. If you put it on Steam, someone will buy it.

It’s £2.09. Buy loads of copies and make him drown.

Meet The Team

So I’m in my new team now, and it’s pretty much like I expected. There’s one good Senior developer, some good testers, some bad testers, then a few bad developers. The ratio of developers to testers is a concern, because there’s way more testers than developers, and the standard of developers is poor.

Guess who the bad developers are? The Colins are here, and so is Beavis. Completely called it (see A New/Old Adventure).

The good thing is that I can definitely look good compared to everyone else. I did say there is one good Senior, although I don’t know much about him. He does have a good reputation in the company, so I expect him to be much better than me. He is part-time though.

The more I explain about this team the worse it gets doesn’t it? Part-time staff, incompetent developers (Colin), a developer that doesn’t show up (Beavis), too many testers.

It’s good for the blog, if nothing else.

How To Make Your Team Hate You #1

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. So here is story number 1.

When I was a Tester, I was on an important project and was pushing the time. It wasn’t my fault, it was just the nature of the project, the nature of the testing, and the fixed deadline. I always knew it would be a  tight schedule. I didn’t want to sacrifice quality though and I knew the only way I could get it out in time if everything just worked, with no bugs and technical problems, and I needed 100% concentration to prove it.

I get interrupted by the newly promoted Test Lead. He sits there for several minutes berating me for the slow progress and starts reeling off a speech about how important the project was to the company. I kept on telling him I already understood and his speech was wasting my time and delaying me further. Obviously in addition to demoralising me.

After he finally left, the Lead Developer on my team exclaimed “who the hell does he think he is, talking to you like that?”

I’d never seen this developer angry before. He always had a calm demeanor. But he was furious.

The next day, the Test Leads line manager pulled me into a meeting and said the matter had been dealt with and that will never happen again. I then realised the Lead Developer must have reported him.

The lesson here is that if you do get promoted, make sure it doesn’t go to your head. Yeah, you have to manage people, but having a new fancy job title doesn’t mean you have to go wild. You are working with people. You are still working with your old colleagues. Treat them with respect and be more understanding. I think a lot of managers lead by example and gain respect by being nice.

Case Study: Steam – Play Next

On the PC digital game store, Steam, they have been adding experimental features under the name Steam Labs. One that eventually was implemented on your main library page was a feature called “Play Next”. 

This is simply recommending games that you already own. Steam users are notorious for having massive gaming libraries of games that they haven’t even played, so this was actually a highly requested feature.

I was looking at the discussion page for this feature and found a thread called “Can you add a different metric to use besides “0 hours played”?”

Right now it looks like Play Next only suggests games that are registered to our account and have no play time. As someone who idles games to get card drops, it would be helpful if there were some other metric we could use instead, like maybe “0 achievements earned.”

So he downloads a game and installs it. Then leaves it running without playing it just to get some “cards”. Cards are just simple images that are awarded to you after you play a game for a certain amount of time. Maybe it’s a random period of time. You may get around 5 per game, but maybe there are 8 cards to collect. So you have to buy the others from other gamers to actually complete your collection.

What does he do with the cards? He either sells the cards for around 2-5p each profit, or buys the remaining cards which could cost around 12-20p (Steam takes a cut of your sales). Then he can feel proud of his complete virtual card collection for a game that he hasn’t even played.

I’m guessing he isn’t paying for his electricity.

Meanwhile, Valve, the owners of Steam are laughing. They are basically printing money and keeping their users engaged.

Maybe they should make another Steam Lab feature that actively tells you which games have remaining “card drops”. There was (or still is) a page that shows this, but it was always hidden away.