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.

The Major Pointing Session

It has come to the Senior Management’s attention that the project is going to overrun. No surprise to anyone…well, except the managers. So they want a new estimate of how long it is going to take.

The best way to get an estimate is to ask each of the teams, then add the totals together, right?

Well, not in their minds, no. What they did is take a selection of staff, and book 2 all-day meetings to go through all the teams work!

When I have doing pointing sessions in the past, we usually do them for 2 hours max, and by that point, everyone gets tired and switches off. Some discussions really drag on as you debate how complicated features are, but that’s only if you know the requirements well.

If you are dragged into a meeting to discuss work you have never considered before, this is going to take longer, or people are just going to give wild estimates because they are estimating with incomplete knowledge.

So is it a good idea to bring people in who have incomplete knowledge, and also force them to estimate work they don’t care about for several hours straight? Well, no, obviously.

From what I witnessed, half the estimation team was present for both days, with the other half having different members; which probably made it even more inefficient and inconsistent.

The breakdown was roughly as follows:

3 Product Owners

2 Software Architects

2 Lead Developer

2 from Product Team

and my favourite selection… 1 Apprentice Developer.

Welcome to the world of Software Development! Here’s an all-day meeting to estimate work you don’t understand, and will be embarrassed in front of the experienced developers when your estimates are way off the mark.

The Great Slack Cull

Hundreds of people were removed from our Slack account for inactivity. This led to a massive backlash of complaints, so many got their accounts reinstated.

The manager that arranged the cull, stated that the analytics showed they didn’t use it, and so he requested to know if they have a reason for wanting an account.

When I checked, some of these people had only posted 20 messages prior. Not sure when they signed up, but it seems like they really weren’t using it, or getting their money’s worth out of it. It costs around £5 per user per month, so that is a waste.

When one person was challenged, he said he was informed it was mandatory to have Slack, yet his office didn’t use it and they preferred to use Microsoft Teams.

What I’d like to know is, why is their office using our department’s budget? They don’t work with us at all; they work on completely different software.

I think Slack is a waste anyway. a) The fact that there was a cull implies they are conscious of the budget and want to cut down, and b) it isn’t necessary for the department to function. We could just use Microsoft Teams which we already pay for.

Deliberately Deferring Work

The team was looking like it had failed to fix the bugs they had promised to do. With only a couple of days before the planned release, the managers need to make a decision. They talk about Seth, a Senior Developer who is regarded as one of the best in the company.

“Shall Seth jump in and fix loads of bugs?”

“No, because that will give a false impression of what the team can handle, then we will get too much work in the coming months.”

Team Manager

It’s like when it gets to the end of the tax year, and departments blow their money so that next year, they will get the same amount of budget allocation. If they underspend, then the finance department will likely reduce their budget since it seems they overestimated before.

In this case, we are reducing our commitment so we can keep our commitment low in future months. It might make it easier for everyone to manage, but is terrible for the end-user who has to wait longer for their bug fixes. It’s a really bad attitude to have. We should put quality first. If there are staff available, then use them to improve the quality.

How Many People Does It Take To Design A Webpage?

We have a requirement for a 404 error page.

I asked the Product Owner if we have a design for it. Should be simple shouldn’t it? Probably has a heading, a company logo, maybe some other text.

He posts on Slack that he has had a word with the User Experience team and they are going to design it. Fair enough, although why hasn’t this been designed already? We are several months into a Web-based project.

A Software Architect then replies saying that he has put together some “findings” and will arrange a meeting with other Architects to discuss it.

Hang on! how many people are involved in a simple page design? Why does it need Architects?

The world has gone mad.