Project Management

Effective Team

QA

Speaking from mixing roles experience

QA + PM in a single role

Not the “best practice” like combining of several roles in the single one person could be very effective for a small team where extra team-member adding may leads to misunderstanding and loss of information.

Based on my experience I would like to tell about combining of QA engineer role and some of Project manager’s responsibilities. In short, it is real and very interesting. I can’t say that combining is easy, but from my perspective integration of these two roles is optimal mix because as a QA I’m aware of the whole development process and issues' statuses and it helps me to understand priorities and answer the question “where we are”, help the team achieve sprint goals as project manager does.

Our team uses Scrum but as it often happens it is not strict Scrum process but the most adapted under needs of the team and product goal set. Generally role of QA Engineer in Scrum already implies move beyond the usual QA task list. Scrum says that QA team must participate in every activity of the development process from the very beginning and till the end. As other team-members QA must independently take initiatives, help the team in all possible ways, maintain healthy relationships, monitor current events in the team and, most importantly, clearly understand their tasks during the sprint.

Working on this mixed position for the past 6 months has been a great experience and has provided many learning opportunities. I have filled many different roles and responsibilities keeping testing, tracking of problems and product bugs.

My daily working routine during the sprint includes:

  • solving of current priority issues (for example, to collect, analyze, share information, plan and prepare meetings, draw up and discuss future acts, figure out questions/blockers to highlight on stand up call, help team to sort out the workload)
  • analysis and file requests from product/dev team, initiate the implementation of new functionality/improvements for existing functionality if needed
  • track and maintain sprint progress - every morning I look at the project board and figure out which tasks were done/closed, which got tested, which got blocked, which just started development - I update the graphical performance indicators of the team for delivering functionality in sprint.
  • testing in close collaboration with dev-team, tracking of problems and bugs & provide feedback from their testing experience
  • analysis of user stories and set prioritization based on data from the product team
  • testing the completed functionality of each sprint before release from user's perspective and ensuring that all previously completed functionality is not regressed
  • sprint report preparation
  • compose the following sprints for planning
  • work on specifications and test cases for automation QA

Below is my findings that important to understand and learn, listed not in order of importance since all of them is important. To reach success you should:

  • provide quick and effective reaction to urgent problems
  • be flexible in decision making
  • be able to find an approach to different people, to listen, to understand who should
  • be given more freedom, and who needs micromanagement; have patience to build effective communication
  • be able to switch to various tasks, sometimes polar tasks so competently manage your attention, energy and time
  • always make sure that team is going on correct track
  • be able to identify the conflicting priorities
  • build effective interaction with product team by asking questions and challenging assumptions to help clarify the business requirements, you should understand the true business goals of the project
  • be able to take the lead to plan, organize and involve the whole team in the testing work
  • having faced a problem figure out reasons and steps to reproduce first before assignment
  • repeatedly check all the functionality to have relevant information about project status
  • know which of the developers is responsible for each section of the project, and therefore quickly forward the request in the right direction

As a conclusion I would like to say that this experience has added many wonderful skills to my toolbox and has helped me learn how to play many different roles – all at the same time. Most importantly it has taught me to ask questions and do whatever it takes to help the team succeed.

14 FEB, 2018

Unit Tests in Golang Way

I’ve been working more than 7 years with Python. The way I tested applications with Python was really different from Golang. At first, Golang might shock you, but you just need to understand the ideas behind “Go”.

27 MAR, 2018

Basic comparison between Python async and sync function

Async operation will really speed up your code for blocking I/O operations or networks requests. But it requires to work carefully with "event loop" and code might get complicated.

19 NOV, 2019

Step by step guide for creating WebSocket client in Golang using mutex and channel

In this guide to using WebSockets in Golang I would like to concentrate on the following: the application should work whether WebSocket server is online or not. The server can be offline for a number of reasons: poor connection, server issues, etc, but a

Help Ukraine to stop russian aggression