Push your own flywheel

Today marks my 20 years working in the software industry. I was going to write a post about what I’ve done over that time and my takeaways from all the weird and beautiful things I’ve done. I might still do, but below is something that’s taken me nearly 20 years to realise. I don’t know why it’s taking me so long. Perhaps it’s age, getting things wrong (a lot), reflecting more on what I’m doing or all of the above. Whatever it is, I wish I understood this when I was younger. Who knows what I might have accomplished otherwise?

Either way, I know it now, so let’s see what the next 20 years hold now that I’m pushing myself and worrying a lot less about what happens.

Push your own flywheel.

There are many opportunities out there, but the vast majority won’t look like opportunities. It will only do so after the fact. The best thing you can do is push yourself forward and try different things. There’s no guarantee that the things you try will work or even be successful long-term. But the more you do, the more opportunities you’ll find yourself in. It starts becoming a flywheel, but to get it moving, you’ve got to push it first. One of the most complex parts of this approach is how long and hard you’ll have to push. Most people (me included!) give up too soon, usually at the first attempt, as it didn’t work out as you expected. 

The more comfortable you get with pushing yourself, the easier it becomes to move your flywheel. But suppose you’re constantly looking for external sources to push you or waiting for the right opportunity. In that case, you’ll either be waiting for a long time or worse, when the opportunity comes, you’re nowhere near ready to take full advantage of it. 

But when you are proactive, people begin to spot that you’re the person who can do things. They will start pushing opportunities forward to you – the flywheel starts moving from external sources. People often need to see you are ready (or close enough to be ready) before they likely push you forward for that opportunity. You can try faking it until you make it, but people often spot that you’re faking. Why? Because they’ve never seen you do anything else. So why would you suddenly be able to do it now?

Pushing my own flywheel 

About ten years ago, I started talking at conferences as it terrified me, so what better way to try and get over it than by doing it more? Luckily, it worked. However, I often questioned why I put so much effort into overcoming this fear. It was costing me more (lots of personal time and anxiety) than I was getting out of it (any recognition that anyone got anything from it). But I found things I enjoyed and kept at, slowly becoming more comfortable and better. 

Over the last two years, I’ve also been doing a lot of work around psychological safety for reasons I’ll not go into here. Still, I’m happy to talk more (message me). I have put together a talk on fostering more psychological safety in our teams. However, I was still determining what to do with it. 

Then, in late September 2022, I heard the organisation I work for would have a whole-day in-person internal-only engineering conference. So I approached the organisers to see if I could get a slot. I did, but it was only 10 minutes, so I had to cut back and focus on the message. 

At this conference, I might have given my best talk to date. It’s also one of my shortest but has taken the most effort to put together. It took almost 18 months to develop my understanding of the subject matter to know what I wanted to talk about. Then, getting feedback (massive thank you to all that did) and iterating on it months before to come in under ten minutes. Plus, the ten years honing my presentation skills. 

Jit Gosai standing on stage at the Old Trafford cricket ground for BBC Platform Engineering Conference 2022.

It was not until weeks after the talk that I realised this was one of my most significant opportunities to push forward the work I’m trying to do. There was no way I could have done that talk the way I wanted in the space of 2 weeks between asking to be able to speak and getting on that stage and delivering it. 

This one 10-minute talk led to two other more significant opportunities. My past speaking gigs got me on the radar of a track host at QCon. So when they asked if I had anything suitable, my psych safety work was perfect. But I only had 4 weeks to turn it around while still doing my day job. Luckily, I’d already done much of the hard work and just needed to pull it all together. Speaking on the Staff+ track at QCon in March 2023 was an opportunity that very rarely comes around. Especially for an engineering conference that doesn’t usually have testers (for a 3-day 6-track conference, I may have been the only one); in addition to that, most speakers are invited rather than the usual calls for speakers, making it much harder to secure a slot. 

Jit Gosai standing on stage at QCon London 2023 on the Staff+ track stage.

The second opportunity didn’t come around until another 5 months later and, at first, didn’t look like much. An internal team had seen my 10-minute psych safety talk and asked if I could do one for their upcoming away day. I now had my much longer QCon talk, so I offered them that, which they agreed to. It was a remote talk, so I didn’t get to meet the team on the day, but I got some nice comments after and didn’t think much more about it. 

It turned out that the room was full of HR representatives from all over the other parts of my organisation. Who all went back to their teams and told them this was the talk to see. Let’s just say I’ve run more workshops and talks in the last few months than I’ve done in the last few years! Massively accelerating my work with psychological safety throughout my department and across the organisation. And all because I could react so quickly to the opportunities, it allowed me to take maximum advantage of them. But to be able to do so was taking the gamble months, sometimes years before, without knowing how they would help in the future.

Connecting the dots

This reminds me of a quote from Steve Jobs during his 2015 Stanford Commence speech:

You can’t connect the dots looking forward; you can only connect them looking backward. So, you have to trust that the dots will somehow connect in your future. You have to trust in something–your gut, destiny, life, karma, whatever.

Steve Jobs 2015 Stanford Commence speech

It’s only with hindsight that I can now look back and see how things have connected to where I am today. I had to push myself in the present moment because whenever you look into the future, it’s almost always full of uncertainty and failure. And that’s the thing: there are always more ways for things to go wrong than right, but if you wait for certainty on the outcome, there is a good chance you will be too late and unable to exploit whatever opportunities come your way. 

This is why there are many opportunities out there, but often, they only look like it after the fact. Sometimes, you have to take a risk and see where it gets you. 

This is not to say you shouldn’t bother planning as you can’t control the outcomes, but recognise that your plans may not always go the way you intended. So, being adaptable and having a willingness to change can be advantageous. And more so if you’re willing to push through unknowns and failures. So far, the best way I’ve found to do this is to have a direction you want to head in and follow where the road in front leads you. As long as you look up occasionally to check your heading in the right direction, you will eventually get there. 

The other point to mention is that a lot of things that happen to you are chance. We live in a complex world, often doing quite complicated things. The best way to ensure nothing bad happens to you is to do nothing, but that also means nothing good will happen, either. Sometimes, you’ll get lucky and be in the right place at the right time. But you can improve your odds by doing more, which allows you to see more and be in the right place at the right time more often than not.

So find a way to push your own flywheel, and don’t worry too much about how things will connect. As long as you look up occasionally to ensure you’re still heading in the right direction, you’ll be alright. And you never know; those opportunities you’re chasing might start chasing you instead.

Reducing Uncertainty in Software Delivery

I recently attended a half day online event that InfoQ held on Reducing Uncertainty in Software Delivery. The thing that made this half day event different was the underlying focus on testing but without a single tester present in the talks or panel discussions. The majority of speakers where developers and there was even a few Engineering managers, Product people and a CEO or two. It also appeared to me that none of them have come from a traditional testing background. However they all made points that a good tester would and then some. The advantage they appear to have over testers is that they were able to incorporate their knowledge of their discipline to give a much broader view than just focusing on the testing itself. 

A key theme that I’m seeing from these talks is that they are spending a lot of effort on learning from failure. Either by analysing ones that have happened in production or actively encouraging teams to cause failures. It was only the more advanced organisations that were taking this approach but the others were not far behind. Why? To make their systems even more resilient. Their approach appears to be using Site Reliability Engineers (SRE) to work along side their engineering teams to help them do the work but also enable the teams to extract the learnings from it too. This isn’t simply having chaos testing to cause failures or postmortems for production failure analysis but to also help teams with the people side of working with and handling failure productively.

The talks that caught my interests were Building in reliability (SRE at Gremlin), User Simulation for Rapid Outage Mitigation (SRE at Uber), and a panel discussion on Testing in production (with 2 CEOs, Product person and an Engineering Manager). 

Now this is a small sample, the speakers are very experienced and working or have worked at some of the best known web based organisations (Google, Uber etc) and US focused too. But I’m seeing a lot of things that testers could advocate for being pursued and implemented by Site Reliability Engineers (SRE). For example: 

  • testing in production,
  • building in observability,
  • pushing testing earlier in the process,
  • encouraging developers to test their own work 

The advantage SREs have is they already have the technical ability and are now starting to build out the socio-technological skills that they were lacking previously. These organisations have another advantage in that they are heavily focused on learning from their failures. So when they do get things wrong they work hard to make sure they extract as much value from that failure as possible. On top of that some of these organisations are actively causing failures within their systems to further limit catastrophic failures that could occur.  Some of these organisations have never had tester and from the looks of things never will. If you’re pursuing a true continuous improvement strategy testers could look like a bottleneck in the process slowing down information flow. How can testers enable the flow of information and what can they add that makes this information even more valuable?  

I’ve pulled my summaries of the talks I found interesting below 

Talk: User Simulation for Rapid Outage Mitigation

Uber uses an alternative approach to end-to-end testing due to their system being so big that no one person can ever fully understand it. Instead they use composable tests that each team will create that allows that team to tests their part of the system but mix in other parts pre and post steps built by their dependent teams. These are then run in a simulation environment that allows them to see how the system will perform when that change is deployed. To incentives team to build the tests they use a mixture of pain (woke-up at 3AM due to production failure) and mitigation support team (hold their hands at 3AM) to encourage them to build the tests. For example if you had these test you wouldn’t be awake at 3AM trying to mitigate the issue. They also don’t try and solve the issues at 3AM but mitigate them so others can also learn about outages that affect their system.

Talk: Building in reliability

Interesting talk focusing in on availability of systems within organisations. The speaker walked through how you could go from 99% availability to 99.99% and how it is a learning journey. Used a simple analogy going from crawling, walking and running to get your availability towards what makes sense for your organisation. Essentially can you do it manually, can you script it and can you automate it? I find this slide as a great way to help others understand what the outcomes are at each stage going from 99% to 99.99%.

Panel: Measuring Value Realisation Through Testing in Production

I usually only see these types of conversation from tester focused panels but none of this panel where testers. Tester focused panels typically focus on testers testing in production but this was very much focused on learning from real users in production. Interesting thing from my prospective was they made all the points that I would expect a reasonably experienced tester to bring. In some cases due to their roles being out of testing they focused on the costs and benefits that were outside of simply testing in production e.g. down side of A/B testing or product management mindset shifts that need to happen to embrace learning from users rather then whatever the road map they have decided says.

In some ways testers testing in production almost act like the middlemen of the learning that happens during testing. Could it be that in some cases testers are getting in the way for teams to learn effectively from testing in production?

My biggest takeaways from AgileTD 2020: The future of testers isn’t in automation or testing

I was lucky enough to speak at AgileTD this year and also attend some of the talks. These are my main takeaways from the conference based on the talks that I was able to make.

My confirmation bias sense is tingling with this but…  

The future of testers is not in automation or testing it will play a part but not as big as – helping teams build quality-in.  

Most teams see testing as either bug hunting or just another cost centre that needs eliminating. Therefore testers (at all levels) need to get much better at communicating the value of testing.

As testers we need to start shifting our skill set from doing the testing to advocating for testing within teams.

The skills we need to develop will take time to build as it’s not a matter of just attending training but having hands on experience of using and applying the skills.   

Otherwise testers risk becoming irrelevant in teams that begin to form without the need for testers if (or when) the next shift happens.

What is working in our favour is the slow shift to adopt new development ideas such as those expressed in Accelerate. But also teams figuring out how to really collaborate and not just cooperate. Think of the dance of passing tickets around that happens in a lot of development teams.

Which talks should you take the time to watch?

So which of these talk further lead me to believe the above. Let me break it down:

The future of testers is not in automation or testing

That is not to say it will go away, but it will not be the main objective of our roles.

Is not automation: Automation Addiction by Huib Schoots and Paul Holland (Day 1)

  • A lot of people’s addiction to automation appears to come from automation tool manufactures marketing (promising the world) and sunk cost fallacy (making it hard for people to stop once they’ve started). I’d also add peoples job spec also asking for automation with no rational as to why they want it
  • It is good for some things, generally things we know how they should behave and especially when we can isolate them from the UI.
    • UI’s can behave in unpredictable ways so not always the best place to put automation that needs to be consistent and reliable
  • So what do you do?
  • Focus on teams and start small: 
    • (Focus on) exploratory testing,
    • (Start small with) a good test strategy that includes what is and is not to be tested
  • Automation should be focused and isolated

Is not testing: Let it go by Nicola Sedgwick (Day 3)

  • We as testers need to let go of testing and start focusing on how we help teams understand what quality is and how they build it in
  • Nicola does this by being a Quality Coach and using Quality Engineers embedded in teams to help them mitigates the risks
  • This was a great talk and something lots of others have been advocating.
  • I think we still need to better define the Quality Coach and Quality Engineer roles but we have to start somewhere
  • I’ve written a little about what testers could do next
  • You can also learn a more about Quality Engineer from my TestBash Manchester talk (paywalled)

Also see

  • Testing is not the goal! By Rob Meaney (See below for more)
  • Beyond the bugs by Rick Tracy (See below for more)

Communicating the value of testing

How to pitch and value testing properly in the age of DevOps by Bjorn Boisschot (Day 1)

  • A fairly simple and affected approach to getting the test team behind a testing vision that they can then use to describe what it is that they do.
  • Rather than the typical dry approach of traditional testing (test scripts, reports, bugs) which all reinforce the bug hunter viewpoint of testing
  • This gets testing focused more towards what the organisation is trying to do (think company mission statement) and focuses the testing vision towards that
  • This helps others understand that it more then just bug hunting but about helping make decisions on the quality of the products and how they affect end users
  • His approach was to create a testing mission based on the company vision statement. With a focus on the why of testing and not the what or the how (see Simon Sinek: Start with why). From there they created a number of goals that would help them achieve that mission. Then they used the goal, question, metrics technique to make it measurable.
  • For some in the org this approach made testing much more accessible and greatly improved their view of it.
    • But for others, well, they still didn’t care 

Beyond the bugs by Rick Tracy (Day 3)

  • As senior members of the test team we need to help our testers understand what value they bring to teams. Then give them the tools (verbal and written communication skills) to make their value relatable to other roles. Otherwise they are very likely to be seen as bug hunters and a cost that can be eliminated.  
  • Really fascinating talk where he showed how everyone outside of testing views our roles (bug hunters that cost money). He then showed how we need to cover three main arguments for others to see the value we bring. These being conceptually (does it make logical sense to them) practically (how can they/others use it) and monetary (what does it cost and what’s the ROI). 
  • He then applied these three arguments to different testing scenarios from doing no testing at all to shifting testing as far left as possible and doing it earlier and earlier in the process. Through this he showed how the initial investment in testing increased but would dramatically decrease the costs later on in the process due to issues being found earlier and therefore easier and cheaper to fix.
  • This all reinforced the idea that testers do much more then add costs to projects and finding bugs. Such as 
    • Manually finding issues that would otherwise affect users 
    • Testing earlier on in the process before code is written by testing requirements and designs to prevent issues entering into the systems earlier
    • Raising levels of team understanding in the product, the processes they use and potential issues that is could be introduced 
    • Types of risk that could affect the team and acting as a type of insurance of that risk 
    • Making testing relatable to non testers 
    • Providing sources of information for innovation and improvements within the teams ways of working 
  • But all of this doesn’t just happen. You have to invest in your testers (and them in themselves!) for them to be able to do this such as their technical skills, improving their awareness, understanding risk, alignment with the org etc. IMO: If you keep testers ‘dumb’ and just bug hunting then that is all you will get 
  • He then linked this investments to potential measures so you can see if your investments was paying off and a way for testers to see improvements. Cycle and lead times where two areas that came up quite often 
  • These measures where then linked to business value. Two main ones being faster time to market and improved customer trust in the product. 

The skills we need to develop

These skills are not limited to just these talk but are great examples of what they are

How to keep your agility as a tester by Ard Kramer (Day 1)

  • Great talk about how he uses the 4 virtues of stoicism to be a better testers. I actually think this would help a lot of people within development teams so if you’ve not heard of it before I recommend checking it out. 
  • This looks like a good resource https://iep.utm.edu/stoiceth/ but this talk focused on just the 4 virtues of wisdom, courage, justice and moderation 

Also see 

  • Extreme learning situations as testers (Day 3)
  • How to keep testers motivated by Federico Toledo (Day 3)
  • Beyond the bugs by Rick Tracy (See above)
  • Testing is not the goal! By Rob Meaney (See below)
  • Introducing psychological safety in a tribe (See below)
  • Growing Quality from Culture in Testing Times by Tom Young (See below)
  • Faster Delivery teams? Kill the Test column by Jit Gosai (See below)

Adopt new development ideas

Testing is not the goal! By Rob Meaney (Day 2)

  • From  testability > operability > observability and his journey with his learning with these techniques and how teams have be able to make use of them.
  • I think one of the really interesting points he made was understanding where your team is in their development life cycle.
    • Are they just starting out or are they an established team and product.
    • Depending on where you on this cycle will affect to what level you will need testability, operability and observability.
    • As the three things are about managing complexity and when you are starting out complexity isn’t the problem, product market fit is. 

Also see

  • Faster Delivery teams? Kill the Test column by Jit Gosai (See below)

How to really collaborate and not just cooperate

Growing Quality from Culture in Testing Times by Tom Young (Day 1)

  • Great story from Tom Young on how the BBC news mobile team have grown over the years and how focusing on their team culture has been one of the best ways to build quality into their product. All they way through the talk Tom shouted out to how the whole team help deliver their product

Faster Delivery teams? Kill the Test column by Jit Gosai (Day 2)

Introducing psychological safety in a tribe by Gitte Klitgaard and Morgan Ahlström (Day 3)

  • Hearing how other people have tried to address psychological safety in organisation was very interesting. There was a lot in the talk that I recognised from Amy Edmundsons work (Teaming and Fearless organisation). They didn’t use Amy definition of what psychological safety is but from what I’ve seen all the definitions are almost the same. Simply put are people willing to take interpersonal risks within group settings. If so they have psychological safety if not then they are considered lacking it. 
  • The things that stood out for me was that all these types of initiatives take time and constant work. They are not things that you run a workshop, take a few questionnaires and you have the safety.
  • Also psychological safety is very personal thing so what one person feels is not the same as another in the same team. 
  • There is also a lot of misconception around psychological safety in that people feel that in psychologically safe environments will no longer have any conflicts and is all about everyone being comfortable. This is not the case.
    • PS environments are about being able to share your thoughts and ideas without the worry that it could be used against you in some way.
    • The main reason for PS is to establish environments conducive to learning from each other – which is what is needed for the knowledge work that we do 
    • But to learn effectively your need some level of discomfort
    • Too much discomfort and it can tip into fear which causes the flight or flight response  
      • and you’re not learning anything other then self protection 
      • The best way to protect yourself? Don’t say anything that could lead to a situation that causes conflict… 
    • So PS environments are about people being able to work through conflict productively that can lead to new insights and ideas

There was many, many more talks at the conference (perhaps too many) that I wasn’t able to make and thats not including the workshops so it is worth looking through the programme and seeing what stands out for you.

Think I missed a talk that should be in the list above let me know in the comments.

What is it about that particular talk that makes you think it should be included?

What above do you disagree with?

How Falling Behind Can Get You Ahead

 📹  15 minutes TEDx talk from Manchester 2020 How falling behind can get you ahead some highlights: 

  • “Jack of all trades, master of none,” the saying goes. But it is culturally telling that we have chopped off the ending: “…but oftentimes better than master of one.”
  • In a society hyperfocused on headstarts, we are told to choose our paths early, focus narrowly, and start racking up our 10,000 hours of deliberate practice. But a mountain of research shows that, among people who end up fulfilled and successful, early specialization is the exception, not the rule.
  • Winding paths and mental meandering can be sources of power, not disadvantages, but we rarely hear those stories. David is trying to change this.

Specialising may not be such a great thing and references an interesting theory  Kind and Wicked Learning environments. 

Kind Learning environments  

  • Kind give lots of feedback as you progress which aid deliberate learning 
  • The rule of the system don’t change either so what it is today is the same tomorrow 
  • Golf and chess are such environments 

Wicked learning environments  

  • Mixed levels of feedback as you progress
  • Rules of the system keep changing 
  • I think software engineering maybe a wicked environment
  • But need to do more research  

The biases called out in the paper could be really helpful when thinking about decision making that affect learning in these environments. I’m also certain I’ve been influenced by survivorship, censorship, selection and the ‘hot stove’ biases.  

Agile Manchester 2020: Testers Edition

I’ve always found that tester representation at agile conferences to be lacking. It’s a bit like it doesn’t have the word test in the titles so it’s not for me. Personally I’ve always found a treasure trove of information from talks that are directly or indirectly related to software testing. Remember testing doesn’t always look like testing you sometimes need to change the frame with which you look at things to get the best out of them. 

Below are the talks that I attended with a brief summary of the talk and what it could mean for testers. 

Want the full unadulterated notes then see my personal notes.

Fighting Code Rot with Continuous Improvement 

by @garyfleming Slides http://bit.ly/fight-code-rot

Summary of the talk Good talk covering all the basic with keeping your system update and why. Well delivered and really useful for less experienced team members and a good recap for “they should know better” members.

For Testers For testers understanding what needs to be updated when can help them understand how that change could affect end users. Be proactive what do the release notes say for X, how do we use system Y. Building this knowledge takes time but can be really valuable in the long run. Start small and work your way up. Developers can help you but try and help by having specific questions for them.

Agile metrics for predicting the future 

by Mattia Battiston Slides: https://www.slideshare.net/mattiabattiston/agile-metrics-for-predicting-the-future

Summary of the talk: Forecasts will always beat estimates for non-deterministic projects (think all software projects). As they help you understand what could happen with a confidence rating. You’ve probably already got most of this data but knowing your lead times and throughput can help with this and some spreadsheets.
The key thing to remember is you need to talk to your stakeholder and make sure they understand what the numbers mean and how it affects them. Don’t just give them the spreadsheets and expect them to understand. 

For Testers: If quality means value to someone then value to people working in delivery roles is greater predictability with delivering our software systems. Understanding what these metrics are, how they are used and what affects them will not only enable you to have more productive conversation with delivery but also understand why they are important to that group. This will help you articulate risk better within your teams as you will be able to tailor the message to that specific audience. This will not only help you help them understand risk better but increase your value from just being the person that finds all the issues. This elevates you from being just a tester towards a test analysts. 

Crucial conversations in agile teams

How making it safe to talk about almost anything unlocks continuous improvement by Chris Smith. Slides: https://www.slideshare.net/chris_smith1976/crucial-conversations-for-agile-teams-agile-manchester-virtual-may-2020

Summary of the talk Really interesting talk by @cj_smithy at #agilemanc focusing around the book Crucial Conversations but bringing in ideas from the Chimp paradox, 5 dysfunctions of team, Radical Candor and generative cultures by Ron Westrum. Conversations within agile software teams are incredibly important (remember individuals & interactions over process & tools) so being better skilled at them is a great thing.

For testers We have conversation with team members all the time. Whether that is to find out information or to inform others about whats going on, its a core part of our skill set. Getting better at communicating verbally should be part of our personally development as testers. The resources mentioned in this talk would go a long way to help you build up that skill and help keep it sharp.

Leading an agile organisation through hyper growth

By Patrick Kua

Summary of the talk The company Patric was a CEO for went through some really fast growth over a very short period. The model he used was simple and acknowledged that it wouldn’t work forever so they kept iterating and scaling the organisation. Useful to benchmark your company against to see where you are in the growth of your organisation. 

For testers Understanding how a company develops from startup to enterprise is really helpful in in seeing what types of problems you’re likely to face. This can help you help your team understand how quality is likely to be affected when scaling and what they can do to mitigate it. 

Improve your agile coaching skills with a Training from the BACK of the Room

By Sabine Khan

Summary of the talk: Its called back of the room as you’re not using slides decks and you presenting but getting the participants to stand and present instead. Hence coaching from the back of the room. 
Really interesting approach to learning and using coaching skills in teaching others. The 6 learning principles are really quite easy to apply and can make almost any session interactive. This combined with the 4C’s gives you a framework to turn any learning topics into something more than just sit and listen. 

For tester needs updating: Need to help team members understand what exploratory testing is then why not do something interactive instead of just another slide deck. Teach them through doing and the key points might actually stick. 

Culture + Code ≠ Delivery

By Vimla Appadoo @thatgirlvim

Summary of the talk: Vim makes a great point in that just delivering through code and a good culture isn’t enough as this misses how that delivery affects users. Especially if the system has biases built in unintentionally.  She says we need communications as well. Communication to be able to link together all the parts of the culture of the organisation, systems, processes and people + the code can help us deliver the right things.

For tester: Testers help raise the awareness of quality within systems, but for them to be able to do that affectively they need to take into account the team, the business and users as well. The key skill to be able to do this is communication and helping to link together all the parts to understand the other. This is not to say that testers are the key to culture but on a smaller team scale they can have huge influence over what direction that culture moves in. Do the teams care about how their systems affect users or wait to see what happens?