1. Не изолирайте вашия клиент
За да сте сигурни, че клиентът ви е удовлетворен, неговите изисквания трябва да са напълно (или почти напълно) изпълнени. Лесно е да се даде подобен съвет, но изпълнението му е доста сложна задача. Много екипи се изкушават да се срещнат веднъж със своя клиент, да изслушат какви са неговите очаквания и след това да се захванат с разработването на софтуерния продукт, представяйки накрая готовия резултат. Този подход, обаче, може да доведе до сериозни неразбирателства и конфликтни ситуации.
Работата с Agile методологии на свой ред изисква почти постоянна комуникация с клиента. Както всеки QA специалист ще потвърди, това значително улеснява изясняването на очакванията, нанасянето на корекции, въвеждането на нови функционалности, а и извършването на съответните тестове. Подобно взаимодействие насърчава креативността и повишава качеството. Най-добрите екипи успяват да направят и още нещо – да ограничат риска клиентът им да поиска въвеждането на твърде много промени. С помощта на Agile методологиите те заедно измислят по-добър начин да накарат продукта да прави това, което потребителят желае.
QA специалистът на свой ред трябва да участва в изясняването на т. нар. потребителски истории (това са изискванията към всяка една функционалност, записана на максимум пет реда. Елементарен пример за потребителска история е: Аз, в качеството си на <потребител/клиент>, искам <целта, която трябва да бъде постигната>, за да мога да <причината, поради която целта трябва да бъде постигната>). Казано с други думи – той трябва да умее да се поставя в позицията на крайния потребител, за да разбере какво очаква той от даден продукт и съответно какво би могло да се обърка.
Освен това, работата на QA експерта не приключва с излизането на продукта на пазара. Той трябва да взема активно участие и в процеса по пускането на релийзи и поддръжката на вече готовия софтуер. Представете си, че тествате някакво приложение, което предстои да бъде пус нато след няколко седмици. В началото всичко изглежда наред, но след като дългоочакваният момент настъпи и то прави своя официален дебют се оказва, че започват да се появяват различни проблеми. По тази причина QA специалистът е длъжен да продължи да тества продукта, особено ако към него се добавят нови функционалности.
2. Работа в екип
Едно от най-големите предизвикателства пред всяка компания е превръщането на група хора в истински екип. Представете си, че сте треньор на футболен тим. Може да разполагате с едни от най-класните играчи в световен мащаб, но не успеете ли да ги накарате да играят единно, като отбор, то значи сте обречени на провал. Как може да бъде постигната тази цел? Експертите смятат, че качествената екипна работа се състои от шест компонента:
- Комуникация;
- Координация;
- Балансирано натоварване на отделните членове на екипа;
- Взаимна подкрепа;
- Старание;
- Сплотеност;
Ясно е, че членовете на даден екип постигат по-добри резултати, когато могат да разчитат едни на други. Това е сред най-важните условия за създаването на качествени и наистина иновативни софтуерни продукти. В тази връзка, ролята на QA специалиста е от първостепенно значение. Той трябва да бъде максимално дипломатичен и добронамерен, когато съобщава за открит бъг или някакъв друг проблем. Негова основна цел трябва да бъде не просто подобряването на качеството на продукта, но и запазването на добрата работна атмосфера.
3. Автоматизацията и Agile средата
Всички са чували крилатата фраза, че времето е пари. Това се отнася с пълна сила за разработването на софтуерни продукти. Колкото по-често се пускат релийзи и по-бързо приключи целият този процес, толкова по-доволен ще е вашият клиент. Затова и методите за тестване трябва да бъдат по-бързи и ефикасни. Представете си, че сте част от екип, разработил дадена игра, която е пусната на пазара. С всяка нейна актуализация към нея се добавят нови функции. В един момент става невъзможно всяка една от тях да се тества ръчно. Спасението се нарича автоматизация.
Автоматизираното тестване може да реши много ваши проблеми, но само ако разполагате с правилните инструменти. Примери в това отношение са Selenium, TestNG, Appium, Cucumber и Test Studio. Тези инструменти изискват да бъдат разработени test cases според нуждите на приложението или софтуера, който се изпробва. След това те могат да се изпълняват многократно. По този начин се гарантира, че във всяка стъпка, която се прави, няма грешки, а ако пък такава бъде открита, то тя лесно ще бъде идентифицирана и ще е ясно на какъв етап се е появила в софтуерa.
4. Помислете как да подобрите своята ефективност
Agile екипите непрекъснато анализират своята работа и търсят начини да се справят със задачите си по-качествено и по-бързо. Казано с други думи – те винаги се стремят да се усъвършенстват. Членовете на тези екипи не обичат да бъдат командвани или да следват наставления. Те предпочитат сами да намират решенията на проблемите, пред които се изправят. По тази причина от голяма важност е ретроспекцията, която се прави в края на всеки цикъл (итерация). Тогава всеки може да каже кои според него са положителните и негативните елементи от работния процес.
За да бъде ефективен един Agile екип, той трябва да се вслушва в критиките и да се стреми да коригира своята дейност. Това се отнася с пълна сила и за QA специалистите. Така, с течение на времето, се създава един своеобразен каталог на най-добрите практики. Много екипи използват различни приложения, за да оптимизират работния процес, да планират ежедневните задачи и да проследяват напредъка. Пример за това са Канбан таблата, с които лесно се онагледява каква част от работата е свършена, по кои задачи все още се работи и какво предстои да бъде започнато.
5. Комуникирайте лице в лице
В своята ежедневна работа, QA специалистите редовно се сблъскват с един сериозен проблем – как точно да съобщят, че са открили някакъв проблем? Това може да се превърне в истинско изпитание. Практиката сочи, че членовете на Agile екипите предпочитат комуникацията лице в лице. Представете си следното: открит от вас бъг е толкова сериозен, че може да доведе до блокирането на работата на разработвания софтуерен продукт. Може да се изкушите да съобщите за него с имейл или съобщение, но това не е най-доброто решение. Не забравяйте, че един от основните плюсове на Agile методологиите е постоянната комуникация между членовете на екипа. Възползвайте се от това! Не пропускайте възможността да обясните в един директен, откровен и приятелски разговор какъв точно е откритият от вас проблем.
Нека не забравяме и oще нещо важно – членовете на все повече екипи работят дистанционно, особено в условията на продължаващата пандемия от COVID-19. Така, комуникацията лице в лице на практика става невъзможна. Това, обаче, изобщо не означава, че Agile методологията не може да бъде прилагана в подобни обстоятелства. Т. нар. Distributed teams просто трябва да продължат постоянната комуникация с помощта на известни на всички програми като Skype, Slack, Microsoft Teams и пр. Важно е да има ясно разпределение на задачите, както и изградена система за отбелязване на изпълнените цели. По този начин се гарантира, че дори и даден екип да се състои от хора, живеещи в София, Лондон и Пекин, крайният резултат ще бъде с достатъчно високо качество.