I had some notes that I think were originally from a Twitter thread.
I think the question was from someone who had been a developer for several years and had just got a new role as a manager, so asked for advice.
One point someone made was that as a developer, you can gain a lot of success via individual contributions. Fixing a bug, delivering a feature, fixing a test environment etc, but as a manager, you are only really successful if your team is. Therefore, the focus is no longer on yourself. It’s about enabling people to work by dealing with impediments, and motivating them.
Another point was to value the 1-on-1 meetings. This builds relationships and trust, and you can learn about emerging problems and concerns. It gives you new perspectives and reminds you of how people are progressing when it comes to performance reviews.
Management goes in 3 directions, and all these directions have their own traits and challenges. Down – take care of your people and ensure they are cared for. Talk to them; lead them. Sideways – be aligned with another manager. Understand what is happening in other teams and how that will affect your team. Collaborate with them. Expand or adopt practices that they are adopting.
Up – you must sell your team’s success and communicate potential problems/challenges… Ensure the boss knows and understands the right things at the right time. Embrace the fact that you must balance these three directions well to make it work.
Although some managers could keep programming, a proper transition means you should be using your expertise to guide.
You are managing people, not Kubernetes pods. People have good days, bad days, birthdays, divorce, death… it’s all part of the “people deal”. You have to have a healthy distance/relationship as, at the end of the day, you must hire/fire/manipulate/lead/promote/demote them. Be humane, but be professional.
Invest in culture and lead by example. Don’t do things that you wouldn’t want to be done to you, and show a positive attitude towards whatever comes. Negative emotions and scepticism can ruin so many beautiful things.
See yourself as the conductor of an orchestra: Realise that, on the night, the instrumentalists can do this without you ONLY if they’ve worked well with you in rehearsals That your place is not to make the best sound from one instrument, but to bring the best out of all the players cohesively.
A manager recently posted the following. I think this sounds like good advice. Although I always think with us breaking work down into 2 week “sprints”, then the tasks just expand to fill the time allocated. So I think you need to process change or a collective mindset change across the team for this to actually work…
“Some thoughts on getting more for less…Individuals in all teams should analyse what they currently do in their role on a daily basis (i.e. where the time is spent).
Then see what that could look like moving through transition (modernisation) and what next year could look like.
Right across the business, all individuals should take a moment to analyse where they spend their time each day (not high level timesheets, actual analysis). If we are ever going to get more productive output from already lean (stretched) teams then we need to work out where to optimise time and get the most quality output out of each day.
Examples of questions that individuals should ask themselves each day:
1. Am I managing my time properly? 10 minutes planning the start of your day can save hours. Write down what you would like to accomplish during the day. If you plan ahead and write it down, you can enjoy any breaks without thinking about work. Heads full of tasks that are not written down creates brain chaos meaning we break away from smart thinking.
2. Am I spending too much time playing around with ideas before I decide what to do? By the time I decide what to do there’s no time left. Stop procrastinating. Putting things off can affect your productivity.
3. Do I need to be in these long meetings? What am I contributing? What else could I be doing? Meetings are crazy expensive. I have been in meetings of 20 people where 3 people talk/contribute. Could I skip a meeting and watch the recording later?
4. Can this repetitive task I’m doing be automated? Should I be doing it or someone else more suited? Am I using technology to speed up my job? If I am a developer, do I spend too much time manual testing when it could be automated? Just because it’s always been done this way doesn’t mean it’s the right way.
5. Am I working in ‘smart mode’? Is there an easier way to accomplish what I’m doing? Am I over-elaborating? Finish unimportant tasks within 10 minutes.
6. If I have 5 things to complete concurrently, try allocating time to each task and set a timer. This speeds up work. Divide your day into time increments. Then, assign specific tasks during each portion of your day.
7. If you need to concentrate hard on certain tasks, then minimise distractions. Block time away from people.
8. Prioritise your tasks. Starting off with your most difficult or important tasks first can help you feel more accomplished.
9. Group similar tasks. When you focus on related assignments, you spend less mental energy context-switching between different tasks.
10. Finally, set aside personal time to disconnect from work. This can increase your productivity. A stressed and tired brain cannot work efficiently.”
I came across this interesting twitter thread about coding ability of managers.
“your managers should be better engineers than you”
Most managers disagree about this and I’m sure there are many exceptions, but in my career my worst managers were always the ones with the weakest coding ability.
“coding ability” here doesn’t refer only to banging out code, but it also doesn’t mean just CS (computer science) fundamentals. It’s the breadth and depth to understand what is going on around them instead of just forwarding what their manager and peers are telling them.
Christoph Nakazawa
Most managers disagree about this and I’m sure there are many exceptions, but in my career my worst managers were always the ones with the weakest coding ability. https://t.co/T2R92zF1dT
Personally, I think it depends on what the manager is actually managing. I’ve been in teams where the manager is the team lead and gets heavily involved in coding. Other times we have restructured and the manager acts as more of a middle-man between the team and others higher up in the hierarchy.
Traditionally, over time people want to feel like they are progressing and get promoted. This can often mean that you get so good at your job ie Developer that you then stop doing the job and just manage others. For some reason that gets awarded more money even though being a prolific developer would be more beneficial to the company.
I think having someone technical to explain problems to and resolve them is very beneficial. This can either be fixing a software bug, architectural problem or a network problem. You can definitely get them resolved faster and avoid miscommunications if they actually understand what the problem is and the impact it has.
“I strongly believe that all managers in a technical area must be technically excellent. Managers in software must write great software or it’s like being a cavalry captain who can’t ride a horse!”
Elon Musk
Here’s some other opinions from the thread:
I always felt that as manager of technical people I had to be astute enough to be credible. As a leader you assist and drive problem solving. But I wasn’t a great engineer myself, I made a better manager. Everyone’s different though.
The ones that know you’re there to do a job and trust you to do that job are the best. The ones that have no idea what *they’re* even doing and attempt to micromanage *you* are the worst.
No, managers need to be good at managing, it’s just a bonus if they are well versed in the craft. They need to be good listeners and build trust. Being an expert coder isn’t gonna help them to make decisions that makes different personalities thrive (we aren’t all the same)
There are people who are very good engineers, but not so good managers. I don’t see how such an engineer can have a manager who is better at engineering than them. I think it’s totally viable to have very strong TLs that are not managers.
My nightmare fuel is working for someone who came to engineering leadership via old school project management. The kind of person who knows everything about deadlines and nothing about why they are unrealistic.
I think there’s a lot of room between “weakest coding ability” and “the best coder on the team”, and managers can be effective in a lot of that space.
In my experience, a kind of bell curve — average enough at coding = terrible enough to think they “get it”, or no real coding ability but appreciation for the technical = the guts to manage and serve technical teams effectively and actually *listen*
A few years ago, some team members had been moved onto other projects and we were left with two developers and one tester. I led the team, and it was a tough project which ended up getting delayed. The result was that some managers saw the delay as a failure, and others interpreted that we did a great job against adversity.
As the project reached its conclusion, our team merged with a team that managers claimed was one of the most successful teams. Additionally, my manager switched from Colin to Mary.
Mary said the initial plan was to merge the two teams, then we were adding 3 new developers, so the plan was to then split the team into 2 because it was too big. The other developer that I led actually moved to a different team.
Doesn’t really make any sense does it? May as well have added a couple of developers to my original team.
Mary criticised my leadership and made out that my team was a disorganised mess. Technically, Colin was the Technical Manager so was the equivalent of Mary’s role in this new team. I was the development Team Lead but I didn’t think I actually had responsibilities. I kinda think things just organise themselves really. I like a laid-back culture but would voice my concerns if I felt it wasn’t working.
I was actually looking forward to seeing how organised and productive their team was. I was good friends with a couple of their team members already and they always seemed to boast how productive they were, getting plaudist from external managers.
The first week
On the first standup, Dennis talks about a problem he was having for over 5 mins. I was thinking I would have interjected and asked to discuss at the end. In my previous team, I didn’t mind people talking off-topic because it was pretty much the only time you hear people talk. But at a certain point, I’d flag it and request we organise a separate meeting with anyone that is interested, leaving the other team members to go off and do work; which is even more important in a larger team. This team had a member assigned as “Scrum Master” and that’s his job to guide these meetings.
In one of the standups we were asked to estimate one of the items. Standups are for progress updates, not planning. Why are we planning mid-sprint?
Also during this Sprint, I saw that the team was working on items not assigned to the Sprint, and left unpointed (not estimated). Then when they do officially bring it in, they bring it in with fewer points because they estimate the remaining work; and ignore the investigation/prototyping work they had just done. So what happens to tracking their actual effort? They will be lowering their velocity working that way.
There’s another type of work item called “Spike” which is an investigation item. So if you know you have a requirement but have no idea how to implement it, then you can do some design/planning to make it clearer to estimate the actual item. This team was creating Spikes when they can’t recreate bugs and so I asked them what the idea was. The way I see it, instead of basically marking the item as blocked, you are creating another item to say it is blocked and then removing this new item when it is unblocked. The Scrum Master said he has no idea where the idea came from, couldn’t remember how long they have been doing it, but everyone has been following this process without questioning it. Weird.
Meeting Chaos
I got told to go into their shared Team calendar and add all the meetings into my personal calendar. It turned out they had multiple invites for the same meetings so it was easy to miss them. So instead of one meeting that recurs daily, they had 2 fortnightly meetings for Monday and Friday then another meeting which recurred weekly Tuesday/Wednesday/Thursday. So 5 meeting invites in total just for the stand-ups; then invites for a few other types of meeting. I ended up initially missing a Stand-up meeting when it wasn’t in my calendar which Mary made out was my mistake. The invites were also set to show the reminder at 15 mins before which I find really annoying. I like 5 minutes or just alert on start. So I had to then go through all the invites and change the timing.
Not the amazing organised process we were promised
With Mary micromanaging and boasting of her ability, and with a dedicated Scrum Master, you think every aspect would run smoothly and processes would be perfectly followed. I didn’t think I’d hear/read statements like this:
“it’s tested, it just needs a test case writing for it”
Tester
Dennis: "Did you log the bug we found"
Tester: "no mate"
How are we supposed to check the bug is on an older version when the test environments are all on the current version and the API often doesn’t work? This is ridiculous. Absolutely ridiculous. It shouldn’t be like this. We’ve never had this before
Mary
Stubborn Management
When it comes to code reviews, we have a rule that it needs to be approved by 2 people that weren’t involved in the work. We needed Dean to help fix a few of the remaining bugs since we were running behind schedule, but Mary blocked it.
“you can’t help because we need you to do the approval”
Mary
Ok, we need people to review, but he could have reviewed what the other team member’s wrote, and we can review his parts. It’s not a big problem. Also what is worse? Finishing on time but it’s not reviewed, or finishing late but it is reviewed? You have to be pragmatic.
During integration testing, shortly before release, I found another bug. Mary and the Product Owner decided they wanted to keep it secret from Software Delivery. Mary tried to blag it to us that: because the bug hadn’t been directly found from a test case; then it can be released. She was then insistent we release the software as is, and fix known bugs later. I thought it was technically unsafe to do so.
NO Mary. That’s not only not how it works, but I did find it directly from a test case, so you have just mugged yourself off.
my thoughts
why is she doing this? it just reflects badly on the company. her job ain’t to ensure a deadline
my old team member
“I’m not comfortable putting our feature out like this…we are removing items just to get something out on time. Is this even legal?”
Tester
It just seems like they are clutching at straws and giving any kind of justification to not fix it. It also sounded like they have beef with the lead of Software Delivery so are avoiding talking to him.
Implied Disrespect
For the remaining bugs on my project there were clear “easy” and “hard” tasks. Mary explicitly told me to do the easy ones and Dennis to do the hard ones. We are on the same level, just that she is chummy with Dennis and doesn’t seem to trust me.
When it came to hiring these new developers, she said she chose them simply based on how much they talked because she didn’t want people that don’t talk in her team. Which I felt was a dig at me. I tend to hate smalltalk and struggle to talk to people I don’t feel comfortable with. Not that I dislike certain people, but I think there’s certain people that I tend to instantly connect with and feel myself, whereas others I find more intimidating and it takes me a while to open up. I can talk a lot at that point but sometimes people’s first impressions are that I am too shy.
When it came to the inductions, the Product Owner, Tech Lead and Scrum Master were all assigned to the “Welcome Meeting”. Dennis was assigned the “Ways Of Working” meeting, then Tech Lead, Scrum master and Dennis were assigned as Technical Mentors. Me and my tester who had joined the team weren’t assigned to anything. You could argue we hadn’t fully integrated into the team but we knew the process and weren’t new to the company. We felt disrespected there, like we weren’t official members of the team.
Complains about autonomy
During testing some of the remaining items, a bug was found, and I took the initiative and fixed it.
“we can’t keep working like this. You can’t keep finding bugs and fixing them”
Mary
She had berated us for not having many unit tests but that actually allowed us to work faster. She complains that I have made the decision to fix a newly discovered bug without consulting, but that also got it fixed faster. Then she was “really disappointed” that we had missed the deadline. It would have been worse if I hadn’t made these decisions.
However, the next day:
“Thanks both, efforts haven’t gone unnoticed with all this, I just feel bad for you guys it’s got so manic for so long”.
Mary
Performance Review
“You’ve got the ability to not be quiet”
Mary
In my end of year performance review, Mary says she has noticed an improvement since I joined the team. I think this is just coincidence and confirmation bias. I think she wanted to “manage” me and see an improvement; so that’s what she thought she saw. I was actually demotivated due to all the disrespect and had actually been taking longer breaks and finishing early.
Mary also told me that Colin told her what I said about her during the handover period. Colin is an absolute backstabber. What happened to talking to managers in confidence?
What I said to Colin is that Mary seems to try and micromanage. Constantly asking for updates, telling you to pick up tasks that you know you have on your To Do list. It’s like she doesn’t trust you to be autonomous, and then can claim credit for success because she has been controlling it the entire time – even if it would have had the same outcome if people were just left to manage themselves.
She also mentioned the tester had complained that I hadn’t had a call with him when he asked. I wanted to have a call but he was on a call for what seemed like hours. Then when he was free, I was busy so I missed the call again.
I actually thought she was rather positive and very friendly during the review; a change in mood that remained.
Closing Thoughts
It was a weird initial few months with that team. The hype of them being organised and productive didn’t seem to be true. Then I felt like I wasn’t welcome even though I was good friends with the main developers of the team, and had actually worked with the tester previously and got on with him.
I must have caught them at a bad time, because after the current projects were released, I didn’t notice much erratic behaviour from anyone, and Mary was never problematic again. What seemed like a nightmare quickly resolved itself and I have actually really enjoyed working with the team over the last couple of years. I suppose it could have been helped by the fact that Mary did take 1 year maternity leave and then we worked more autonomously. Maybe shows that these manager roles aren’t actually needed.
I always find it interesting when people work in a particular job then get promoted into management. It’s a completely different set of skills and if it’s a fair promotion, the idea of getting so good at your job, that you no longer do that job anymore; is another illogical aspect of it.
One thing that always amazes me is when people make decisions that they know are a bad idea from their experience doing the job.
When I worked as a software tester, my view is that we were essentially there to find any bugs that exist.Part of finding them is to document how to recreate the bug so that developers could fix it. Extending this process so it’s more complex, more stages, or involves more people – causes people to not want to find bugs.
There were times where I witnessed people do the bare minimum and they would ignore bugs that didn’t appear severe to them.
One of the worst people I’ve worked with was an average tester who wanted to become a Test Manager, and he ended up trying to make the process more complex and often announced changes in a condescending way.
When testers found a bug and wanted to investigate it, they would often try to recreate it, sometimes under different scenarios to work out the scope and impact of the bug, then will tell a developer their findings and only then get it logged.
Therefore there was a delay between finding the bug and actually logging it. So we got an email from the Test Manager like so:
All,It is important that as soon as you discover a defect, you raise a defect for this BEFORE you speak with the developer. Any defects raised can easily be closed if they have been raised in error or discovered by the developer to not be an issue. We run the risk of releasing with defects that could potentially cause serious issues for our customers.
I understand his point that – if managers are checking the system to see what bugs are outstanding and they don’t see them all, then potentially, the software could end up being released with bugs. However, the process started getting worse from then on:
Please can you include myself and Becky on any emails that are discussing a defect with a developer. This is so that we are both kept updated with any defects that could cause issues. Also for every defect you raise, I’d like an email to myself and Becky with the follow information : -- WorkItem ID - Title - Area - Any other information you feel relevant.
So now when we discover a bug, we had to log it straight away without the investigation, email two Test Managers, then copy in any further emails to them. Then as more information is known, update the bug report, and making sure we also had an appropriate workaround if the bug did get released (or is already released).
All,When you are filling out the SLA tab for a defect you need to ensure that if you’ve specified that there is a workaround available that the Workaround box is filled in with the Workaround.
If you’ve raised any defect that is a Severity 3 this MUST be fixed before the branch is signed off. This is our exit criteria, we do not sign a release off with any Sev 1, 2s or 3s. if the developer disagrees with this, escalate it to myself and Becky and we’ll deal with it.
Often when we logged a bug, he was either emailing you or comes to your desk to ask why you haven’t triaged it with a developer yet. Sometimes he did that within 10 minutes of you logging it. So he wanted you to log it before triaging, but would then demand that you triage it even if you haven’t had chance to contact an appropriate developer.
You’d also have other test cases to run which he was always on your back to give him constant status reports. It was hard to win because if you have tests to run and have found bugs, then he will want you to triage them but sometimes helping the developer could take hours which means you aren’t testing, so he will be asking why you haven’t run your tests.
That level of micromanaging and demanding updates wasn’t great for morale and also encouraged Software Testers to stop logging the bugs they found because it just added to their own workload and stress.
It seemed better just to steadily get through the tests, but I suppose if you didn’t want to log bugs, then what was the point in actually running the tests? I did suspect some people just marked them as passed and hoped there wasn’t an obvious bug they missed.
It’s been a long time since I wrote about Colin, a pretty incompetent software developer that seemed to be good friends with one of the high-ranking managers that seemed to lead to some bizarre promotions: to Senior Developer, to Principal Developer, then eventually switching to a managerial role. Talk about failing upwards.
The thing is, he came across as a bit scatter-brained so couldn’t imagine him actually being a good manager.
Here are some random stories I found from my notes and chat logs about how he performed as a manager.
Salary
Mike said Colin began sharing his screen on a meeting, and had a list of salary changes in a spreadsheet. Interesting how they have salaries lined up BEFORE the reviews which we haven’t had. Just as I have previously suspected. I suppose other managers have messed up in the past when a promotion was announced a week prior to the performance reviews.
I can imagine Colin eventually getting sacked for that type of mistake. It’s classic Colin, and as I predicted, the mistake did happen again a few months later. This time at a meeting I was involved in. We were trying to hire new developers for Colin’s teams. Colin was sharing his screen and had a list of employees that were leaving and their salaries.
When it came to my reviews, Colin kept on saying I was doing a great job but then pointing out one thing that was holding me back. It always seemed like an excuse to not give me more money or promote me. When I did switch managers, my new manager promoted me within a few months and gave me a £14k raise due to how behind I was compared to my peers.
Arranging Meetings
Colin often arranged meetings then didn’t turn up, or turned up late. He was constantly saying he was busy all day with meetings so sometimes scheduled meetings at bizarre times.
I was particularly annoyed when he arranged a weekly update meeting during lunchtimes, then half of the time doesn’t even show up. The update was mainly for him to collate info then take it to his manager, but he said we had to give our updates to the other teams, much like an Agile Scrum of Scrums meeting. So regardless if he was there, he went ahead.
There were some other meetings which he arranged, and where he was an important attendee and he turned up 25 mins late.
One time, I was about to leave for the day, and Colin said he had an end of year review meeting with someone in Chennai. That would be 10:30pm on a Friday. Indians often have a dedicated attitude towards work. I think just because they would agree to something like that, doesn’t mean you should actually book it.
An example of scatter-brained or panicky behaviour was when he started a meeting, shared the wrong screen. He declares he is “sharing the wrong screen”, but instead of stopping ‘sharing’, he leaves the meeting, then takes him a few minutes to actually rejoin the call, where he carries on like nothing weird happened.
Informing & Criticising
Colin: "he is coming in as a Solutions Architect rather than Technical Architect" Me: "what's the difference in the roles?" Colin: "I don't know, I'm just telling you the news"
I thought it was funny when he gave an update on the performance of the teams he was managing. “Last week was pretty bad for us. You guys don’t know this“, then says there were 8 Major Incidents, which got escalated to the Directors. What made it more funny to me was that the CEO had given out bonuses to his teams for apparently doing a great job. It was a fairly small bonus like a £50 Amazon gift card but still probably a regrettable action. I’ve said many times that managers seem to reward the wrong behaviour and struggle to identify the best performers. That’s another example. How can you go from doing a great job, to creating 8 disasters in one week?
I often found Colin to not practice what he preaches. So might lecture people about needing to improve code quality, but when he was a software developer, he was constantly cowboying solutions. Another example was that he says we should never put-off taking our annual leave because it can hide problems (it would illustrate a reliance on someone if they weren’t in), and show higher output for months then would suddenly drop towards the end of the year when people take annual leave at once. Then after his lecture, he then admits he hadn’t even taken 1 day off and we were 75% through the year.
Colin complained that Rob and I haven’t handled the project well, and it overran by over a month. A week or so later, the team was on a call with other stakeholders and he said “you guys have done a tremendous job”, then said the delay was caused purely by scope creep and nothing to do with the developers at all. I don’t know what to believe there. Maybe he did believe it was our fault but didn’t want to berate us publicly so was deflecting like a good manager. However, not declaring that to us meant we got mixed messages.
Near the end of that project, Colin showed me the items we had remaining and was like “you only have a few left to do…surely you can complete it all quickly”. I told Rob and he was as annoyed as me:
Rob: Its things like that that really make me nervous Blind hope without actually looking into the problems SURELY you can do it quickly right? If not you must be crap! Thanks for the morale boost!
The problem is, the project has dragged on due to complications, so the remaining work is probably quite difficult, but Colin is just seeing simple numbers. “3 tasks left; that’s not a lot”. But each task could take a week or two to get right. So even between 2 of us, it could take 2 weeks. Then Colin is setting the expectation it can be done within the week.
Closing Thoughts
When people have done a job for a while, then become a manager of those people, you would expect them to be great managers because they understand the work involved, the process, and problems they have faced with previous managers. However, time and time again, it’s like people forget their experiences and end up becoming bad managers.
I’ve written blogs about how our CTO tried to change our release process and announced it on a “Town Hall” call with the entire department; then loads of teams told him it couldn’t be done, so he had to back down.
Then later, on another Town Hall, he tried to change the Change Control process, but wouldn’t back down when we told him it wouldn’t work. He made the claim of it being a sackable offence if we didn’t follow it. Then a month later, he found out someone couldn’t turn a server on because of the Change Control process. He said it was “malicious compliance” and that will be a sackable offence in future. Within a few months, nearly the entire process had been reverted.
Last week, he was talking about how we needed to move a Data Centre to a new location. He said he preferred to move to the Cloud since it is “inline with our strategic targets”. However, after having several meetings with the experts involved in the Data Centre, they decided the best solution would be to move to another data centre. However, the CTO didn’t like this because it wasn’t inline with their strategy and he thought the move would be too slow.
Therefore, he took the executive decision to overrule them and demand they move to the cloud.
“Do I know we can move all servers to the cloud in time? No. But I was prepared to take the risk. I would rather make decisions and be wrong, than sit by and not make any”
CTO
It seemed strange to me to claim that moving to a physical data centre would be slow, but then moving to the Cloud probably couldn’t be done in time.
He then claimed that
“we have wasted enough time deciding what the plan should be; to move to the cloud or to move to a physical data centre”.
CTO
Isn’t this the worst scenario though? He could have made the decision before any meeting was arranged. But it sounds like they had debated the decision, came to a conclusion, then he told them he didn’t like their conclusion. Then he moaned that they wasted time debating.
So they have had meetings with the experts, and conclude the data centre is the best decision, but since the CTO loves the cloud, he has overruled them. So what was the value of the meeting? And will the staff be motivated to do something they don’t believe in?
“I think I’m compassionate with my team. It’s what binds us together as a team. Otherwise we are a bunch of individuals.”
CTO
I don’t get how he can make these statements and not realise the hypocrisy. How can you be compassionate if you have shown no confidence in their opinions and decision making?
When it comes to performance reviews, I find it hard to fill in the forms about myself, but it’s even harder to fill them about others. I often think you can write something to describe people’s general approach/attitude to work, and maybe point out a few strengths and weaknesses, but trying to answer specific and sometimes cryptic/ambiguous questions just frustrates me. I always think it should just be:
Strengths
Weaknesses
Other comments
But instead, last year we had to fill in the following about our manager. I think it was generally just scoring 1-5, but with optional comments to justify it. Some questions are easy to answer, but questions with nonsense buzz phrases like “change agent” and “builds internal networks” just frustrate me, and destroy the little enthusiasm I had for filling this in. I would have thought having fewer questions would mean people spend more time thinking about each one, and therefore get more accurate results and better comments.
Mary leads by example aligned to Our Values. Mary exemplifies values within their own teams and organisationally: Collaborative, Responsible, Supportive and Transformative
Mary is responsible for their team and takes accountability for delivery
Mary provides guidance and support in the setting of performance objectives at individual and group level
Mary manages performance of objectives (individual and group level) ensuring achievement of objectives through reviews
Mary builds an environment where people understand, and recognise, the contribution they make and how their role fits into the wider organisation and its performance
Mary is a change agent, leading change to ensure delivery through people with effective communication, support and results
Mary builds people knowledge and business understanding through regular communication with their people and teams
Mary engages with their team, encourages engagement amongst their team and cross-departmentally to drive solutions through collaboration
Mary builds internal networks to drive and collectively deliver through positive relationship-building and understanding
Mary embraces and encourages collaboration within their own team and between teams managing problems directly
Mary is aware of, and responsive to, the changing needs of their people (own team) and their wellbeing at work
Mary supports the engagement, retention and loyalty of key people as well as providing an environment where new people feel empowered and trusted
Mary is solutions-focused not problem-focused bringing all relevant parties together to deliver
Mary provides opportunity for all relevant parties to contribute, build and achieve collectively whether in their own teams or broader cross-department teamwork
What one thing is Mary doing that is having a positive impact on the team?
What one thing could Mary do to have a greater impact on the team?
This long blog documents what I have been working on for the past year. I had made lots of notes with the aim of writing a blog, in addition to taking extra notes from chat logs.
We actually estimated the project would take around 5 months, but then an extra 2 months for testing and go through our slow rollout process. It actually took closer to a year. I’d say it was a combination of:
realising the feature was more complicated than anticipated
the UX team had little knowledge of the actual user experience
managers changing or trying to change team members
We were told the project was important, yet we were only assigned 2 developers (as in myself and one other). As the project came to a close, we were being integrated into our new team, therefore other developers could help out during the final stages.
Here is a list of all the people involved over the project’s lifetime:
Name (Core team in bold)
Role
Me
Developer (Team Lead)
Daniel
Developer
Dean
Developer (Temporary)
Dennis
Developer (Temporary)
Tina
Tester
Tim
Tester
Colin
Technical Manager
Mary
Technical Manager
Olivia
Product Owner
Owen
Product Owner
Carl
Customer Representative
Adam
Architect
Andy
Architect
Grace
Safety & Legal Governance
Ulrika
UX
Ursula
UX
I’ve made the names start with a letter to represent their job title, apart from Colin because he is a recurring person in my blogs. I’ll put reminders throughout the blog so it is easy to follow.
Current Software
To protect anonymity, I need to come up with a different theme for what the software is for. Let’s say customers request various restricted items of different severity. So a request could come in for a Hunting Rifle, and the user needs to know if they have the adequate licence to possess firearms and they are deemed medically safe in a recent time-frame. Possible warnings are shown which the user can dismiss/acknowledge e.g. “licence is up for renewal in the next 3 months”, “recent purchase of other firearms”. Standard users can create “Awaiting Approval” tasks and assign them to users with authority to approve. To approve them, the authorised users open the task list, view the details, then click approve. Many tasks have either no warnings, or low-severity warnings, so users often just glance at the info and click Approve. The system then sends the approved request to a central system, then loads up the next task. There’s a couple of seconds delay due to the “digital signing”, a couple of seconds for sending, then loading up the next record. To sign loads of tasks, it’s a very slow and laborious process. It’s a major source of complaints from our users.
Unsafe/Unofficial Automation
Carl [Customer Representative] sent a link to a video where someone was demoing a commercial automated tool that autocompletes the tasks. It waits for the system to load, clicks the approve button, then repeat. So you could set it running, then walk away from your desk.
I thought it seemed ridiculously irresponsible and would cause people to be sacked if they got caught using such a tool:
A) The program is now the one authorising the tasks, not the qualified user. What’s the point needing to have qualifications if you aren’t even going to read what is on-screen? If a task was wrongly approved, then the user would be accountable.
B) if you walk away from your desk, you are leaving your PC unlocked, along with your physical Security Key.
The creator had actually put a bit of thought into it though. If there are any Warnings that require another click to dismiss/override, then the automation is paused.
The video claimed that some users have up to 500 tasks to sign after a weekend. They charge a fixed yearly fee of £295, plus 7p per customer on the system per year.
“the robot does not get bored, does not make human errors, and crucially is a lot cheaper than the user’s hourly wage”
Promotional video for the Automation tool
Probably just makes robotic errors instead!
I said we should change the names of the buttons to try and screw them since it probably uses something like that to locate the button to click. It would be quite funny to make them dish out refunds.
The existence of the automation tool shows how much the users desire a better solution.
UX User Feedback
Given the existence of such an automated tool, it is no surprise that one frequently requested feature is Batch Approval. Our UX team put together some kind of interactive prototype and invited a few users to provide feedback on two designs. The alternative design was actually produced by Mary [Technical Manager] who has no UX qualifications. I’m not sure how that came about and why UX agreed to trial her design, but the feedback was actually extremely favourable to her design.
This caused her to be quite smug and maybe caused some animosity as we will see later. The ratings out of 5 were:
(Option A) 4.3 for Mary’s design
(Option B) 2.3 for UX Team’s design
For additional comments, one user commented:
“I prefer Option A by a country mile – Option B feels even worse than the existing system!”
Another commented:
“Option B feels more clunky, less user friendly than option A. A lot of clicking involved”
One even gave a threatening response:
“Option A or you’re gonna lose me and my franchise”
Shortly, there was a write-up from a conference where the feature was announced:
“This item is one that really did steal the show – this is something that our customers have been very eager to see us implement and are very excited to learn that we are busy developing this solution.”
“Busy developing this solution” made me laugh, because at the time, all I had was a dialog box with a couple of lines of text and a button.
Proposed Change
The general idea, is that the user is presented with key details from the tasks in a data grid.
They can click checkboxes to select which tasks they want to approve.
These are added in a queue to send in the background.
The user can continue working as they are sending.
The “digital signing” has to take place on the user’s computer so a large part is done client-side.
The user has to remain logged in until the process is finished.
This project had actually been discussed for years, but because there wasn’t much of a “commercial drive” for it – we would be giving users this feature for free – it was always low priority.
Product Owner: Owen
I think the initial planning was done by a different Product Owner but then when the project fully began, we were assigned a new Product Owner, Owen, who was new to the company, but he also gave me the impression that he was new to the role…but also didn’t seem very clever in general.
Here are some quotes that happened in various meetings (mainly Sprint Planning and Refinement).
Owen: "which work item is it?"
Me: “the one right at the top"
Owen: slowly scrolls...chooses 2nd item
Me: "it's not a Must, it is a Could"
Owen saves it with Must tag
Tim [Tester]: "No, Owen, you tagged it wrong, go back"
Owen: "Which WI is this?"
saves it with the Must tag again
Then goes back into the work item and gets confused
then goes back into it again. I think he needs rebooting
Me: "you need to set the state"
Owen clicks to close
Me: "you need to set the state, go back"
Owen is confused
Me: "left hand side Owen!"
Owen hovers over the right
Me: "left hand side Owen!"
Owen moves down
Me: "leave it as it is"
Owen "Which one shall I take out?"
I'm sure he is intentionally 30 seconds behind to wind us all up
Owen changes Story Points from 3 to a 5 without any discussion.
"shall we keep it at 5?"
For another item, I was talking about how the requirement is either obsolete, or needs a completely different approach from the initial proposal.
Owen: "So how many points shall we add?"
"The system crashes when entering incorrect PIN and clicking 'OK' on error prompt"
Owen: "what was the behaviour before we fixed this?"
team: "It crashed"
We were discussing how we logged a bug a few months back but haven’t seen it occur since, so it will need some investigation to try work out what the recreation steps are.
“Assuming the bug still exists, how long will it take to fix it?”
Owen
Estimating software changes is hard, but I always think bugs are even harder to estimate. It’s only possible if there’s clear recreation steps, otherwise it is stupid to ask – we can’t fix it if we don’t know what the problem even is.
“depending on Grace’s [Safety & Legal Governance] feedback, do you know how long it would take to fix?”
Owen
Translation: can you predict what Grace would say, and given that she did say it, can you come up with an estimate for it?
I logged a bug about suggestions on how to improve a dialog. It would be up to Owen or UX to decide on the approach to fix it. Owen then asks questions along the lines of: “what do we need to do for this? do we need it?” I said it would be nice but it’s not my decision. Then he still asks “do we need it?” “can we close it?“
What’s the point asking me these questions, when I logged it with the aim of asking him to decide?
When the project deadline was looming, we ended up having multiple meetings to decide if there’s any features we could scrap, or defer to a later release. After the first meeting where we decided scope, he may as well have said “You know those items you said we need to do and couldn’t defer them, are you sure we can’t defer them”, because he was arranging subsequent meetings to go back over them. When we came up with estimates which showed that we would need at least another month, he was then arranging another meeting to re-estimate them.
The Architects
An important project started around the same time ours did. Our architect, Adam [Architect], was reassigned to the new project. Andy [Architect] joined our team as a replacement. He wasn’t completely new to the company but wasn’t familiar with this area of the system. Additionally, I don’t think he even looked at the software or even requested a demo.
Any question we asked him, he ended up making an excuse that he was busy and will get back to me later. Then when he did answer, I then sent a message to the original architect, Adam, and he said Andy had asked Adam about it and simply relayed the message back to us. So basically Andy wasn’t doing anything. We had him officially assigned, but it was Adam [Architect] that was answering the questions but via a middle-man.
The July Cancellation
There was a bit of disruption when our project looked to be cancelled, but there was apparently some mis-communication.
Hi All, a decision has been made by Directors to stop Batch Approval and to move resources across to pick up Project France instead. Therefore I will be cancelling the Batch Approval meetings.
Project Manager
1 day Later
The directors had decided to move you to the new project so I cancelled the meetings, but then I find that there wasn’t a firm decision from the Directors.
Project Manager
Brian has asked us to proceed with Batch Approval as originally planned. Sorry about the chaos dudes. They must be smoking some good drugs upstairs.
Olivia [Product Owner]
It was off the table, then someone put it back on the table, then someone else swept it off the table, then someone picked it up off the floor and put it back on the table.
Andy [Architect]
Coding Tales
Colin [Technical Manager]: "What sprint are you in?"
Me: "I dunno"
Colin [Technical Manager]: "you are the team lead, you should know"
Me: "No one in the team knows"
Put it in a new tab but make it behave like a dialog
The original UX designs looked like it fit nicely in the existing Task Framework. The requirements were that Batch Approval had:
Its own folder but is a sub-folder of Approvals
Opening a task opens it in a new tab
After looking at the code though, the framework didn’t actually support a sub-item. But we found a basic workaround to make it look like it did. However, there were quite a few features that we got “for free”, but we didn’t want them because they weren’t appropriate for a sub folder. So I had to disable the features by hacky code.
If you double click a task, then it opens in a new tab, which is what they wanted. However, they then didn’t want you to be able to navigate away into other parts of the system, and the Task Framework didn’t support that. With a bit of a workaround, I got that working, but the tab was designed to view one task only, and we are displaying a Batch of them. A few weeks went by and I managed to cobble something together, but the code was awful.
I took a step back and thought about it.
We have a tab that the users surely would expect to be able to move away from to view other tabs.
I’m using this “tab” which is designed for a single task, and I want multiple. So I had to make my own custom page.
We have hacked a sub folder and had to basically fight against the codebase to get it all working…
So why don’t we just have a button on the main folder, and it launches a modal dialog?
It would take a couple of days to get working,
the code would be neat,
and I think it’s what the user would expect.
After speaking to UX about it, they were happy with my proposal. I had wasted about 3 weeks trying to get it working like they previously wanted. Also, we are again telling UX what a good UX design is.
Scrollbar
The UX was also clear that we didn’t want a scrollbar to appear, and instead we use pagination. I didn’t see anything obvious in the standard DataGridView Winforms control, although I’m sure this is a common problem/requirement.
I ended up writing my own logic to add controls to the grid, keep track of the size, then stop adding when the size exceeds the height of the control. However, if there is only 1 very large task, we have no choice but to use a scrollbar.
The problem we encountered was that sometimes a scrollbar did appear when it shouldn’t. I made some tweaks to the calculation and it seemed to work fine. But then a Tester found a combination of task sizes where it still appeared. I couldn’t work out what I was missing in the calculations but it seemed about 4 pixels off, so I just added that into the calculation. Again, all seemed fine for a few days, but then the Tester found a combination of sizes where it still appeared.
Olivia [Product Owner] suggested that we detect when there is a scrollbar then disable the Approve button until the user scrolls down.
I said if we know when the scrollbar is there, why don’t we just remove the last task and check for the scrollbar again, repeat until the scrollbar has gone. I thought the code would be messy, and I’d end up writing a stupid code comment like “mate, something has gone wrong with the calculations here, so we’re gonna have to do some jiggery pokery to get out of this mess”.
Adam [Architect] did suggest some alternatives and they were just as wildly wrong.
Dean, a developer in another team agreed to help, and after a couple of days, he says “you can just set the vertical scrollbar to be disabled”.
But if the scrollbar is appearing so you have to scroll to view the content, then surely disabling the scrollbar will mean content is off the screen?
I tested his idea, and it worked fine! What must be happening is that the vertical scrollbar appears and takes some of the horizontal space… which causes the text to wrap and creates the need for more vertical space. Therefore the scrollbar is required and so remains. But if you tell the scrollbar it cannot appear, then the controls are added, and my calculations meant it fit perfectly in the grid.
It’s a self-fulfilling prophecy!
Olivia [Product Owner]: Do we have concerns about the unknowns?
Tim [Tester]: It's just the unknowns that we don't know about
I feel like you need to know the system inside and out to be able to safely implement this
Conflict With The UX Team
UX: “We want to minimise pop-ups”
Also UX: “Add a pop up after closing the dialog”
Ulrika [UX] had to take time off to deal with some personal problems. Ursula [UX] agreed to join the meeting we arranged on the Wednesday.
“I don’t work Thursday/Friday and have to leave early on a Wednesday to get the kids. I’ll get back to you next week”.
Ursula covers for Ulrika but then also has time off.
When she got back to us, she seemed to overlook how users access this restricted part of the system, and it turned out none of the UX team actually had this knowledge. So halfway through the project, we were discovering new requirements because they hadn’t designed the user flow.
Don’t Have Time
In early January, we were waiting for UX to give us some approved text but they seemed to be taking their time. I asked Olivia [Product Owner] what was going on, and she said that we don’t have time to make any more changes so they “needed to stop requesting changes”. Even though I pointed out that I was the one requesting changes, she said “we don’t have time to test” (even though it only involved quickly checking some text has changed on a message box). Nearly 2 months went by before we actually began to release.
After more protests from me, she says:
“The text is fine for now. We don’t have time to be changing it.”
Olivia [Product Owner]
When it came for the final review, reviewers questioned why we had dialogs with some ToDO comments on it saying “ToDo: Awaiting UX approval“. Even if you don’t have comments like that, I have seen developers question the user-facing messages if the grammar isn’t correct or sounds unclear. It definitely wasn’t clear because we just wrote the first thing that popped into our heads at the time; knowing the text would be replaced.
I think what had happened was that Mary [Technical Manager] and Olivia [Product Owner] had fallen out with Ulrika [UX], and then was refusing to authorise her changes. Remember, tensions will have been building since users criticised Ulrika’s design and wanted Mary’s design, and Mary’s arrogance about it wouldn’t have gone down well.
It’s just part of the process though – all text needs to be approved by the UX team; otherwise what is the point of their team?
Conflict With The Architect
When we implemented Adam [Architect]’s suggested invalidation logic, we thought the criteria was too restrictive. Adam was off on annual leave for a few weeks so we couldn’t consult him. So we made our own decision to change it, and got Carl [Customer Representative] and Grace [Safety & Legal Governance] in agreement. However, when the Architect saw it, he said it was unsafe. In many meetings, I got the impression Grace wasn’t really listening and she tended to agree with what we said. Not exactly great when your job involves telling the team what is safe and legal, and then get overruled by the Architect.
We came up with a compromise, and implemented it. Then when it came to the Code Review, Adam suggested removing one more of the sub-rules which I think would be perfect, but then Olivia [Product Owner] was reluctant for us to make more changes.
Then a week later, Olivia said she would arrange another meeting to discuss the rules because she felt it might be too restrictive. OMG. However, she then seemed to have personal grievances with Adam, so told me not to make the simple change, even though it would be what we want. She used the excuse of lack of Testing time.
Adam [Architect]
We shouldn’t be knowingly introducing bugs.
Olivia [Product Owner]
This is not a bug. It’s a change to the criteria and we are not going to change it a week before we finish. I am speaking to Carl [Customer Representative] about changing the criteria, and we’ll look at it then.
Adam [Architect]
A bug is any deviation from requirements. Why are you planning on changing it if it is not a bug?
Olivia [Product Owner]
That’s not a bug. You are right in the sense that we need to change it…we’re just not changing it now. I was happy to leave it as it was to get this out of the door. That’s my call to make.
Mary [Technical Manager]
There's a lot that's not right. But how long do we keep going until we give it to the customers?
A summary of how this situation appears to me:
There is a process, but if you declare you want to move the process to the next release, then it is fine.
It will take too long to change a few lines of code, so we ain’t doing it. Apart from when it is a comment on the Code Review, then we are doing it, apart from those that we aren’t.
It takes longer for Olivia [Product Owner] to argue against it than to fix it.
The CEO had recently posted:
“The most important thing we do every day is keep our users and their customers safe by managing risk effectively. I know you all know this, but it warrants repeating: safety is our number 1 priority all day, every day – regardless of anything else that is going on. It trumps everything. Please always remember that.”
CEO
Our Managers are like:
“Next release”
The Technical Manager change
Colin [Technical Manager] complains that Daniel [Developer] and I haven’t handled the project well – and it overran by over a month at that point. A week or so later, the team was on a call with other stakeholders and he said
“you guys have done a tremendous job”,
Colin
then said the delay “was caused purely by scope-creep and nothing to do with the developers at all”.
“Mary is in charge of the team since yesterday”
Colin [Technical Manager] with his timely announcement
I got the impression that Mary just wanted to get rid of the project, because it was dragging on for far too long.
The Testers had nothing to do since us Developers were working on the last few bug fixes. Tina [Tester] said she was just re-testing old features to pass the time, but also get extra confidence there are no remaining bugs. Mary [Technical Manager] replied:
“should we be doing testing when changes are ongoing?”
Mary
Well, in that case, this statement means testers should only be hired for a couple of weeks right at the end of a project – since changes are constantly ongoing. I think she might have intended it to mean like “you’d better not find more bugs!”, but if there are bugs, then you definitely want to find them before our users do.
On the last day of the Sprint, Tina [Tester] took annual leave. She had left her assigned items in the “To Test” column of the Kanban board. There was no evidence she had tested the item, so I don’t think it wasn’t a case of just forgetting to move to “PO Approval” column. Olivia [Product Owner] and Mary [Technical Manager] then decided to just close the items. No evidence, no demo – just close them so the Sprint looks good, and looks ready to release.
What annoys me is that Mary had criticised how we had run our team and suggested we don’t follow the process. She stated that she perfectly follows the process – which leads to her successful projects. Then I see her cutting corners like that.
Just like Colin, she criticises me to my face, but then when we are in a group she states:
“I think you’ve done a fantastic job given that there’s only 4 of you”
Mary
A few days later, I had finished what I was assigned, but there was a bug on the backlog which Mary [Technical Manager] seemed to want to defer (again, she just wanted to release the project as soon as possible). I thought it couldn’t be released without this fix. I stated that I would like to look at it and she said:
“don’t do any development work”
Mary
Seems I have the day off then. What is the point in me sat around doing nothing? If I fix it, we can decide if it goes straight in, or deferred for the next release. Or maybe I won’t even find a solution. She just seemed desperate to finish the project so wasn’t considering the seriousness of the bug, or thinking logically at all.
The Backstab
I didn’t actually sit around doing nothing. I worked hard and found a solution. I knew that there was no chance Mary would accept my changes, so I needed to come up with a way of convincing her. My plan was to get the testers to informally test it, then I can say that I have a fix, and the testers are happy that there’s low risk of introducing more issues – so she would be stupid to reject it.
Testers Tim and Tina were in agreement that the fix should definitely go out in the initial release, and they agreed Mary was making a bad decision to consider releasing without it.
Tim said he would “have to check with Mary if he was allowed to spend time testing it” since they got told not to test anything. I said “there is no way she would approve it, that’s why we are doing this informally/secretively”. If Tim and Tina test it and find a bug, my plan has failed and Mary never needs to know that I attempted it.
It’s a perfect plan, or it would have been, but Tim then goes and tells Mary that I asked them to test it.
“You gotta start being better with your comminications – it’s not just yours and Tim/Tina’s decision if something gets put into the release – it’s a whole team decision but ultimately mine and Olivia’s. You’ve messaged them directly asking if they can get it tested, and as much as they’ll also want to get it done, it then puts them under pressure. This is how you’ve all got to a stage of being all over the place and burning yourselves out, it’s got to stop please.”
Mary’s chastisement
I shouldn’t have to go behind people’s backs and make my own decisions, but the entire non-management side of the team thought it should go in, and only the managers thought it shouldn’t. As a team we care about quality, but managers are just focussed on deadlines.
I also didn’t appreciate that she is accusing my decision making of adding stress to my team.
80% coverage
As the project got towards completion, I recalled our stupid “Merge Ready” process that no one seems to care about other than the small team who came up with it. You have to justify the likes of Code Coverage, and ours was at a low figure like 10%.
I’ll write some blog posts about my reasoning on when tests are good or bad in the future. A simple explanation is that Units tests are good when covering requirements, but often developers write them to cover implementation i.e. verify a particular method is called; but not that the particular method actually works. When you switch implementation, you have to rewrite a new unit test, slowing you down. Unit Tests are supposed to help you refactor, but in this case, it is a hindrance to refactoring. We did a lot of prototyping early on, and knew there would be large re-writes, so Daniel [Developer] and I decided to worry about Unit Tests later on.
When I declared the low number of Unit Tests, Olivia ended up raising it to the Directors for some reason. Why was it their concern? Do they even know what Unit Tests are for, and what the coverage actually means?
It could jeopordise my chance of payrises (I was correct, I got 0% this year) and tarnishes my reputation.
When Mary joined the team, she berated me over this decision and made the dramatic statement:
“We can’t go on like this”
Mary
She then asked a couple of her favourite developers to write some Unit Tests for my project, completely undermining me.
The thing is, both Dean [Developer (Temporary)] and Dennis [Developer (Temporary)] spent way longer than they estimated, and they didn’t do as much as they hyped, then when it came to make the last few changes, it slowed us down.
We ended up around 22% in the end, and the managers decided that is fine.
That’s the problem with us though… Do 80% coverage because it’s important. But actually it’s not that important, so you don’t need 80%. But TRY get 80%, Why?, Dunno, but the Document says.
Tim [Tester]
On track
Dennis [Developer (Temporary)] was also asked to helping out address the Code Review comments. In some ways, this kinda slowed us down. I told him I had a branch with some changes in already and sent him a link to it so we can work together. When I caught up with him the next day, he said that he had been working on a few of the ones I already had done because he hadn’t looked at the link. What a waste of time.
When Mary asked for a progress report, Dennis reckoned it would take 1 day to go through 20 comments, but he had done 8 easy ones the day before, and we had the hard ones left. So I said it would be more like 4 days, but could take longer if they are surprisingly complicated. I was correct.
Manager: How's the project coming along? Developer: It's on track.
On the final Project Demo, Carl [Customer Representative] was saying the sending process was far too slow. He had been on most of the demos from the start and saw the progress across the project.
The original version I showed him was incredibly slow, but I had managed to speed it up significantly. So despite him witnessing the project months ago, he said the performance was a concern and maybe users would think it wasn’t a significant improvement.
We had all kinds of people turn up to this final demo. People from support, training etc. We should have had those guys on the early meetings. They were prodding holes in the requirements and asking important questions. Although we gave good answers for most of them, I couldn’t help but think our changes might not be as useful as we thought.
If only we got more users involved throughout the project, rather than just some UX mock-ups before we started, and then a year later – give them the update and hope for the best.
I’d like to reiterate just how hard the team has worked. They have worked their little socks off
Olivia [Product Owner]
Conclusion
We were told the importance of the project, but because there wasn’t a direct commercial aspect to the project, I felt it wasn’t backed up by the number of developers assigned to the project. With only 2 developers, then key staff like Architects and Product Owners switching throughout the project; it just slowed us all down and made us all feel it was actually a low-priority project.
There were other morale-reducing aspects like when we were told the project was on hold, then Mary berating my decisions, and implying the failures were down to me.
There wasn’t a great understanding of the feature in many ways, illustrated by
how many requirements we discovered throughout the project,
the UX team being clueless about many aspects,
one Product Owner so clueless – it seemed he struggled to use a computer,
then switching to a clueless Architect that just went straight to the original architect.
Many years ago, I was listening to a podcast where a group of women were talking about their experiences in Software Development. I think Person A had started their own company so now didn’t do much development because they were now the CEO. Person B had switched to teaching software development and was going to take up a role as a “Developer Advocate” which I think is kind of a teaching role; making tutorials and promoting via social media. Then Person C seemed happy being a software developer.
In other blogs, I’ve briefly mentioned my observations with women in software development. I find there’s a much higher percentage of women that will desire to go into management, whereas many men seem to love the idea of a career constantly coding.
I’ve followed a few of the women from the podcast, intrigued where their careers would go. Person A and B are still CEO and Developer Advocate, respectively. Person C, who was happy being a software developer had apparently got their dream job at a big tech company early 2021.
“I’m so lucky I get to do something I love for a living”
Neary a year later, they announce they are taking a year out due to maternity. A few months later, they state how being a new mother has given them new inspiration as a software developer. I wasn’t sure if she had been coding in her free time, or was just posting for attention.
She claimed that she could:
“tap into new-found inspiration and creativity”
“think about more nuanced edge cases”
“Be more efficient”
“better at asking for help”
“better at asking the right questions”
The justification was that you have extra accountability, have to maximise how you spend time/money, ask for assistance when you struggle to support your child. It was quite tenuous and when people asked her to elaborate on how it really helps coding, she just accused them of “toxic masculinity”.
Only 2 months later, she announces that she applied to switch roles to become an Engineering Manager. Wait, what!? What happened to all that boasting about securing her dream role at her dream company? What about this new-found inspiration to be a better developer?
How can that mentality shift in such a short space of time?
“I kinda just fell out of love with coding”
People often say that social media gives people a skewed perception of people’s realities, because it is a filtered view: people only post the good stuff, and sometimes even modify the photos. If someone goes on holiday, you see the beautiful sunny beach, and the exciting scuba diving session. You don’t hear about the argument they had with their partner, or how they were bedridden with illness on the other days.
So was she lying about her love for coding? Were the development teams at this company not well suited to her mindset or ability?
When she did return from maternity leave, she then said he loved being a manager “way more than I liked being a software developer.”
I do find it odd that her mentality has always seemed to be focussed on promoting women in tech, and calling out “bro culture”, but then she has ditched being a developer and followed the stereotype of being a manager instead.