Inner Source

You have the concept of Open Source where anyone can see the Source Code and can edit it. With private repositories, only a certain group can see and contribute. One team in our company says their private repository is Inner Source, which means developers from other teams can contribute.

My team uses this team’s library and one of the members of my team was annoyed by one of their bugs, so decided she would fix it. She correctly assigns the Bug to herself, implements the fix, and sends a Pull Request to the other team.

After 4 days, there’s a Slack message posted in our channel asking her what the status is with the Bug. Their manager says that the Bug was planned to be fixed this month, and because it had been taken:

“This can cause duplication of effort and put our planned deliverable at risk”

How can it cause duplication? She assigned it to herself, and if other developers were dumb enough to work on it, then that’s their fault. They didn’t actually do any work on it though. What actually happened was they discussed the Bug in their “refinement session” and realised it had already been taken.

How can it put their deliverables at risk? If they planned 10 items and we took 1, that’s only 9 for them to deliver. They are now closer to completion.

I don’t understand why they keep boasting about being Inner Source, then they keep making things awkward for people when they contribute. 

  1. They seem to have an overly pedantic system of rules which keep being more complex as time goes on.
  2. They aren’t prompt with feedback, and aren’t that friendly when they do respond.
  3. They love experimenting with all kinds of tools, and they only make sure they are compatible with Linux, yet most other developers use Windows so sometimes struggle to contribute to their repository.

Also, the Pull Request has been open for 4 days. We want it checked in; you are putting our deliverables at risk.

New Tester

I didn’t think we really needed a tester, but months ago we put in a request for one. Now we finally have a new Automated Tester!

He is off to an amazing start…an amazingly bad start.

He did a bit of manual testing to understand what we have so far. He logged two bugs which are probably the same issue. On the stand-up, he says they are “minor”, so I assumed minor cosmetic issues.

When I encountered the issues, I would categorise them as major cosmetic. One of them was that the menu panel appears at the opposite side of the screen! How does that even happen? The second issue was that it sometimes didn’t appear at all! 

The control is completely broken then. I’d say it’s pretty urgent given how little features we have.

He then starts writing automated tests, and the first one he submitted seemed to be backwards. I told him the test didn’t make sense, he kept on saying “it’s just a sample”. I didn’t understand what he meant, it should be a valid test. It was on the lines of :

GIVEN I navigate to the LogIn Screen
AND I enter valid credentials
WHEN I click Log In
THEN I am taken to the Home Page

although what he wrote was

GIVEN I navigate to the Home Page
AND I enter valid credentials
WHEN I click Log In
THEN I am taken to the LogIn Screen

I told him the page names were the wrong way around. He was demanding I let him check it in because the test passes; it is fine. I told him if that test passes, I don’t trust the framework.

He then explains that the test finds the title of the webpage is “Home Page”, then you are redirected to the LogIn Screen. After you type your credentials and click Log In, you are taken to the Home Page. However, the check doesn’t wait for the page to load, so at the time it checks, it finds “Log In Screen”.

So the test is crap basically, but instead of fixing it, he specifies the wrong page titles to get the test to pass. The functionality is correct, but the test is Invalid but Passes.

I eventually (reluctantly) agree to let him check it in anyway on the promise that when he adds more tests, he also fixes that. A week or so later, he sends an update. You will definitely think I’m making these stories up.

GIVEN I navigate to the Home Page
AND I enter valid credentials
WHEN I click Log In
THEN I am taken to the Home Page
WHEN I click logout
THEN I am taken to the Home Page

Yeah, that’s right, we are always on the Home Page no matter what we do. How can that pass this time? I’m out of ideas.

Open Source Culture

Last year, a developer suggested we get involved in contributing to open source. It’s a good way of getting our company name out there and also it gives back to the community – given that we are using many open source libraries ourselves.

Recently, a developer had used an open source library, but needed to make a small change to it. He had created a “fork” which meant he had the code showing up in his GitHub profile. An audit report runs on our profiles and it was flagged up for investigation because the repository had “public” visibility. The intent of the report is just for someone to check we don’t have our proprietary code exposed publicly.

There was some discussion, with the end result being the developer was made to remove the code. He cited “they didn’t want my name being traced back to the business”.

I wish we would just commit to ideas. Are we Open Source-friendly, or not?

£24 a month Expenses

In the UK, it seems that if you are working at home, you can reclaim around £24 expenses from the government.

Due to Coronavirus, we are working at home, when we would otherwise be working in an office.

A couple of my colleagues were discussing how they are going to claim this money. I reckon, these people are on £35k+ salary, and I reckon they probably save money by being at home. They don’t have to pay for fuel, and save 30-60 mins travel time per day.

You may be thinking: if they are entitled to it and their costs really have gone up, then fair enough.

However, think of the current situation we live in. 

There’s all those people that have lost their jobs and are struggling to find new ones, self employed people that have had to close their business, all those people unable to work due to being ill, or isolating as a precaution. I was listening to the news on LBC Radio, and they reckoned “1 in 10 are expected to be unemployed”.

Then these guys are there in their privileged jobs, on high salary (compared to many), and can happily work at home, then demanding an extra £24 from the government which doesn’t mean much to them, but means quite a bit to someone else.

No doubt they are the same people that say “the NHS needs more money”, but are then claiming money they don’t need from the government. If your costs have gone up, and you want to claim, see the advice by Martin Lewis

People Not Actioning Pull Requests

I always think Code Reviews (or Pull Requests) are very important, but there seems a lot of people don’t seem motivated to actually do them.

I’ve complained to my team members for not engaging with Pull Requests. We say that we need 2 approvers before code can be checked in, but yet only 2 people (other than me) do them within a reasonable time, and there are 7 of us. So if someone is on annual leave, then the Pull Request is more than likely gonna stay there in limbo.

After complaining on two occasions, Sean finally completes one within minutes of one coming through. “Brilliant!” I thought, my words have finally got through.

I had a quick skim through the code and I was concerned about how many Unit Tests had been temporarily removed. Yet, Sean hadn’t actually flagged that up in his comments! He had overlooked such a blatant error.

The comment Sean left on the unit tests was: “no new line at the end of file”. That’s such a trivial thing, and GitHub actually flags that up for you anyway. There were some other comments on other files where Sean claimed that the “Code Analysis would flag these lines up”; however the developer hadn’t even changed these lines. The report wouldn’t have complained about them.

So he made a redundant comment, and some incorrect comments, and overlooked the massive problem that the developer had actually removed some tests. Presumably because his new changes broke existing functionality. It was definitely not ready for Code Review. It gets a good old “Needs Work” from me.

Maybe some developers just aren’t good at looking at code…

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.

“Volunteering”

We have always had a fairly flexible way of working. By default you just have to work 7.5 hours and be in the office 10-4. So the majority of people choose a 9-5 or 8-4 day. 

With Coronavirus, we are all working from home, and we have more leeway in order to manage our home situations.

The CEO arranged a call where we could ask questions about the current situation. Rupert, one of the money-grabbing staff members said to him “I appreciate you have allowed people to work fewer hours, but can I take further time out of work to volunteer to help vulnerable people?”.

Basically, he wanted to work shorter work days, but take his full pay. So he ain’t really “volunteering”. It’s more like he will be paid by the company to help the community.

The CEO politely shot him down “No, we need to try and keep the business running”.

Then Rupert does a massive u-turn with his viewpoint and says: “I 100% agree with you, the business must be our top priority and we can’t afford to put our focus elsewhere”. 

The audacity to even ask the question in the first place! But that u-turn to try and “save face”! Amazing.

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.

King Of All Excuses: Part 2

Beavis was the first to start working at home due to the Coronavirus outbreak, but when he should have been ready to return to work, the CEO made the call to send the entire company to work from home until further notice.

Since he doesn’t have to make excuses to work at home, you would think the excuses would stop. But no, they continue:

Day 1: His daughter is ill

Day 2: The schools are closing so he is going to have to arrange some childcare. He didn’t mention why her grandparents couldn’t look after her, but he said ideally he would have gone to his brother…but he has Coronavirus. I wish I would have checked reported cases of Coronavirus at that point to see how likely that was.

Day 3: Apparently he was still looking after his daughter, but could spare the time for the 1 hour meeting. The manager asks to repeat the meeting tomorrow. Everyone in the team can make it; apart from Beavis.

On subsequent days, he ran through a variety of excuses why he couldn’t work at all, or why he could only work limited hours.

Couldn’t work at all:

  1. He was ill
  2. Daughter was ill

Reduced hours:

  1. Windows update took 3 hours, so he had to wait for it to finish. It’s weird that the whole team has Windows and no one else had updates that lasted more than 10 minutes.
  2. Was available to work, but needed to spend time freeing up hard disk space
  3. Was available to work, but his daughter kept climbing on him so was unable to concentrate.

I accept that he has a young daughter, and between him and his wife – they need to look after her. But if his wife has chosen to work, then he needs to take annual leave, or accept unpaid leave. Maybe they should both reduce their hours and alternate the childcare. They need to do something. It affects the team when he is assigned work, he says he can do it, then the next day – he says he couldn’t because his daughter needed attention. It’s not a one-off; it is an excuse 90% of the days.

One of his tasks was to install 2 software programs, and he ended up logging 20 hours against it on the time-sheet. People did encounter issues logging into these programs, but we just told the guy who was in charge of this initiative and left it with him. It’s not like we actually had to spend time diagnosing issues. It should be 2 hours max.