Sunday, March 20, 2016

Learning pathways for testers


Usually, when I look online for learning resources I find a lot of rankings like:
  • Top 10 blogs every tester should follow
  • Top 5 sites every tester should know
  • Top 20 twitter account for every professional tester
Almost always those ranking contain top hits from Google + one entry which happen to be closely related with the ranking source. Associating yourself with the best is really smart from a marketing perspective (and I actually may do that myself one day), but it's surely not what I was looking for. In this post, I want to provide a more thorough examination of the learning topic.

Text will contain 3 parts, which are ordered by, importance level - motivation, learning at work and learning after work.  Each section contains action points to consider (same style as in Lean Software Development: An Agile Toolkit). Note that those are not universal truths. You need to map them to your style of work and project reality.

You can probably apply those advices to different computer science field as well.

Part I - Motivation

Surely the most important one. You may have the best resources available, best people around, but still, it's not enough unless you are willing to learn. 

1. Like what you're doing

Robert Greene in Mastery wrote 'To master a field, you must love the field and feel a profound connection to it'. I can't imagine going to work every day with a negative attitude. Save yourself tortures and find a job that you like (or at least tolerate).

2. Adopt a beginner's mind approach and don't be afraid of failure.

I'm always impressed by how young kids are skiing. They carefully listen to their coaches and try to adopt advice instantly with full trust. In rare cases when they fell on the ground they just stand up and start riding again. No complaints. No second thoughts. We should strive to adopt the same approach. If you are interested in this subject read Ryan Holiday's The Obstacle Is the Way book.

3. Find a company which embraces learning

This has a lot in common with something I wrote already in my blogs - you should always aim at working with people smarter than you. If you notice that your every change proposals are discouraged or laughed off consider changing your peers. It doesn't have to be company change, internal project switch may be good enough.

4. Find a company that pays you well and doesn't use the money to motivate you.

Do not pretend that money is not important. In my opinion, you should aim on earning above average. How to define average? It's your subjective amount of how much people on your position, with the same experience, should earn. Money shouldn't be used as a motivational carrot. As Daniel Pink wrote in his great book Drive (add to wish list if you haven't read it already) extrinsic motivation has negative effects. 


Part II - Learning at work

Dorota Wojtałów wrote in her Medium post that 'at work, you have almost 8 hours of practical experiences — 8 hours which can be filled in with learning new stuff.' Wholeheartedly agree. No need to add anything.

1. Don't be afraid to step outside your comfort zone

I dedicate this point to every manual tester who wants to start automating. Writing code isn't really that hard, especially today when we have so many books and online resources available. Don't be afraid to pick up DevOps tasks as well. Treat it as a free learning opportunity (you'll work 8 you hours anyway, so why don't you do something new?).

2. Try to see the world from peers eyes

Most software testing books focus on testing activities only. In an Agile world we are all team members with one simple goal (remember my last post?): delivery of the right product. We should focus more on projects than testing. Ask when necessary what's expected from you.

3. Ask for & give feedback

This is not easy, especially when it comes to the negative one. However, it's really beneficial for us, projects & the whole company. Don't forget about positive feedback too - it may even make occasional negative ones more influential. Read Nonviolent communication if you're interested in the subject.

4. Don't procrastinate

TODO... ;)

Part III - Learning after work

Every intellectual & well-paid job requires some learning after working hours. Simple as that. No exceptions here.

1. Don't work too much

It may surprise you, but overtime actually decreases productivity.  If your company has something I call 'overtime culture' (social pressure to stay at work more than 8 hours) try to kill it by introducing new, more healthy, working trends. The same applies to read & learning at home. No need to do it always. Find some time for friends, family & dogs. Dogs are awesome.

2. Make reading your habit

Books are awesome too. Start reading every day, on various topics. If you are tired of technology go for something lightweight (I like post-apocalyptic books like World War Z or Metro 2033). Consistency is the key. If you read every day you will end up with the reading habit, and as Charles Duhigg wrote in 'The power of habit' they're hard to change. Take advantage of that.

3. Expand your knowledge in various fields

In one of my previous posts, I stated that ideal tester equals 3,14. Keep that in mind and don't read testing books only. Expand your knowledge in programming, DevOps, management, UX, security, etc.

4. Be critical in choosing sources you follow

Our day is limited to 24 hours only. You can't follow every single resource available online and read every book. Be critical and follow the ones you consider smarter than you. Generally speaking, internationally recognized authors are almost always better than local. Read in original language (usually English) to avoid translation confusion. Blog aggregators (top posts from last week) may be helpful here.

6 comments: