QA Life in 2021
A lot has changed in the last year for many people. In my work life, it has been interesting to see the switch to 100% remote working and the challenges (and benefits) around that. It has also been interesting to see how my day-to-day as a QA has adjusted to adapt and improve remote working as part of an agile team.
The main challenge I’ve been experiencing and hearing about has been around communication and being in sync with the entire team. Pre-COVID times, it was easy to shout a question over to your teammate and for another nearby teammate to overhear and absorb that conversation. Now, it has to be a deliberate direct message or a meeting setup siloed off to that person.
Maybe I’ve been watching too much Gordon Ramsay’s Kitchen Nightmares during this lockdown, but communication is key to a delightful outcome. The earlier the communication, the less chaotic it will be closer to the delivery of the plate. If a team lacks communication, the kitchen will be in shambles and customers will not be happy!
What is “Shift Left” Model/Testing?
The software development lifecycle usually goes from phase 1 to 6 with QA spending the most time in phase 5 of testing. However, with the “Shift Left” model, QA spends more time in the earlier phases to prevent the chaos closer to the end of delivery.
Since moving to working remotely, I have found my role as a QA to be heavier on the left side of the software development life cycle. The mindset of quality as a team responsibility has played a large part in getting cross-functional teams aligned and communicating (even more so now while working remotely). Even just before the COVID era, it seemed like QA teams were moving into a more “facilitator” and “coaching” role of quality and teams were trending towards a “Shift Left” testing model. With the COVID era forcing remote work, this type of model and QA role has now organically become my day-to-day.
So, what does a typical day look like for me now in 2021?
🎥 Setting the scene: I am currently working at a digital consultancy. We are working on a project with a client to build an Android application with a team of 12. For most of this project duration, our team has been in lockdown and working remotely. We work in an agile methodology and are currently on Sprint 7 with a targeted release date in less than a month.
Our team has tried to implement a rule where meetings should all happen before lunch so that the afternoon is complete work time, which has helped make a difference in productivity (for some of us at least).
- Pre-release planning
- Shoulder checks of completed user story
- User Story Kickoffs for a JIRA card a developer is about to pick up
- API contract* discussion
*API contracts list out the parameters needed to be passed in the request and received in the response. This also helps to ensure the API about to be developed includes the specifications that Android is expecting)
- Create API response stubs in the mock environment based off the agreed API contract from the morning (this is so that Android developers can connect to the mock API to get dummy data while the backend engineers are still working on developing the API)
- Write end to end automated API tests for the new API
- Fix up some automated Android UI tests
- Write test cases in TestRail for the new API
- User Story shoulder checks/kick-offs
- User Analytics strategy meeting
- Backlog refinement (Android), Backlog refinement (Backend)
- Discussions with Android team of how the API for their feature has been implemented and how it should work with the user interface
- Discussions with the wider team about how to handle edge cases for an API
- Create documentation to outline the entire solution design for an API, test data available to use, URLs, required body, and potential error responses to consider in the UI.
- Discussions around how the Android CICD has been set up for other pipelines (staging, pre-prod) and how builds should work going forward
- Discussions with the backend on how the deployment to staging would work
- Manual testing and feature checking of completed user stories ready for QA
From the two days noted above, it is apparent that the role of QA is not only testing at the end of the software development lifecycle. The day-to-day includes influencing decisions earlier on and facilitating alignment with cross-functional teams (whether it be meetings, messages, documentation, etc).
This helps ensure that uncertainties, integrations, and scenarios have been picked up and thoroughly discussed earlier on before the feature is assigned to QA. Although this means more time spent on the left side of the development life cycle, this “Shift Left” type of model helps move the more important discussions earlier in the process. This also helps relieve some of the pressure on QA when 100 tickets have come flooding through and QA starts asking questions and revealing gaps and edge cases which can lead to the reopening of some tickets.
Would this new day-to-day as a QA be the same if COVID and remote work didn’t happen?
I think eventually it would, as testing was already moving more towards a “Shift Left” model where the entire team is responsible for the quality of the product. However, this adapted day-to-day has been organically forced to come to fruition now with remote work causing some communication barriers.
I am curious to see how or if the day-to-day for the QA role changes once teams go back to part-time office working or even full-time!