Over here I explained how I was fed up of considering individual solutions to global chaos. I want to be able to imagine collective solutions, and the first step is to celebrate the collaboration I already know about.
I’m going to start with Sale Sings choir, which I joined in the summer of 2023.
It all started when I attended a 2-day singing workshop with my friend Katy, in February. Two days of singing, together with many others, and revelling in the amazing sounds and feelings people can create when they sing together. I was introduced to Rose, a wonderfully charismatic local choir director, and I knew I wanted more, so I joined her Sale Sings choir.
But no, it all started when I joined Accord gospel choir a few years ago. I was having a terrible time, being badly bullied by a member of senior staff in my teaching job. One of my colleagues told me about Accord. This small group of singers lifted me up, sang with me and laughed with me and helped me gain the strength I needed to move on to better things.
But no, it all started when I attended an African singing workshop at York Arts Centre when I was a teenager. What a wonderful way of singing! What amazing sounds we made together!
Or did it start when I was a child and I sang in the school choir? Or the local church choir? Or when my mother and grandmother encouraged me to sing at any opportunity?
I’m not great in large groups of people I don’t know, and I confess when I first joined Sale Sings, I worried that people would be mean to me, or laugh at me, or leave me out of things. And I kept being delighted, over and over, by how kind and inclusive and friendly everyone was. That thing in this article about how “strangers who sang together for an hour emerged from the sessions with an unusually close bond”? I can tell you it’s true.
And then there’s the music. It’s so easy to create a massive gorgeous uplifting sound when several people sing together. It doesn’t matter if some people are a bit off key, or some have forgotten the words, or not everyone has quite grasped the rhythm yet. It doesn’t matter if you are the one that feels a bit lost. Together you make the magic (and you can listen to some of the magic from our Sale Sings choir here).
I’m so convinced of its power, I’ve started submitting singing workshop ideas to tech conferences. Fingers crossed someone will bite, and 2024 will see me leading a bunch of joyful geeks in song!
Often these days I find myself wondering, “What will I do if everything falls apart?” And by everything, I mean society. The world. The environment. It’s not hard to imagine. We’re surrounded by tales, both real and fictional, of war, environmental catastrophe, pandemic, zombie invasion. The most recent time my mind went off in that direction was while watching the film Leave the World Behind, but I could substitute this example with many others – from the news and from film/TV.
tl;dr It takes me a little while below to get to the point. If you’re in a rush, I’m asking for examples of ways in which people work together and collaborate for the common good. Add yours in the comments! My latest story is here.
I expect our family are not the only one that has had jokey conversations about where we would go to escape an impending apocalypse. One of my best friends jokily suggested a few years ago that I would not be invited to her well-defended self-sufficient stronghold, because I’m only a computer programmer – and the skills I have will be no use for growing veg or fixing leaky roof tiles.
But here’s the thing. Leave the World Behind contains a cynical analysis not unusual in productions of this kind. One of the characters, facing a vaguely-defined end-of-civilisation scenario, tries to encourage cooperation and prevent a violent stand-off with a neighbour. But this character is portrayed as living in a dream world. It’s every family group for themselves. Look after your own and don’t trust anyone else.
I found myself, as I often do, wondering where my family and I might go where we could be safe. What resources do we have in our small family unit that we might make use of if we could no longer trust anyone else to help us? And the film drove home the idea that if the shit hits the fan, we’ll all be alone. And I thought, well that’s it then. Not a unique or original thought, but if that’s what happens when everything falls apart, humanity really is doomed.
Many people think humanity is doomed. Because they don’t think that, as a global group, we have enough capacity to help each other when things go badly wrong. And things do go badly wrong, and they will, even if we can’t predict the scale or the frequency or any future collapse(s).
That was my first thought. That I couldn’t count on other people to help me and my loved ones in times of disaster. This is, of course, why people build bunkers and stockpile weapons and non-perishable goods. And yeah, maybe that’ll last you a while. But what will you do when your neighbours come knocking? Is survival even worth it, if that’s the cost?
But there was a second thought on the heels of the first one. That the only way we can survive large-scale catastrophes is if we focus on how all of us will survive instead of how me and my loved ones will survive. And even if all this is only in my fevered imagination for now (I haven’t started building a bunker), wouldn’t it be better if I directed that imagination towards collective solutions rather than individual ones?
Because no, I’m not literally planning for a doomsday scenario. But I’m thinking about it. And I’m not the only one. And the more I feel hopeless about it, and the more I’m convinced that our communities, at global, national, local or small neighbourhood level, have no real capacity or desire to help one another in times of crisis, then the more likely my daily life and mental health will suffer. And the less likely I am to collaborate with other people in small day-to-day ways. And the more likely I am to become atomised, suspicious and lonely. And the less likely I and everyone else are to find collective solutions when the shit really does hit the fan. And therefore the less likely it is that any of us will survive whatever major upheavals we face in the coming years or decades.
Where am I going with all this? Good question.
My first thought was, “We’re all doomed. It’s every person for themselves.”
My second thought was, “If that’s true, then we really are doomed. But if collaborative collective solutions are possible, they’re the only way we’ll survive.”
My third thought was, “Of course they’re bloody possible.”
We might have messed up this planet, we might face corrupt and dysfunctional governments all over the world. We might be killing each other left right and centre, but as well as all that, we are cooperating with each other. We are helping each other, daily, in big ways and small ways. And if we weren’t, we wouldn’t still be here.
I started thinking about all the collaborative initiatives I’ve witnessed and been involved in, that I am witnessing, that I am involved in.
Those who don’t know me well might be surprised to learn that I default towards individual solutions rather than collective ones. Peopling is hard for me. I find most humans unpredictable, and groups of strangers stressful. Social interaction is draining. Any time I spend with other people has to be balanced with time alone.
And yet despite all that, I’ve learnt that I need collaboration, I need other people, and when I consider my own needs as well as others, I get a huge amount from working collaboratively. From only the last couple of years, I can list several examples. They were all life-affirming, inspirational, heartwarming. They made me feel better. And thinking about them gives me hope, that maybe we’re not doomed after all. I’m going to list them below and I’m going to come back here to talk about them, one at a time.
But given the title of this post is “People Together” and the whole point of this idea is to focus on ways in which we are not atomised and we can and do work together, it seems like a no-brainer that I should somehow open this up and get other people involved. It’s still a half-formed idea. I’m not sure how this works. I know I have a tendency to over-complicate things and the best way to get started on anything is to keep it simple, so for now I’ll just say this:
The world is a scary place, and it’s tempting to believe that we’re all fundamentally alone.
It’s not true. We aren’t.
But it’s easy to forget that and to feel despair, and the more we believe we’re alone, the more we’ll behave as though we are. We won’t look to each other for help, and we won’t consider helping one another when it’s needed.
And stories are powerful.
So let’s remind each other that we’re not alone. Let’s tell each other stories of all the great things we do together.
In the first instance, and to keep things simple, those stories can be comments on this post. But I’d like, in the near future, to elevate each comment into a post of its own. I’m looking for a way of creating some kind of collaborative site where people can easily post stories. There are many ways I might do that – if you have ideas on how you can help, please let me know.
Below are quick descriptions of my examples. I’ll aim to come back and expand on each one separately, and I might add more as they come to me:
The ensemble collaborative working technique which I’ve been privileged to teach many people in 2023, and will continue to teach in 2024 (‘Ensemble” is French for “together”).
Small online communities. I have several of these that I contribute to regularly. One of them has been around for over 20 years and they’re all a source of succour, where people care about and support one another through all of life’s travails.
The free eight-week Menopause and Mindfulness group I attended this winter in a local community centre
The free storytime session I now lead for local children once a month in a local community centre
All the many conferences I spend time talking at, but in particular community-focused “open space” / “unconference” events such as SoCraTes UK.
PS I deliberately haven’t mentioned any specific politics or religion. Maybe that’s a cop-out, I dunno. For what it’s worth I’m not religious and my politics are left of centre, but that’s not the point. I used to sing in a gospel choir and I know religion can be a powerful positive force. In this context I make no assumptions, positive or negative, about those who share my politics or those who don’t. The point of this is that we tell each other uplifting inspirational stories of all the good things we can do together, to help one another and make things better.
(PPS This is a cross-post. The same post is also on my Medium blog.)
Help and support for women and under-represented genders
Do you need support to survive and thrive?
Are you a newcomer to the tech industry? Are you from an under-represented gender, eg a woman or non-binary? Do you worry about how you can find success and fulfilment in a male-dominated industry?
I often meet women and other people who are worried about their futures in this industry, but who have so much to offer, and find it helpful to get advice and support not just from someone like me with years of longevity in the industry, but also from each other.
Based on some conversations I had recently at a Code First Girls event, I’ve decided to offer a group coaching programme for gender minorities in tech.
How will it work?
We will meet weekly, online, for five weeks
Dates will depend on availability of participants – express an interest and I’ll keep you updated
Times will be adjusted to best suit the time zones and preferences of participants
There will be no more than ten people in each group
The total cost will be £150 per person (working out at £30 per person per session), payable in advance
Each session will last for one hour and will consist of a combination of
Brief inspirational presentation
Group discussion
Q&A
Conclusions and actions
Connections formed will be long-lasting, and I will facilitate the possibility for group members to continue supporting each other for no extra cost
For those that wish, they can sign up for another five weeks (group members will probably change in each run)
Details will vary according to the needs and desires of each cohort, but I expect the following takeaways as a minimum:
How to handle imposter syndrome
How to progress in your career
How to handle prejudice and the effects of unconscious bias
How to get support in the workplace
Who is the coach?
I am a woman with 24 years of software engineering experience. Halfway through my career I was laid off by my employer. I lost heart and gave up altogether, deciding instead to try another career. Actually I tried two separate careers. But four years later I realised that tech is my home, and I returned with renewed determination. That was 12 years ago, and since then I’ve achieved more than I ever believed I would. I now travel all over the world meeting amazing people and speaking at major events, as well as working closely with software engineers in multiple industries, helping them to improve their software development practices.
I used to lead the Made Tech academy, I taught the Coding Black Females Return to Tech programme, I taught for Code First Girls, and I’ve always been passionate about increasing opportunities for under-represented groups in tech.
How do you sign up?
Fill in my contact form and let me know you’re interested in the Surviving and Thriving in Tech Group Coaching. We’ll take it from there.
At the end of that talk and blog post I present the “Stupidity Manifesto”, which I’m reproducing below so that you can sign it and encourage others to sign it too!
The Stupidity Manifesto
LET’S STOP MAKING EACH OTHER FEEL STUPID. Instead, let’s…
ENCOURAGE EVERYONE TO ASK QUESTIONS
Lead by example: Be honest when we’re confused
Value curiosity over knowledge
Prioritise clarity over jargon
Remember we all forget stuff
Get excited about teaching and learning
Acknowledge the broad range of knowledge in our industry, and avoid judging someone if their knowledge doesn’t match ours
LET’S STOP MAKING EACH OTHER FEEL STUPID.
To sign the manifesto, simply add your support as a comment on this post. Each comment will be counted as another signature in favour of the manifesto.
To sign the manifesto, simply add your support as a comment on this post. Each comment will be counted as another signature in favour of the manifesto.
Once upon a time, there was a female software engineer. When she studied mathematics at university, she was one of a tiny minority of female students. That was the first time she internalised the idea that women can’t do the same things that men can do. The evidence was in front of her eyes. And it was there again when she switched to software engineering. In her first job, she was the only female developer. And compared to her colleagues, she was a late developer. It seemed they had all taught themselves to code as children and teenagers. But this was the mid 90s. She attended university in the early 90s, where she never owned a computer and barely used one until after she graduated.
A few years later, in her second software job, she kept asking to work on the more difficult, more interesting, code bases… but she was always denied. When she interviewed for a more senior position elsewhere, she was told she didn’t know enough. She wasn’t surprised. It confirmed all her worst suspicions about herself.
Twelve years into her career, she was laid off and it was a relief. She had never felt like she belonged. She didn’t want to work in IT any more.
Here’s a question for you: Do you ever have to Google anything related to your sphere of expertise? When you do, do you shame yourself for it? Do you feel as though you’re supposed to know everything, and there’s something wrong with you if you don’t?
If you feel this way, you’re not alone. The woman described above is me. But now I’ve been doing this for over 23 years, and I make a living out of teaching software engineering skills. Does this mean I’ve finally reached the “comfortably confident that I know all the things” stage of my career? Nope. Quite the opposite.
The more I learn, the better I understand how little I know.
Being an effective IT professional is not about what you know!
These days, when I find myself beating myself up for my ignorance (and I’m sorry to tell you that I do still beat myself up), I remind myself that learning is a fundamental part of this profession. Rather than worrying because you still have stuff to learn, you should instead be concerned if you don’t.
But even when we know on some level that this is true, it’s not always what we tell each other. And as a result, we do untold damage by making each other feel stupid.
What if we didn’t do this? Imagine a world where you arrive at your desk each day excited about learning new things. Where you never worry that you don’t know enough. Where there is no such thing as imposter syndrome. Because it turns out that being an effective IT professional is not about what you know. But we think it is — and that causes problems.
Problematic behaviours
I left the industry because I felt inadequate and stupid. It seemed that everyone else knew more than me. But I do a lot of teaching these days, which means I’m now very aware of how common this feeling is, and I’ve noticed some behaviours that I believe make it worse for all of us. I run through all of them in my talk, and I’ll present the following key ones in this article:
Laughing at others for gaps in their knowledge
Talking in jargon
Hiding a lack of knowledge
Gatekeeping
Laughing at others for gaps in their knowledge
I’ve lost count of the number of times I’ve witnessed colleagues emerge from interviewing a prospective employee and saying things like “Can you believe, I just interviewed someone who didn’t even know what a Z was?” followed by incredulous laughter. Haha, what a doofus, fancy thinking they could get a job here if they don’t even know that.
Don’t make people want to hide away!
For Z, you can substitute your favourite surely everyone knows about this item, and I guarantee I can find you somebody amazing, experienced and successful who knows nothing about it.
But it helps us bond with each other, right? If we can have a bit of a laugh about how stupid those other people are? And it doesn’t do any harm, because they’re not in the room. They don’t know we’re laughing at them. No, they don’t. But you do. I do. Everyone else in the room does. I’m certainly not the only person thinking, I must make sure I don’t become the next butt of the jokes. Instantly feeling stupid, as I consider all the things I don’t know enough about.
The worst thing about this is, I’m likely to handle this problem by taking steps to hide my ignorance. I’ll join in the next round of laughter extra loud, to prove I’m one of you clever people and not one of those stupid ones. I won’t ask questions to clarify crucial details. And I will find myself increasingly…
Talking in jargon
This is another one that can help us to bond with each other and feel clever, but it comes at the cost of making others feel stupid. Every time you make assumptions about what jargon others will understand, or even worse, judge them for not knowing the same jargon as you, you make it less likely they’ll ask for clarification. It becomes more likely that gaps in communication will widen, and your product will not behave the way people expect or need it to behave.
And of course, not only do people avoid asking for clarification, they take active steps towards…
Hiding a lack of knowledge
Of course we all do this. We avoid “asking stupid questions.” We exaggerate what we know in job interviews and on CVs. We don’t admit it when we find ourselves in meetings where we have little or no idea what anyone is talking about. It’s just self preservation, right?
The more we work in environments where knowledge is considered to be a good indicator of our colleagues’ proficiency, the more likely we’re not being honest with each other about what we know. The last time I was in the market for a new job, I reached a point where if I saw companies imply that they possessed advanced techniques for filtering out only the very best and rejecting the rest, I automatically rejected them. Because in those kinds of environments, people will go to advanced lengths to prove they are indeed the best… which means never admitting any weakness and therefore covering up the unavoidable fact that they don’t know everything.
Are these people happy and confident? No. They are likely peddling furiously underwater and permanently paranoid that someone will find them out… for what? For being stupid? Well yes, that’s what it feels like. But what they’re really in danger of revealing is their own basic humanity.
And of course, the kind of culture I’ve described above, the kind I came to deliberately avoid when looking for good companies to work for, is that of…
Gatekeeping
This is where we decide that we are special, and large swathes of the rest of the profession are not, and all we need is to perfect our formulas for identifying the pearls and rejecting the swine. And what does it do? Yep. It makes us all feel stupid, terrified as we are that we will come up against these standards and fall short.
Solutions
So, what can we do to address these problematic behaviours?
The Lucky 10,000
https://xkcd.com/1053/
As described in xkcd’s excellent cartoon above, today’s lucky 10,000 will learn something exciting and new. And the rest of us have a choice: Embrace that journey and travel with them, or stand on the sidelines laughing at them for not having learnt it yet.
Making that decision to get excited about the learning our colleagues have yet to do, is about a lot more than individual choices in single moments. It’s about recognising that the range of knowledge in our industry is very wide. It’s wide, and it’s widening exponentially all the time. You could take two respected professionals with long successful careers, and find no overlap in their knowledge. Hell, you could find a busload of them with no overlap. It’s pointless to wring our hands over what people don’t know, and much more enlightening to embrace the learning of our colleagues and ourselves.
They don’t know as much as you think they do
The wheel of confusion
I use this series of graphics a lot in my talks. Here I show only four of the images, but it’s enough to illustrate the point: When you look at an internal message board where your colleagues are discussing a range of subjects, it’s tempting to think to yourself, “Oh my, all these people are so knowledgeable and confident on all of these subjects, and I don’t know about any of them.”
But of course each one of those people is only posting confidently about some of those topics, maybe only one each, and chances are you have posted knowledgeably yourself on at least one of them. And they are likely suffering the same worries and insecurities as you are, looking at each other — and you — and thinking how much less knowledgeable they are than everyone else.
You’re not doing anyone any favours — least of all yourself — when you assume people know more than they do. We can all benefit from being realistic about each other’s capabilities.
Be confident in your own ignorance
At the start of this piece, I talked about how I ran away from this industry in relief, glad to be laid off and determined never to return. But a few years later I found myself in need of a new job, and recognising that despite having not previously valued them, those twelve years of engineering experience were worth something to me.
I returned to this industry, but this time with a different approach. In the intervening years I’d been working for a lower salary as a high school maths teacher, so it wasn’t hard to return to technology at entry level, joining all the new computer science graduates and behaving as though as I was brand new. This gave me a new lease of life. I wasn’t pretending to know anything I didn’t, but I was excited and eager to learn. I let go of any shame and made a point of asking simple questions.
Of course those previous twelve years did count for something, and it wasn’t long before I found myself in senior leadership positions. And it was something of a revelation to me that the more open and confident I was about what I didn’t know, the more people respected me.
Not only did it help me to progress and learn quickly, it also helped those around me to do the same. When senior figures ask simple questions and show no shame about what they don’t know, everyone around them is empowered to do the same. Everyone feels less stupid, and their knowledge and competence increase more quickly as a result.
I’m an independent technical coach, with 23 years of software engineering experience, offering a variety of services.
I’m most effective at the things I love the best, and these are detailed below. I’ve worked with a variety of groups and individuals, and you can see many recommendations on my LinkedIn profile. Please do contact me if you’d like to start a conversation about how I can help you and/or your organisation.
Things I love to do:
1. Help teams improve their software engineering practices, particularly in areas such as Test Driven Development, refactoring, continuous integration and collaborative working practices. For instance, the Samman Technical Coaching technique developed by @EmilyBache.
2. Keynote / speak at public and private events, on a wide variety of topics relating broadly to (a) good engineering practices, and (b) how we can look after each other. For instance, my talks at @SDDConf, @JoyOfCoding, @GOTOCon and @TheLeadDev.
For topics past and upcoming, see my events page. You can also see videos here.
4. Writing. My report on trunk-based development and continuous integration was published by @OReillyMedia in June 2023, my article on refactoring is published on Martin Fowler’s site, and there will be more to come.
5. Podcast hosting. For 12 months in 2021/2022, I hosted the Making Tech Better podcast, where I published fortnightly interviews with industry experts on the topic of improving software delivery. I am interested in finding a new podcast to work with!
Here is my very notey response, mostly based on my experience as (a) participant at Hack Manchester (RIP) and (b) being a judge myself at various different events over the years.
Think about the comfort of the participants – both physical and emotional.
How can you be welcoming and supportive?
Give them the opportunity to solve real-world problems but with a lot of scope for creativity.
Give them a choice of different challenges.
Don’t expect judges to do full code reviews (too time consuming) – judge by presented results instead.
Ask participants to present their results in an easy to digest format (to streamline the judges’ job).
Let people present vision as well as working results (it’s hard to get things fully functional in a short space of time).
Recruit helpers to give a hand when participants are stuck.
When recruiting helpers, emphasise they do NOT have to know all the answers. Their job is to help people seek solutions, not provide solutions themselves.
Have a v strict time limit for final presentations. How many teams do you have? How long will presentations take overall if (eg) you give them 2 mins each and allow extra for changeovers? Is that too much?
You’ll be surprised how much people can present in even 1 min. Let them know in advance that time limits will be strict. Cut them off if they overrun.
One great approach if you have a v big event is to get them to create a 1-min video each, to be watched separately by judges.
A recursive function is a function which calls itself.
It sounds like a simple concept, but in practice it can be hard to get your head around.
Here’s a lovely example of a recursive function:
void ExplainRecursion () {
var explained = GetInput(“Do you understand recursion yet?”);
if (!explained) {
ExplainRecursion();
}
}
It’s particularly nice because it uses recursion to explain recursion. It calls itself – it’s a recursive function. Every time it calls itself, it asks the question “Has recursion been explained yet?” and if the answer is No it calls itself again. It keeps calling itself repeatedly until recursion is finally understood, at which point it quits. What might not be immediately obvious is that when it quits, it will still be inside the previous call, and will keep returning until it reaches the first time it was called. Like this:
ExplainRecursion()
—–>Do you understand recursion yet?
—–>No => ExplainRecursion()
———->Do you understand recursion yet?
———->No => ExplainRecursion()
—————>Do you understand recursion yet?
—————>No => ExplainRecursion()
——————–>Do you understand recursion yet?
——————–>Yes! => Exit function
—————>Exit function
———->Exit function
—–>Exit function
Exit function
It’s true that this is a slightly jokey example. It works if you see the source code, but if you only ever saw the output you wouldn’t learn much about recursion. You’d just be asked the same question repeatedly and probably get a bit angry.
Here’s another simple example:
void Factorial(int n) {
if (n == 1) {
return 1;
} else {
return n * Factorial(n-1);
}
}
This function is calculating “n factorial”, which is written as “n!” in mathematical notation. In case you’ve forgotten or haven’t come across this concept before, it’s easiest to explain with a concrete example: 5! (“five factorial”) is a quick way of writing 5 x 4 x 3 x 2 x 1. So n! means take the number n and multiply it by all the whole positive numbers that lie between itself and zero.
The above function calls itself, which means that unless n is 1 (because 1 factorial just equals 1), it will return a result… to itself.
Don’t worry if you’re feeling lost already. It took me a long time to be able to look at recursive functions without getting an instant headache. I found it helpful to draw little diagrams. For instance, if we use the above function to calculate 5 factorial.
Remember, the answer we expect is 5 x 4 x 3 x 2 x 1.
The first time we enter the function, we call Factorial(5), so n = 5. The function returns 5 x Factorial(4), so it gets called again and this time n = 4. That returns 4 x Factorial(3), which returns 3 x Factorial(2), which returns 2 x Factorial(1). Factorial(1) just returns 1. Here’s a diagram to help:
Factorial(5) = 5 x Factorial(4)
—–>Factorial(4) = 4 x Factorial(3)
———->Factorial(3) = 3 x Factorial(2)
—————>Factorial(2) = 2 x Factorial(1)
——————–>Factorial(1) = 1
—————>= 2 x 1
———->= 3 x (2 x 1)
—–>= 4 x (3 x (2 x 1))
= 5 x (4 x (3 x (2 x 1)))
Normally when a function returns a value, it’s over. We can move on. But with a recursive function, we might just land back inside ourselves again, and then we might return a value to yet another version of ourselves. With complex functions, this can be hard to trace through in your head without losing track. It’s also horribly easy to get stuck in an infinite loop.
Hopefully this helped. If not, don’t worry. It’s not just you! It’s a notoriously head-twisty concept.