Wednesday, December 12, 2018

A New Pact: My Challenge for 2019

It's that time of the year again! It's time for a new pact to tackle my next big learning challenge.

Some Background

Toyer Mamoojee and I found each other as learning partners at Agile Testing Days 2016. We made a deal to help each other out of our comfort zones and tackle a challenge that really scared us: public speaking. The goal of our first pact was to return to Agile Testing Days 2017 as speakers - and we did it! This had worked so well and we had benefited from our mutual learning journey so much that we agreed to do a second pact for 2018. This time our goals diverged. I committed to pair with many different testers to learn where I stand and increase my testing skills. So I went on a testing tour this year - and it was a huge success again.

Meanwhile this whole learning partnership had created quite some buzz. We had openly shared our learning journey with the world and people got really interested. At first another group got inspired to create their own pact. Then Toyer and I had the opportunity to extend our own partnership to a pact group with a few more people. Out of that, a power learning group with even more awesome persons evolved; while all other formations were still valid and going on. More and more people got interested so that recently a second power learning group got started!

What scares me most nowadays?

That has always been my starting question. I mean, think about it: what scares you most when it comes to your personal development?

As the previous two pacts had went so well and provided so much personal value for me I knew early on I wanted to do a third pact for 2019. Therefore, I had gathered first thoughts already since mid of the year when it was already clear that the testing tour was a success. Here's the unedited, raw list of thoughts and ideas that I had always added to. I felt the urge to edit the points to make them more readable for you, and more presentable for me, however, I decided to share them just as they are, unadorned. I hope you can still follow my train of thoughts.
- Do something like http://www.100daysofcode.com/
- coding tour? myself? for non-advanced? automation tour?
- testing tour 2019 - focused on one topic, repeated with same people?
- practice technicality
- tools tour
- code on GitHub, share, have code reviewed, use lots of tools together with code
- share knowledge at company: workshops, coaching, mobs, training, etc., repeatedly
- focus on learning
- fix the basics
- security testing with Peter
- Developing mobile app with Guna
- Trish Koo: If anyone's interested in paid 1:1 career or test automation mentoring, DM me. I'm happy to work across timezones, online.
- talking testing, testing on stage
- do test retreats
- automation
- feel I'm lacking, coding skills
- coding tour? even scarier!! GitHub; upskill & practice tour; or: tooling tour! still pairing up for learning, common motive across years
- cross-team solutions
- embrace diversity of everything vs. stretched thin
- proving I'm technical
- start own automation and or app project or several, invite others to pair with you on them, can also work solo on them, post learner's journal notes on blog after pairing of noteworthy, short but insightful, public on GitHub, scary so it more often, show vulnerabilities to the best, but after one year I'll be awesome, chance to adapt after 3 months, more flexible, run it under own hashtag again, able to talk about it, combines learning approaches that have proven successful already, more focused, against not technical & for more fullstack
- add exit criteria! Not only hypothesis
- decide whether to continue security testing sessions with Peter, once per month and inform him
- https://twitter.com/codecopkofler/status/1057732730430148609
- https://twitter.com/profesor_dragan/status/1057893852835500032?s=19
- do a testing demo on stage, explore, use automation, even write code; show and tell
- pair with Maaret more
- speak your mind and give feedback in time
- test in front of audience, show and tell
- do teaching videos
- do many small experiments, where people can join our not, to combine with solo, e.g. run for one month, like MoT challenges, security, tools, automation, TDD etc. And close it with facilitating a mob about this topic to have others learn together, share insights as tweets, one blog post per month or optional; freedom to adapt any time, just be transparent about it
- integrate TAU course in challenge
- do courses from personal Trello like https://www.freecodecamp.org/news/beaucarnes/angular-tutorial-course--OHbjepWjQ or the security challenge
- include security testing with Peter?
- think about mission/vision: conquer my fear and inspire by doing so; internal: learning platform?
- AI, ML, neural networks?
- code collaboration challenge; anything coding, public, GitHub, call for collaboration #codingchallenge, metrics!
- continue speaking, continue with Peter on security testing, continue workshops at work and meetups, do video course
- measure hamster wheel, indicators as well: have you played any game? Exit criteria
Do you see any patterns here? I do.

Pact #3: A Brave New World

From all those ideas and thoughts that I jotted down during the past half year, I found the following to be my condensed next big fear and therefore my chosen challenge for 2019.
The challenge: Become code-confident. My programming skills can only be described as modest - at best (and I'm not being modest here). I always wanted to dive deeper and learn more. So far, however, I've rarely honed this skill. Some years ago I tried to practice on my own but lost momentum; the biggest part of my recent experience stems from pairing and mobbing together with my product team at work. Now, programming or coding (to keep it simple I'll use these terms interchangeably in the following) is a skill that many people benefit from, no matter their role; already now, and presumably even more in the future. Looking at my own power learning group, nearly everyone of them is actively programming in everyday work. To add to that: people talk a lot about how essential coding skills are for us testers. Whenever someone talks about programming skills as prerequisite, or as absolute standard, I feel I don't belong and that soon enough everyone will see that, too. Even worse, many people consider you only technical when you're able to code. I absolutely don't share this viewpoint, but yet feel the need to prove myself that I can code. So it's about time to conquer this fear of losing my face by showing how much I don't know yet, to see for myself how much I can increase my programming skills in a certain time frame, and most importantly to become confident that I am not only able to read code but also to write code myself. In short: I want to become code-confident.
How to solve this challenge while staying in the learning zone without crossing over to the panic zone? I made a great experience formulating an underlying hypothesis for my last pact, so I decided to do it again.
The hypothesis: I believe that doing many small hands-on coding exercises and challenges, on my own as well as together with other interested people, will result in increased confidence in my programming skills. I’ll know I have succeeded when I  have developed a small product from scratch.
When coming up with a concrete experiment, or let's rather call it a probe, to test this hypothesis, I learned from my past pacts. I wanted to make this public so that I will consider it as binding and give back to the community at the same time, hopefully inspiring others to join in or start something on their own. I wanted to pair up or mob with others to learn more in an easier and faster way. Also, I realized that the time investment for any next pact probe had to be lower than for the last one so that I would have more time to focus on the learning itself - not forgetting having more time for myself as well to rest and relax. Here's what I came up with.
The probe:
  • I practice programming by doing different kind of coding exercises and challenges. The tasks can be anything that triggers my interest, on any topic, with their size ranging from small to medium, and solved in any programming language that deems suitable. Examples for exercises might be a hackrrank challenge, a coding kata, automating tests on any level, adding a new feature to an existing application.
  • I share my progress and results publicly on my GitHub account whenever feasible. Overall I publish at least five repositories, no matter how small.
  • I ask for collaboration and learning partners either to practice together with me on the chosen challenges, or to provide their feedback so I can increase my knowledge and skills. While doing so, this does not hold me back from working on the challenges on my own at any time as well.
  • Whenever I gained the confidence to do so, I start building an application from scratch. The objective is to have created a small product providing basic functionality, serving as proof of concept that my skills evolved and my confidence to tackle these kind of coding challenges increased.
I know there's a lot more to programming and developing than just mere coding skills. A lot of knowledge is involved as well, about architecture, design patterns, core language concepts and more. While I might hopefully learn about them on my way, this is not my focus for this challenge. My goal here is not to become a developer but to hone the skills in my toolbox to support my testing.

This time I added another section to the probe design: pause criteria. End of 2017 I had already realized how much time I had invested in fulfilling my pact. Still, I have taken up even more challenges in 2018. At the latest conferences I attended this year, people talked a lot more about mental health and the importance to be kind to ourselves and take time to rest. As I see the importance of this topic, I defined a personal limit I shall not cross. The biggest personal indicator and therefore the warning sign I definitely know of is this: if I don't play computer games anymore - which I adore! - I shall take a break and do exactly that, play computer games. Do it for pure entertainment and rest from challenges, without any pressure involved.
Pause criteria:
  • Have you played any non-casual computer game this week? If not, stop whatever you're doing, rest, then play. Continue only three days later with the challenge. (Only exception: conference weeks.)
The probe starts earliest at the time this blog post is published. It is over as soon as any of below exit criteria apply, whichever comes first, and will then get evaluated.
Exit criteria:
  • The target had been achieved.
  • It's November 1st.
  • I had to pause the probe for the 15th time, indicating a severe lack of balance requiring a re-prioritization of the things I do in my life.

Influence(r)s

After I formulated my pact challenge for 2018, I realized that I had been heavily influenced by several people. I believe that we get inspired by others around us most times and we can only be glad when we see who triggered our ideas and endeavors so we can give them the credit they deserve. I cannot claim that below list is complete, still, I'd like to highlight those inspiring people and situations I am aware of.
  • Richard Bradshaw's and Mark Winteringham's tutorial "Let’s Take Automated Checking Beyond WebDriver" back at Agile Testing Days 2016 was one of the triggers from the last years. Fun fact: Toyer attended the tutorial as well, we even worked together in one group! This tutorial triggered me to finally create my own GitHub account - because it seemed everyone else had one and I thought maybe it's really about time to start mine as well. Sad fact: Ever since I have not had the courage to make use of it. Now, next year in April I'll be at TestBash Brighton and I decided to take the pre-event course "Automation in Testing". I'd love to be prepared for this.
  • Blanché Carstens started the #100DaysOfCode challenge mid of this year. I had seen this challenge a few times now in my Twitter timeline. It sounded really intriguing, and yet I shied away from tweeting daily about my progress. Ever since I wondered whether there might be another way for me.
  • In one of the monthly meetups of our agile testing community at my company, we had watched Maaret Pyhäjärvi's keynote "Intersection of Automation and Exploratory Testing" at SeleniumConf India 2018. This talk was very well received and inspired people to think differently about exploratory testing and automation. For me personally, Maaret is one of the best examples who sees herself rather coming from the exploratory testing side and yet clearly emphasizes how essential programming skills are, also for exploring. After all, test automation fits in nicely in her box of exploratory testing.
  • In this very talk, Maaret named Angie Jones as her figurative counterpart, looking at test automation as the main thing, where exploratory testing fits in. I had the opportunity to experience Angie's way of teaching test automation in her tutorial "Advanced Automation for Agile: UI, Web Services, and BDD" at CAST 2018. In my blog post about the tutorial you can read the following: "It felt good to learn that I know more than I thought I would. That I could easily follow and still had time to help others, and was able to do so." So what's it to be feared? In addition, Angie invited me to participate in the Test Automation University next year. I made clear that I'm no automation expert, and yet Angie encouraged me to teach how you can get it done even if no one on your team is an automation expert. I took a leap and agreed, so watch out for the course coming out presumably mid of March next year.
  • My dear teammate Olha Fil is a major inspiration for me as well. She keeps reminding me that most challenges are best solved together, basically any sort of task. Olha is really engaged in pair testing complex stories with me and teaches me with the most patience and kindness when pair programming. It's a pleasure learning with and from each other. She's my bastion of calm reminding me not to do things alone, while at the same time encouraging me to tackle my chosen challenge. As she said, although it will be painful at the beginning, anything is possible, and I really only need to practice, so just do it. She was the one to raise my attention to the point that increasing the confidence in my skills should be the main factor to evaluate the probe on. Also, she ensured me that I can always reach out to her and ask her about anything. Thank you so much!
  • When I had Marianne Duijst pairing with me on my testing tour on the topic of automation, I was so glad to share the knowledge I had about tools like the command line, the IDE we used, Cucumber and more. There are two things here: first, I was super happy I could share knowledge in areas I would not deem myself super knowledgable. Second, Marianne is just super inspiring all around. Just in recent weeks she took up her own challenge to dive deeper into code, reaching out for lovely people like Marit van Dijk for support, and tackling the Advent of Code challenge this year. My greatest respect goes out to her! 
  • And last but not least, Toyer Mamoojee, my learning partner himself, is the one I want to thank the most for being a constant source of inspiration. If I were to use the analogy, I'd say Toyer and I are forming a similar pair as Angie and Maaret do. Toyer is firstly focusing on automation and adding in exploration; and I'm coming from the exploratory testing side of things and am aiming to add more automation in. It's very inspiring what he did using his unique skillset over the past years, like teaching technical testing to testers in his company, sharing how he combined automation with mind map visualizations, and much more. To add to that: I am certain that he will be a great mentor and feedback giver in this challenge!

Adding New Challenges to Existing Ones

The thing is: I plan to still work on other topics as well. I will still blog, another challenge from 2016 I haven't mentioned anymore. My initial challenge of public speaking really kicked off and I'm eager to build on that. My testing tour resulted into more informal hands-on pairing sessions, like monthly security testing sessions with Peter Kofler. In addition, I really want to share my knowledge again more within my company, for example by offering cross-team mob sessions to learn with and from each other. For our global community I committed to tackle my fear of doing teaching videos by doing a course for Test Automation University. If you have read my raw notes above, you'll find the last points on the list as well, and yet I chose a different one as my major challenge next year.

To add to all that, my new pact for 2019 is in itself two challenges in one. It's about tackling my fears when it comes to coding, while still keeping my health indicator in view and taking care of myself. As Alex Schladebeck and Huib Schoots shared in their Agile Testing Days 2018 keynote, this is the only way we can add value.

To conclude, a new pact is born: let's become #CodeConfident!

5 comments:

  1. Lisi I am impressed by your analysis. List of thoughts, pause and exit criteria - this is very interesting, better still it's fascinating.

    I esp. like your entry to pair more with Maaret. Yes we all should.

    Keep up the energy!

    ReplyDelete
    Replies
    1. Thank you Peter, your feedback is much appreciated and really encourages me to go on! :-)

      Delete
  2. Impressive, Lisi! I'm lacking words to express my respect for what you did there, for what you have done so far, and I'm really looking forward for what's to come. The sky seems not be a valid limit for you! Respect!
    Oder wie wir in Bayern sagen: Hut ab!

    ReplyDelete
    Replies
    1. Cool, it's publishing it as "Unknown".

      Greetings from down the "Stammstrecke"
      Patrick (@testpappy)

      Delete
    2. Patrick, thanks so much for your kind words, invaluable feedback as well as constant encouragement and support! Absolutely keeps me going. I owe you :)

      Delete