Sunday, August 7, 2016

Thinking of Microskills

There was a post I read on testers needing to obviously learn to code. I still think reading code and pairing on writing code that needs to be created a viable options, and will lead to the accidental learning to code too. Being a tester amongst 20 programmers, the obviousness of me needing to code isn't quite so obvious. It's obvious I need to be able to work with my lovely programmers effectively. Having any specific skill isn't going to hurt me. But when I'm missing several skills, I don't find it *obvious* that programming would be the first. I've written about this a lot before.

The post did something really nice though. It dropped out from talking about programming as if it was a general one thing only, and listed a good number of ideas of tasks that would be programming. Tasks that most testers might have done or been part of doing.

Reading about the tasks triggered me to go back to a note I wrote for myself a few days earlier, while pairing with a developer on cleaning up some test automation code. We really need to drill down in our communication.

Instead of saying programming, we need to talk about specific tasks requiring programming. Instead of talking about the skill of programming, we need to drill down to specific skills that would enable us to perform those tasks. In the world of team work, we have the option of getting comfortable with paired work and leveraging the "friends with pickup trucks", a metaphor for James Bach on knowing when you don't need a resource/skill on your own, as long as you have a friend you can rely on.

In drilling down to the skills, it's not just skills related to a task. We would benefit from microskills, things that are little but taking us towards something bigger.

An example of a microskill I was thinking while pairing was the skill of being comfortable driving through code. Knowing the CTRL+click to go into a class, or finding usages to go up in the call hierarchy.

For established programmers, all this is coming as obvious. For people new to programming, every small thing is a step forward in the learning.

We should celebrate learning microskills. Acknowledging their existence and giving them credit would make learning many things more approachable. Belittling those drives people away from this path.

Testing too has a lot of task types, skills areas and microskills. Many of those catch to new people when mobbing. Acknowledging them more actively by naming feels necessary.