
Привіт друзі! Сьогодні хочу розказати вам про досить простий, але ефективний спосіб аналізу вимог та багів – візуалізація!
Ви можете подумати – це ж очевидно, а я вам відповім – багато інженерів нехтують можливістю банально намалювати алгоритм для кращого його розуміння.
В продукті, який ми розробляємо, є певна логіка, яка виконується в залежності від настання певних подій. І основна складність в тому, що в алгоритмі є купа умов типу:
✅ якщо подія 1 сталась раніше, робити це
✅ якщо подія 2 сталась раніше, робити інше
і так далі.
A нещодавно ми отримали баг від користувачів, що виникає за певних, дуже специфічних умов. Тому ні нормального опису, ні чітких кроків, ні навіть зрозумілих логів 🤷♂️
Класичний race condition баг.
Але його причину ми знайшли буквально за пів години, просто намалювавши всі процеси паралельно і стрілочками вказавши всі можливі перетини логіки. Вийшло настільки очевидно, що навіть не зрозуміло, як ми не помітили проблему на етапі аналізу.
Якщо ви думаєте – а як же краще візуалізувати? Це взагалі не важливо! В мене завжди під руокю є блокнот і ручка саме для таких випадків.
А як часто ви візуалізуєте алгоритми та процеси?