One of the hardest things about self development is that you have to go out of your way to pro-actively learn – mostly in your own time – rather than simply waiting for the information and experience to fall in your lap. At least that’s what I believe. I’m one of those awful humans who did above average in the education system with little effort, who was told all the time that they’d do great things afterwards because they’re so smort. The problem with that is that it teaches you to work only as hard as you have been, and to believe too much in ‘talent’. Since then, my life went really downhill to the point that I was barely earning enough to pay rent, and if it wasn’t for some great friends then I’d have eaten nothing for months on end. I wouldn’t have realised I could do better, either.
What I learned then is that you have to work for things. You have to work really darn hard for them. If you wait for the world to bring you opportunities then you’re going to be sat there for a very long time, so you have to make opportunities for yourself. In my opinion, lifelong learning is the most powerful way of doing this. I won’t pretend to be a master at this, or at balancing work and play – I live in a near-constant state of exhaustion, but if I can take just a few steps forward then it’s worth it.
One of the obstacles to this grand statement of self-education, and the reason for my tiredness, is that there just isn’t time around the basic must-dos of the week. Unless your job includes time for learning activities, or you’re a student, it’s almost impossible to get time in the day even for things that are related to your role.
A day in the life of Bruce
For me, a typical workday starts at 9 and I spend the first 45 minutes preparing the kanban board for standup. By this I mean, I retest any subtask bugs that might be cluttering up the board, take note of blockers and bugs that need fixing for the next prod release, as well as extra migrations I need for the day’s testing. I prepare my notes so that when I’m asked about the status of a ticket, I can reply competently with an answer prepared. I also spend about ten minutes talking rubbish with my coworkers about the weather, politics, fantasy novels or disappointing game releases. (*cough* Playstation1Classic *cough*) Our standup is a video call lasting 15 minutes. We used to take it in turns for each member of the team to talk about what we did yesterday and what we’re doing today, which was absolutely awful. Thankfully we moved to a system of going through the board, finding pain points and tickets that need communication between team members. The stand-up is shorter and more useful, and not just a room full of people trying to justify their presence.
After standup, I usually do manual testing of our products – checking behaviour as well as skin options (font size, colour, button properties, deeplinking…) for new client rollouts. We’re in a really heavy phase for that at the moment, so I spend about four hours most days comparing the product to designs, raising bugs and retesting them, talking to the design team about missing configs or logos.
Dotted around in there, I have an average of two hours of meetings per day – though this varies between 30 minutes and 4 hours. The meetings are backlog refinement, team retros, knowledge sharing, product and tool planning etc. As QA, I need to know about anything I might need to test – which means everything. From analytics event firing to deployment pipeline to product behaviour and the order of priority for future work, it’s all relevant to my role.
I tend to eat while testing, and I leave at 5 or 5:30 in the evening. I walk to and from walk, which takes about 45 minutes each way. Currently I listen to audiobooks during that time, but I have been thinking of switching it up for some podcasts.
Making a plan for learning
After working as a QA for 6 months, I wasn’t satisfied with my progress or my ability to actually log what and how much I was learning. I made a Development Plan that set out goals for the next six months, as well as a template for making weekly goals, which I have spoken about before.
Here’s an example of a plan for this week (as of writing the draft for this post):
You can see that I haven’t gotten too far with this week’s goals, and that in itself is a useful thing to know. Without this sheet I would have no concept of what I wanted to do with the time, or how well I’m keeping up with my goals. So far this week, I have spent at least two hours learning about Docker and how we use it in our company, and have spent an hour learning about Kubernetes on top of that. I still need to write a test plan based on exploratory analytics testing that was in my development plan for last week, write a BDD (behaviour-driven-development) story for extending our VRTs (visual regression tests) to cover another browser, and pair with a developer to fix the VRTs we currently have that have been failing for over a week already.
After seeing that I am behind on these tasks today, I talked to my line manager to get support in writing effective stories and we put a short meeting in the calendar to go through it together. I also wrote in my team’s slack channel asking for support in finding out why our VRTs are failing to run correctly, and two people agreed to do a mob coding session tomorrow afternoon.
The main things that I do to ensure that I make time for self improvement are:
- make and keep track of specific goals and actions – having a mix of big and small actions mean that you’ll always have something to do, whether you have fifteen minutes or two hours spare. Otherwise, you could find yourself suddenly with an hour, and spend half of it researching what to do with the time.
- ask questions – colleagues with knowledge you want will not only be able to help you at the time, but will remember your interest and they’ll send resources your way when they find them.
- use home time – if I can’t find time in the day, I have to make it myself. I get up early, use evenings, watch tutorials after work instead of Netflix shows – but not every day, there’s always time to rewatch Star Trek.
How it’s going
To be honest, I’m not sure any amount of progress would be enough to satisfy me, but I think it’s going well. I’ve been using the weekly plans for 7 weeks so far and I keep thinking that I should have gotten more done by now. This is more a matter of managing my expectations than anything else – I want to have automated half the company in two months, no matter how absurd that sounds.
The second six-month goal was “Learn about back-end services, especially affiliate and analytics tracking”. Unlike the first goal, this isn’t something I can shuffle along with on my own. My fellow QA and I have been asking questions, bothering the right people and making a nuisance of ourselves until we got a weekly meeting put in called the QA Dojo. In the dojo, we have ‘guests’ from within the company who come and explain to us how various services or pieces of architecture work and how we could go about testing their functionality. The latest was on using Docker, the one before that was about how we collect, process and store analytics data. I feel that these have been more useful and informative in a few weeks than anything we had tried to do in the months prior.
Moving forward, I’d like to accelerate work on the programming side by making a small application using html and css and then serving it with NodeJS. While keeping everything else at the same pace, of course.