Thursday, April 21, 2022

The Ghosts Among Us

It started some years ago. I started seeing ghosts. Ghost writers writing blog posts. Ghost conference proposers. Ghost tweeters. And when I saw it, I could not unsee it.

My first encounter with the phenomenon of ghost contributions was when I sought advice on how to blog regularly from one of the people I looked up to on their steady pace of decent content, and learner the answer was "Fiverr". Write title and a couple of pointers, send the work off to a distant country for very affordable prices, and put your own name on the resulting article. You commissioned it. You outlined it. You review it, and you publish it. 

If you did such a thing as part of your academic work, it would be a particular type of plagiarism where while you are not infringing someone else's copyright, you are ethically way off mark. But for buying a commercial service and employing someone, there is an ethical consideration but it is less clear cut. 

Later, I organised a conference with a call for collaboration. This meant we scheduled a call with everyone proposing a session. Not just the best looking titles, every individual. It surprised me when the ghosts emerged. There were multiple paper proposals by men, where the scheduling conversation was with a woman. There were multiple paper proposals by men, where the actual conversation was with a woman they had employed to represent them. The more I dig, the more I realise: while one name shows up on the stage, the entire process up to that point, including creating the slides may be by someone completely invisible. 

As someone who mentors new speakers, partial ghost writing their talk proposal has often been a service I provide. I listen to them speak about their idea. I combine that with what I know of the world of testing, and present their thing in writing in best possible light. What I do is light ghosting, since I very carefully collect their words, and many times just reorganise words they already put on paper. My work as mentor is to stay hidden and let them shine. 

Not long ago, I got a chance of discussing with a high profile woman on communication field on social media presence. Surprised I learned she was the ghost of multiple CxO level influencers in tech. She knew what they wanted to say, collected their words for them and stayed invisible for a compensation. 

I'm tired of the financial imbalance where ghost writing is a thing for some to do and others to pay for. I'm tired that it is so often a thing where women are rendered invisible and men become more visible, on an industry where people already imagine women don't exist. Yay for being paid. But paid to become a ghost in the eyes of the audience is just wrong.

It's a relevant privilege to be financially able to pay for someone to do the work to remain invisible. Yet it is the dynamic that the world runs on. And it seems to disproportionately erase work of women, and particularly women in low-income societies. It can only be fixed by the privileged actively doing the work of sharing the credit, or even, allocating the credit where it belongs. 

We could start with a book - where illustrations play as big if not bigger role than texts - and add the illustrator's name on the cover. We should know Adrien Szell

I have not yet decided if I should play the game and pay my share - after all, I have acquired plenty of privilege by now - or if I should use my platform to just point out this to erase it. 

It makes my heart ache when a woman calls me when her 6 months of daily work is erased by the men around her saying the work she put 6 months to is achievement of a man who was visiting for 6 months to work as her pair. 

It makes my heart ache when I have to every single time point out to my managers what and how I contribute. 

It makes my heart ache that Patricia Aas needs to give advice that includes on not sharing an idea without an artefact (slides - 10, demo -11) and be absolutely right about how things are for women in IT. 

We can't mention the underprivileged too much for their contributions. There's work to do there. Share the money, share the credit. 

Friday, April 15, 2022

20 years of teaching testing

I remember first testing courses I delivered back in the days. I had a full day or even two days of time with the group. I had a topic (testing) to teach and I had split that into subtopics. Between various topics - lectures - I had exercises. Most of the exercises were about brainstorming ideas for testing or collecting experiences of the group. I approached the lectures early on as summaries of things I had learned from others and later as summaries of my stories of how I had done testing in projects. People liked the courses but it bothered me that while we learned about things around testing, we did not really learn testing.

Some years into teaching, I mustered courage and create a hands-on work course on exploratory testing. I was terrified because while teaching through telling stories requires you to have those stories, teaching hands-on requires you to be comfortable with things you don't know but will discover. I had people pairing on the courses and we did regular reflections of observations from the pairs to sync up with ideas that I had guided people to try in the sessions. We moved from "find a bug, any bug" to taking structured notes or intertwining testing for information about problems and testing for ideas about future sessions of testing. The pairs could level up to the better in the pair, and if I moved people around to new pairs, I could distribute ideas a little but generally new pairs took a lot of time establishing common ground. People liked the course but it bothered me that while the students got better at testing, they did not get to the levels I hoped I could guide them to. 

When I then discovered there can be such a thing as ensemble testing (started to apply ensemble programming very specifically to testing domain), a whole new world of teaching opened up. I could learn the level each of my students contribute on with the testing problems. I could have each of them teach others from their perspectives. And I could still level the entire group on things I had that were not present in the group by taking the navigator role and modelling what I believed good would look like. 

I have now been teaching with ensemble testing for 8 years, and I consider it a core method more teachers should benefit from using. Ensemble testing combined with nicely layered task assignments that stretch the group to try out different flavours of testing skills is brilliant. It allows me to teach programming to newbies fairly comfortably in a timeframe shorter than folklore lets us assume programming can be taught in. And it reinforces learning of the students by the students becoming teachers of one another as they contribute together on the problems. 

There is still a need of trainings that focus on the stories from projects. The stories give us ideas, and hope, and we can run far with that too. But there is also the need of hands-on skills oriented learning that ensemble testing has provided me. 

In an ensemble, we have single person on a computer, and this single person is our hands. Hands don't decide what to do, they follow the brains, that make sense of all the voices and call a decision. We rotate the roles regularly. Everyone is learning and contributing. In a training session, we expect everyone to be learning a little more and thus contributing a little less, but growing in ability to contribute as the working progresses. The real responsibility of getting the task done is not with the learners, but with the teacher. 

We have now taught 3/4 half-day sessions at our work in ensemble testing format for python for testing -course, and the feedback reinforces what I have explained. 
"The structure is very clear and well prepared. Everything we have done I've thought I knew but I'm picking up lots of new information. Ensemble programming approach is really good and I like that the class progresses at the same pace."
"I've learned a lot of useful things but I am concerned I will forget everything if I don't get to use those things in my everyday work. The course has woken up my coding brain and it has been easier to debug and fix our test automation cases."
"There were few new ideas and a bunch of better ways of doing things I have previously done in a very clumsy way. Definitely worth it for me. It would be good to take time to refactor our TA to use the lessons while they are fresh."

The best feedback on a course that is done where I work is seeing new test automation emerge - like we have seen - on the weeks between the sessions. The lessons are being used, with the woken up coding brain or with the specific tool and technique we just taught. 



Friday, April 1, 2022

Why Ensemble Programming/Testing isn't Group Programming/Testing

It's two years since I took action on the words I use around this particular style of collaborative software testing (and development), and decided I will no longer be excluding people uncomfortable with the term mobbing which by vocabulary definition means bullying of an individual by a group. Repurposing mobbing to mean a collaborative programming style that centers kindness, consideration and respect just felt too much of a dissonance. While I don't have the energy to change the world or those who don't follow and choose to change themselves, I committed to changing myself. That alone was quite a significant energy commitment. 

I learned a new language. I would talk of ensembling, and ensemble programming and ensemble testing. Being the person who lead the way in figuring out ensemble testing in the first place, I went back to my old writings and replaced the terminology. I had a book out that I renamed to Ensemble Programming Guidebook. I changed the domain names I had. I made my peace with the fact that I might find myself speaking of the common thing with a new term. 

Soon I started to notice that I was too soon with making peace with acceptance, and many people I hold dear followed. Lisi Hocke, Lisa Crispin, Emily Bache - and with Emily, a lot of the programming world. 

To discover the new world, I collected and investigated options. I learned what different groups of animals are called, and the final selected word was one I would not have come by without the essential contribution from Denise Yu. As per our mutual agreement, this term is a result of collaboration, and the work we both did was essential. 

For two years now, the world has coexisted with the original. It has made its way to Wikipedia, and it is understood as a synonym even amongst people like Mob Mentality Show who have visible high stakes in the original name. Renaming your own thing isn't an easy thing, and the ripple effects of it are quite a commitment. 

I personally have reached a point where I no longer say "ensemble programming, previously known as mob programming" but the term lives on its own. I need to still explain it, as the conversations around the chosen term are no longer about how negative the connotations are but how ensemble is a difficult word for the English native speakers. We could have also said group/team programming as the options were back then, so I wanted to reiterate today on why those words did not get chosen.

Ensemble programming as a word tries to say this technique is different than just some group / team getting together to work. 

Group programming / testing says: 'all hands', with multiple computers. 
Ensemble programming / testing says: 'one hands', with a single (or a few for some activities) computer. 

Group programming / testing says: 'all voices, for themselves, you overhear some stuff'. 
Ensemble programming / testing says: 'all voices, one at a time, listen to the voice'

Both say all brains, but for a very different composition. Group has brains co-located, doing their own thing. Ensemble has brains co-located, doing the same thing. 

With these distinctions in mind, I look back at a training class I provided this week at work. We had whole group working together through single hands that rotated. We had primarily two voices taking turns in guiding the work, as the group did not know how to do the work they were there to learn. 

In an ensemble, hands listen and follow the voices. We work as a single mind that is stronger together through hearing the contributions through verbalizing them. 

Group / team testing does not come even close to expressing how this dynamic is different.