How I work: Sergey Korol, Technical QA Manager at Waverley Software
Sergey Korol is a Technical QA Manager with over 10 years of experience in IT, which develops the skills of a tester, developer, analyst and manager. Sergey is a member of the program committee and permanent speaker of the largest Ukrainian conferences on quality assurance QA Fest and Selenium Camp, as well as last year’s finalist of the Ukrainian IT Awards in the Quality Assurance nomination. He is the author of several open-source libraries for testers, a moderator and editor of the largest Ukrainian portal of automators AT.INFO . He conducts trainings, consults and trains young professionals.
Now Sergey is responsible for the development of the automation direction, is actively involved in improving processes, conducting audits and presales, and is also conducting back-end development and technical support for one of the projects at Waverley Software .
“Sit down next, watch and remember. Last time I reinstall you Windows! ” – these were the words of my godfather, who back in 2000, for the third time in a row, came and reinstalled the OS. And this is a month after I got a PC. The next day I was covered with an inquiring mind, and I myself demolished Windows from DOS through Volkov Commander in order to quickly learn new material.
During this period, I constantly broke something and experimented a lot with different software and system settings. At the same time, he felt like a fish in water. At the age of 13, I could not imagine that the future tester, growing to the core of my bones, is growing in me.
“A university diploma is just an expensive decoration. The most important thing in life we learn on our own ”
I got my first job as a Manual Test Engineer in 2009, when I was in the 6th year of the KhPI magistracy (Department of System Analysis and Management). I was interviewed by my future lead, with whom we studied together on the same stream at the university. As it turned out, he was expelled after the first year, he served in the army, and by the time of the interview he had been working as a tester for two years. This man taught me a lot and involuntarily forced me to radically rethink some of my life’s positions.
“The most correct decisions in my life were made when I stood on the edge of the abyss”
Do you want to be a leader? Do you want to become the head of the QA department? These questions began to be asked to me in the fourth year of work in the position of Manual TE. On the one hand, this meant incredible prospects. On the other – a huge responsibility.
It was not for nothing that I mentioned the abyss – the sensations were about the same as with the first paragliding in my life: you signed up for some kind of adventure, and after five minutes you are already running up to jump from a height of 2.5 thousand meters into uncertainty. Jumps of this kind played a key role in my further development: they gave me a sense of self-confidence and enhanced my self-organization skills.
“No matter how cool a specialist you are, always remain human”
The transition from Manual Lead TE immediately to a high-ranking automation engineer looked rather adventurous. But at that time I was already accustomed to conquering obviously high standards, and it seemed to me that the knowledge to write my Selenium Frameworks bicycles, as well as the ability to configure CI / CD should be enough. But no …
In 2013, I was interviewed in one of the notorious offices for a Senior position and, to put it mildly, was thrown with rags by one, maybe a good, specialist. But his approach to the interview left a rather unpleasant feeling. There is a fashionable term for expressing one’s professional superiority by ridiculing the rest – intellectual violence .
I learned a few lessons from this story:
- do not indicate in CV what you have not worked with for a very long time;
- automation is good, but without a good knowledge of the programming language it is just a monkey job;
- I must do everything possible so that no one can ever put me in such a position;
- and most importantly – you can’t behave like g ** but, regardless of the circumstances.
Transition to automation
“Impostor Syndrome is a Great Stimulus for Self-Development”
I did go through an interview at Senior TAE in one of the offices. It also opened my eyes to the discord of Senior Senior. Each company has its own requirements and expectations. Nevertheless, the recent failure haunted me for a long time and made me doubt myself and my decisions. But, on the other hand, such a kick became a powerful motivator to deeply immerse yourself in the study of programming languages, as well as to understand the internal specifics of the work of all the automation tools I need. Over time, this has borne fruit: both at the career level (in the form of a lead position) and at the social level (in the form of constant speeches at conferences).
“A modern engineer is a highly motivated researcher with good soft skills, who, if necessary, can easily switch to any technology”
In my speech at Selenium Camp in February 2020, I talked a lot about the development and prospects of automation, that we have no right to call ourselves QA, if we absolutely do not understand how all the processes are arranged from the inside. In many ways, it was the desire to put the whole puzzle in my head, as well as a fairly extensive experience in automation and prompted me to try clean development at some point.
Six months later, my habits of asking a lot of questions, thinking systematically, getting to the bottom of every detail, passion for absolutely everything that is happening on the project (Front-end, Back-end, infrastructure, business analysis, etc.) led our Solution Architect to offer my Candidate for the role of technical leader – in addition to the back-end development.
Role and responsibilities
If I decomposed my title in Waverley – Technical QA Manager, it would look something like this:
Technical – a set of technical skills that allow you to solve problems of different difficulty levels regardless of direction. For example, design development, automation, presale, R & D and advisory activities.
QA is an abbreviation that I would not use in its usual form, since one person, by no means, can ensure the quality of the entire product. This is the responsibility of the whole team. Therefore, I would decipher QA as a Quality Auditor at the project level of the entire company. I am involved in both narrow audits and the full-blown Architecture Review.
Manager – this includes the development of expertise in Test Automation both at the company level (processes, tools and best practices), and individually (mentoring, training, goals and the like).
As a percentage, approximately 80% of project activities (development, tech leading) go to 20% of company-wide tasks (presale, processes’ improvements, competence evolution, audits).
However, it is the latter that are of most interest. Speaking of presale, quite ambitious startups that require R&D quite often come into our company. Immersion in business analysis, participation in the construction of Initial Architecture and Proposal is an invaluable experience.
We have to prototype quite a lot, study the strengths and weaknesses of existing solutions, as well as assess the risks, predict the necessary resources and terms. And all this taking into account the constant search for a compromise, because the proposal should be beneficial to both parties.
Audits are also quite an exciting activity. It is here, in my opinion, that the ideal environment for uncovering the QA potential is formed. Auditors literally lay out the entire product, team and processes into atoms in search of where in this huge and complex organism that hurts, presenting significant recommendations on how to improve the situation.
However, I can’t say that only these 20% bring me pleasure from work. Not at all. The brain needs constant technical support so as not to lose its grip. On the other hand, after a certain stage in a career, consciousness undergoes certain transformations.
You start to look at problems a little differently, because the viewing angle becomes much wider. Questions from the series “How to solve?” Disappear. In their place come completely different: “What is the budget and deadline?” Many tasks turn into stereotyped ones, and vision into x-ray. Accordingly, not every project can be interesting enough to captivate and attract attention for a long time.
Typical working day
I have several superproductive phases: 9: 00-12: 00, 17: 00-19: 00 and 22: 00+. During these periods, I can give out maximum performance. How did I come to this? It was enough to watch your body and biorhythms. But there are exceptions when the thought does not go at all – and we urgently need to switch to other activities. Or, conversely, thoughts can fly so that they cannot be stopped. Then only a feeling of hunger can overcome the thirst to create 🙂
In peak periods, I do creative work: development, code review, business analysis (if there is no dedicated analyst), process improvement, and the like. The rest of the time I distribute to higher-level activities: interviews, mentoring, non-technical discussions, and more.
Our company has a wonderful slogan – Responsible Freedom. In fact, you can work from anywhere if you perform your duties efficiently and there are no complaints from the client. In fact, this approach makes you keep yourself in check and hints at self-organization.
If I need to solve a problem very quickly or realize a small feature – I stay at home. If the task is complex, then it will be most effective to come to the office for pair programming and torturing the board with various diagrams.
From the point of view of the distribution and prioritization of tasks for the day, I always try to keep the most important things exclusively in my head. No matter how strange it may sound, but once I tried to write everything down on paper or in specialized tools, I began to notice over time that my brain was losing its grip on memorizing information. I found a terrible dependence on third-party tools, without which I could not remember at all, but what should I do today. Moreover, given the diverse activities at the company level, priorities often have to be changed on the fly. Therefore, I returned to the idea of storing important information with a short life cycle (several days) in my head. Accordingly, the task pool is updated daily. And with a sharp change in priorities, the brain, strangely enough, copes with such activity instantly, without the need for synchronization with any tools. Of course, there are exceptions everywhere, and you still have to notify something if the brain signals a buffer overflow.
Now, during quarantine, I work only remotely. Work from home attracts me first of all with silence, which contributes to maximum concentration (yes, no children yet). Cons – the lack of social activity, but in the current realities this is partially offset by daily phone calls with colleagues.
I usually work 9-10 hours a day, but taking into account the current quarantine situation, I process it a bit. It has nothing to do with any fever on projects, a falling “sale” and the like – I just like what I do
If the thought has gone, then I prefer to finish what I started and not transfer the task to later. Empirically revealed that “then” it can be difficult to quickly and efficiently enter the context and continue in the same rhythm.
But minor processing can be safely compensated by ending earlier the other day. Especially if you see that the new task is quite voluminous to start it in the evening. Another example: Imagine that for some reason you need an LLC in the middle of a working day.
In the classic case, you would be asked that day to stay in the office exactly as much as you were absent. Only there will be no sense from this. And most likely, the employee will simply spend this time picking his nose and browsing Instagram.
Therefore, in my opinion, you always need to look for balance. In general, during my career I managed to work in completely different modes, including a strict hourly schedule and a rather flexible schedule. As a result, the first place in my personal charts in terms of comfort and productivity is Responsible Freedom mode.
Talking about the balance between work and personal life is very difficult. Indeed, when we sit in four walls, when every day we have the same pictures in front of our eyes, and our loved one is in the next room, the reality we are used to is distorted. From a psychological point of view, the brain cannot be allowed to blur these boundaries.
My wife and I try to adhere to the same regime as before quarantine. We even wish each other a good day, going to different rooms after breakfast. Unless they began to dine together. Otherwise, nothing has changed in terms of workflows. And in some ways it has become even easier: who finishes work earlier can easily see to it that the partner does not stay too long.
During the day I try to pay attention to physical activity. Under quarantine, this is all the more important. Closed fitness centers are not a reason to take care of your beloved until better times. My wife and I switched to online training: karemata, dumbbells, music, a trainer on TV – and more.
Of course, we had to change the type of training a little: now we focus on functionality and stretching. But 3-4 times a week in the morning is enough to at least somehow compensate for the lack of movement. The rest of the time you just need to listen to your body: he will tell you when it’s time to get up and walk.
In my opinion, any discussion about productivity is very subjective without context, and also in isolation from other metrics. After all, we are not paid for the number of lines (smelling) of code per day or for the quickly (half) analyzed requirements, or for (on the knee) designed architecture for a high-risk domain.
Thoughtless attempts to measure the productivity of key IT specialties can lead to a dead end. Indeed, many things are evaluated in a complex and often – on indirect grounds. Especially in the testing world.
For example, you can enter a metric of the number of written test cases per day, month or year. And then to encourage or fine people depending on some averaged indicators. Only here the product as it was r **** m, and continues to remain so.
You are at a loss run to the testers (!) With shouts: “How so?”. As a result of a long and tedious trial, it turns out that Comrade Petrov, who wrote 100 test cases in a month, does not understand how the product works at all. And his tests did not find a single defect in the last six months. But Sidorov with an indicator of 20 tests only manages to start critics and blockers.
“Ok,” you say. “Let’s focus on the number of bugs and their severity!” Get numbers, praise some, blame others. For some reason, this did not affect the quality of the product in any way. “What’s the matter again?” – you ask.
It’s simple, Carl! Your processes are completely rotten! Developers do not write tests, no one has heard of coding standards, static analyzers are not connected, there are no pre-commits, code reviews are just for show, all the garbage flies directly to master. Testers do not have time and did not hear anything about impact analysis, planning takes place one and a half cripples for a beer and Spotify (and without Product Owner and business analytics), the level of toxicity in the team just rolls over. And at that time, you all measure the productivity of testers ?!
Of course, metrics are important and necessary. But a real measure of productivity should go hand in hand with performance indicators. And here everything becomes much more confusing.
Here are some examples:
- Vasya did not start a single line of code in two days. After all, he thought over how to most effectively solve the task in order to save the team a lot of time for implementation and support. Only now he may not find the optimal solution at all. Does this mean that Vasya wasted his time? And if you still find it, but in a week the requirements will be replayed? And what if a significant nuance turns out to be unaccounted for in the implementation process – and this will lead to a complete redesign?
- Fedor devotes an hour to a day to Petit’s mentoring. After a while, Petya begins to commit frantically. Attention, the question is: does Fedor have such a positive effect on Petya or does Petya just spend a lot of time on self-education?
- Valya is a tester. She writes 20% fewer tests than the rest. But in planning, he always asks very correct questions, which often confuse developers, and Product Owner is forced to take a break to discuss requirements with other stakeholders. Does this mean that Valya removes some of the risks from the team and has a positive impact on product development? Or maybe the team lacks business intelligence, and Valya simply doesn’t understand what?
- Max is an automation engineer who covered 90% of the regression with UI tests, built his pipeline into development flow and regularly commits to Git. But his tests find no more than five bugs per year. Does this mean that such tests are ineffective, and he does useless work? Or is it just that developers at lower levels are so well covered that most of the bugs are even before the UI tests are launched directly?
There are many such examples. And you are unlikely to be able to adequately measure or automate this. Undoubtedly, there are exceptions. But in my memory, the effectiveness of evaluating the productivity of a particular person was clearly manifested only in negative scenarios. For example, a developer has committed only two lines of code in a week, while not being a leader or architect. Here, the productivity metric will fire perfectly. But if there are no such anomalies, then it makes sense to evaluate productivity in isolation only at the command level. And only when a tendency to degradation occurs should one lower to a lower level and localize the causes.
Well, let’s not forget about the human factor. After all, smart IT-specialists adapt very easily to metrics and often start to adapt numbers to specific situations.
A case from real life. Let’s say your quality criteria stipulate that the number of bugs per sprint should not exceed five. And then one day, testers find as many as 32 defects! Runs Product Owner to the manager with shouts: “WTF ?!” Manager to testers. Everyone has a panic, everything is on fire, an urgent retrospective.
In the next sprint, a decision is made to clear out all bugs, with which the team successfully copes. Only nobody can report the number 0 in the bug graph, as Product Owner will think that everything is finally fine with the product. And, therefore, it will be very difficult for him to explain in the next sprint why defects again climbed.
The opposite situation immediately arises. The testers were intimidated that you can’t find so many bugs (this is reporting, fear of the guillotine). And what do you think? People simply agree among themselves not to start “extra” bugs before sending a report, deciding to postpone it for the coming week. Here you have the dark side of the metrics.
Returning to the initial formulation of the question, my personal approach to productivity and efficiency is tightly tied to the specifics of the brain and the constant expansion of information coverage. Solving any problems, I always try to dig a little deeper than what is required to solve them, using analytical and systems approaches. I try to reinforce any new information with practical examples of use.
For many classic tasks, I have quick-start templates from which I can quickly recreate the environment necessary for work or prototyping. I periodically review my old code – this is one of the few ways to independently understand and evaluate how much you have grown over a fixed period of time.
I find for myself idols that can be guided from the point of view of self-development. And sometimes I arrange shakes for the brain, doing things that I’m really afraid of, for example, public speaking.
This and much more allows you to build stronger information links, creating unique markers in your head. Thus, when a question or task pops up, the brain first unfolds a map of potential solutions and assumptions, simultaneously generating a number of leading questions. And then it’s a matter of technology: curiosity, analytics and a solid technical background in most cases will easily allow you to bring it to mind. Especially in view of the realization that we are surrounded by an unthinkable base of knowledge and tools that greatly simplify our lives.
Who am I? Are I moving in the right direction? Do I download skills? How well do I do my job? And am I doing that job? Ask yourself these questions more often. After all, it is they who often act for us in the role of peculiar evolutionary triggers.
Tools and work environment
I am of the opinion that the most important source of productivity and effectiveness is genuine love of one’s business and proactiveness. But a variety of tools, I would refer to the means of tuning our brain.
I’ll start, perhaps, with less abstract. Whether it’s home or work: personal space, good hardware, visibility and comfort – these are must have. Under quarantine, some things are especially important.
- working laptop Macbook Pro 13 ‘, i5, 16Gb RAM;
- ПК i7, 32Gb RAM, SSD + HDD (Linux + Windows 10);
- USB hub for 7 slots;
- 2 × 27 ‘monitors with desktop mount;
- Logitech C922 camera (Full HD);
- Blue Yeti Pro microphone + Koss closed-type headphones;
- TP-Link Archer C1200 router
- KULIK SYSTEM chair ;
- at work – superstructure for standing work STIY STIL .
I solve the classic tasks of development and automation behind a laptop. I mainly use PCs for the following tasks:
- Experiments with various tools. For example, once I needed to explore all the possibilities of the Jira Server + Bitbucket Server + Jenkins bundle. In order not to wait for two weeks of apruvs, accesses and other bureaucracy, it was easier for me to deploy everything at home.
- Support for pet projects requiring cross-platform.
- Working with ML tasks (after all, loading, say, 8 GB of vectors into RAM and ejecting 50 GB of SSD to solve a point problem is an overkill for a laptop), as well as real-time speech recognition and synthesis.
For development, I prefer JetBrains products. A good IDE provides a major performance boost. When I was engaged in automation in Java, one license for IntelliJ IDEA was enough for me. As soon as I joined the development, the JS / TS and Python stack immediately pulled myself up. Well, the IoT hobby added C ++ here. After some thought, I bought a license for the entire Toolbox. In general, for an average engineer, the price is quite reasonable.
Due to the spread across the stacks, I often have to work in parallel in different IDEs. Because they usually occupy both monitors. If the IDE needs only one, then the second screen is always occupied by the browser: for code review, build analysis, google and debug. The laptop screen remains mainly for instant messengers and additional terminal windows.
By the way, the terminal also plays an important role. I liked the bunch of iTerm2 + Zsh. There are many useful plugins for it. Well, and where without aliases? I even began to add to my Padawans the goals: “Automate part of routine operations using aliases / functions.”
Continuing to talk about irreplaceable things: Docker is our most loyal friend. And for development, and for automation, and for experiments with a variety of software. When working with clouds, ngrok really helps if you need to quickly connect some service with your local environment.
Everything else is enough at the level of browser capabilities and extensions: Dev Tools, React Dev Tools, Talend API Tester, Octotree, Clear Cache, ImTranslator / Grammarly, JSONView, Jira HotLinker and JetBrains IDE Support. Well, the useful working and non-working links for me are all grouped in Bookmark folders.
As for the main means of communication, these are Slack, Skype, Zoom, Hangouts and Gmail. Our company officially uses G Suite, so it’s pretty convenient to have everything you need right at your fingertips in your browser. Even in terms of mail management: Google allows you to flexibly work with multiple profiles simultaneously. I always have open and working, and personal tabs. Mail is always in sight. Well, filters and labels help to focus on the most important. Due to the fact that the frequency of priority mail notifications is not very high, I try to review letters approximately every 2-3 hours, unless the keyword “URGENT” appears in the title.
All work chats are organized in Slack, which is also convenient. All sorts of bots, a calendar with reminders, assembly statuses and the like are easily integrated there. Here, in addition to direct username references and key tags, the project, CTO and presale channels always have high priority – there are quite urgent requests that need to be processed by ASAP.
All non-working channels of instant messengers, such as Telegram and Viber, always stand by default in silent mode.
An obvious favorite of video communications is Zoom; in quarantine, it elegantly copes with loads. Moreover, if you really want to save a lot of time on discussion of working issues, try to get as far away from correspondence in favor of audio and video calls. Practice shows that 15 minutes of voice communication often replace hours of stupid correspondence, where people can incorrectly interpret incoming information, firmly tightening the node of mutual misunderstanding.
In addition, I often use Zoom for training, video tutorials and consultations. This is where the previously mentioned microphone, camera and headphones come into play. The higher quality content is needed, the more attention will have to be paid to the hardware.
If you often speak in public, I recommend looking at ScreenBrush, a desktop application that allows you to draw or write on top of all windows. It turns out very effectively to emphasize your thoughts, focusing on the important.
Returning to abstract things, I would like to add the following: if you really get high on what you are doing, then a good toolkit will only strengthen your position, helping the brain quickly and efficiently materialize its plan. Therefore, saving on your productivity is not worth it.
Books and self-education
I relate to reading very peculiarly. I didn’t like reading at school, probably because of the imposed and sometimes very depressing material. Now I am only reading what I really need and interesting at a given time. The reason is very simple. We live in an era of limitless information flows that have generated a lot of temptations and temptations.
Every day in various social networks, chat rooms and forums, hundreds of crazy links to all sorts of articles, videos and courses fly by our eyes. They may be interesting, but if you don’t need it now, then you should not even open them and spend your time. You only “make noise” with unnecessary information.
In addition, the technical literature has one big problem: while a book goes through the review and publication stage, the information in it is simply outdated. Well, do not forget that seasoned developers and testers studied on very ancient (by today’s standards) literature.
A simple example. Suppose a novice automation engineer comes to me and asks what can be read in Java. But I understand that I can not advise him in 2006 “Thinking in Java”, according to which I learned the basics. Or “Java 8 in Action” – after all, the 14th release was recently released . Personally, after the 8th version, it was enough to just actively follow the blog articles of famous developers and JEPs included in this or that release. The practical value in buying the next “[Language] X in Action” I ceased to notice from a certain point. Therefore, I focus on specialized blog articles in solving specific problems.
Now he began to read “Leading Quality” by Ronald Cummings-John and Owais Peer. And from a recent non-technical I would single out the following:
One way or another, we have been learning something all our life. It takes me about 2+ hours a day for self-education. But this can be expressed in completely different forms. By the nature of the perception of information, I am a visual, practitioner and researcher. Often, I first need to carefully “feel” everything and only then proceed to the materiel. Dry theory does not go at all at first – probably there is not enough feedback. But again, it all depends on the context, goals and the expected duration of the training.
For example, if a company needs certified specialists in Google Cloud and I’m also interested, I will distribute time in small portions every day and alternate theory and practice, as the total amount of material is huge, and an exam is expected to be released.
If I just want to understand a new framework or library, then before reading the reference API, I will try to launch it using the Quick Start Guide and see how it works.
But there is a flip side: if you need to explore several tools or services, then just “Hello, World” launch is not enough. We’ll have to dive much deeper: to study the capabilities of the API, try to write micro-POC and the like.
It is better to tighten the theoretical base for books in conjunction with real practical tasks. I usually have several pet projects for such purposes, with which I experiment in separate branches
If the brain wants something fresh and interesting, then I switch to IoT hobbies. There and in the “pieces of iron” you can dig around and code in other programming languages.
In all other respects, the mood effect is triggered. If I want to relax and see something, then I turn on the conditional Netflix with English series. For pumping soft skills and any philosophizing, perhaps, you need a special mood. On weekdays, this rarely happens, but on weekends it goes well.
Well, and perhaps the most important thing is mentoring, consultations and public speaking. This kind of activity allows you to constantly keep yourself in good shape, at a consistently high level.
Retrospective and future plans
It is not practical to build long-term plans now: our consciousness has long been unable to maintain the pace of technological development. Humanity is on the verge of revolutionary breakthroughs that can significantly change everything in our world.
Accordingly, my main goal now is to lay the necessary foundation and flexibility, which will allow us to quickly adapt in the future to absolutely any, even the most aggressive environment of existence. In the short term, I am still positively inclined to bring education to the masses, as well as help my company increase its momentum and strengthen its position in the market.
As for young specialists who begin their career as testers, I would like to give one piece of advice. In the face of current uncertainty, a solid technical background is very important. Do not get hung up on specific technologies – they are not eternal.
Over time, you will realize that a balanced combination of fundamental technical knowledge and soft skills will allow you to quickly absorb material of any complexity and switch between completely different tasks.