«Команда перестала сперечатися — і це погана новина»: анатомія соціотехнічного конфлікту
Якщо продуктова та технічна команди раптом припинили сперечатися, не поспішайте радіти. Можливо, вони справді навчилися домовлятися, але є й інший варіант: суперечки просто втратили сенс.
Я кілька разів бачив саме другий сценарій. Спочатку інженери приходять із застереженнями, сперечаються про технічний борг, архітектуру чи строки, потім бачать, що результат від цього не змінюється, і поступово замовкають. Ззовні все навіть стає краще: менше суперечок, швидше планування, простіше ухвалювати рішення, але проблема в тому, що разом із конфліктом із системи може зникнути важливий зворотний зв’язок.
Давайте розберемо детальніше саме цей сценарій.
Що є конфліктом?
У побутовому розумінні конфлікт зазвичай асоціюється із суперечкою, протистоянням чи навіть кризою відносин. Ми звикли думати, що це аномалія, якої треба уникати, але в будь-якій складній системі, де різні сторони роблять спільну справу, конфлікт — природна реакція на те, що учасники бачать спільну ціль під різними кутами.
Мені тут близький погляд Томаса Шеллінга зі «Стратегії конфлікту». Він працює із ситуаціями, де сторони не є ані чистими союзниками, ані чистими противниками: частина їхніх інтересів збігається, частина — ні, але для досягнення власних цілей вони все одно залежать одна від одної. Взаємодія продуктової та технічної команд дуже на це схожа.
Якщо перенести цю логіку на продуктову розробку, я бачу щонайменше три місця, де інтереси регулярно розходяться:
- Швидкість проти стабільності. Бізнесу важливо отримати результат раніше, а інженерам — не зробити наступну зміну втричі дорожчою. Це, зокрема, класичний конфлікт навколо технічного боргу, про природу якого я писав у попередній статті Технічний борг: керувати, а не перемагати.
- Тактика проти стратегії. Гіпотезу іноді справді треба перевірити за тиждень, хоча технічно правильне рішення потребує місяця.
- Межі автономії. Хто вирішує, що саме ми будуємо, а хто — як це буде реалізовано.
Самі по собі ці суперечності не означають, що в компанії щось зламано. Навпаки, вони цілком природні, причому на практиці ці три суперечності рідко існують окремо.
Припустимо, продукту потрібно вийти з новою функціональністю за два тижні. Спочатку ми сперечаємося про швидкість і стабільність: чи можемо дозволити собі технічний компроміс заради строку. Потім — про тактику і стратегію: це справді тимчасове рішення для перевірки гіпотези чи код, з яким нам доведеться жити наступні три роки?
А закінчитися все може суперечкою про автономію: продуктова сторона пропонує конкретний технічний шлях, бо він здається найшвидшим, а інженери у відповідь починають сперечатися вже не про ризик рішення, а про те, хто взагалі має право його приймати.
Одна продуктова задача таким чином проходить одразу через усі три площини. І якщо для кожної з них немає хоча б приблизно зрозумілих правил, командам доводиться щоразу домовлятися не тільки про саму задачу, а й про те, як вони взагалі будуть домовлятися.
Де починається проблема
Проблеми починаються, коли сторони сприймають цей торг як гру з нульовою сумою: якщо інженери отримали час на рефакторинг — бізнес втратив фічу, якщо бізнес продавив реліз — програли інженери.
На короткій дистанції така логіка навіть працює: можна відкласти рефакторинг, швидко випустити потрібну функціональність і повернутися до проблеми пізніше. Я сам багато разів приймав такі рішення, і далеко не завжди вони були помилковими, але сама проблема починається зі слова «пізніше».
Якщо одна сторона раз за разом отримує короткостроковий виграш за рахунок іншої, змінюється не конкретне рішення, а поведінка людей у наступних переговорах. У продуктовій розробці ми не домовляємося один раз: ті самі люди повертаються до переговорів наступного спринту, потім ще раз, і ще. Тому важливо не тільки те, хто виграв конкретну суперечку — важливо, що ця суперечка зробила з наступною. Якщо мої аргументи десять разів поспіль ні на що не вплинули, на одинадцятий я, найімовірніше, просто не витрачатиму на них час.
Чому ми приречені на конфлікт: системна перспектива
Я сам колись два роки працював у команді, яка намагалася бути максимально «зручною» для бізнесу. Ми уникали суперечок, посміхалися на демо й пишалися своєю безконфліктністю.
Результат? Платформа поступово перестала розвиватися технічно, а найкращі сеньйори тихо звільнилися.
Тоді я вперше серйозно задумався, чи був наш «мир» ознакою здорової взаємодії. Причому це не сталося в один момент — ніхто не зібрав команду й не сказав: «Відсьогодні ми більше не сперечаємося з бізнесом». Просто кожна наступна дискусія ставала коротшою. Десь ми погоджувалися, бо дедлайн справді був важливим, десь вирішували повернутися до проблеми наступного спринту, а десь уже просто не хотілося витрачати годину на розмову, результат якої всі могли передбачити заздалегідь.
Саме тому я довго не сприймав це як проблему. Зсередини така деградація не дуже схожа на деградацію — вона більше схожа на те, що команда нарешті перестала сперечатися через кожну дрібницю. Щотижневі компроміси накопичуються — кожен окремо може бути цілком виправданим, але разом вони поступово змінюють поведінку системи.
І ось тут мені вже цікавіше дивитися не на окремих людей, а на систему.
У «Thinking in Systems» Донелла Медоуз показує, наскільки сильно поведінка системи залежить від її структури: накопичень, потоків, затримок і зворотних зв’язків. Якщо подивитися таким чином на взаємодію продуктової та технічної команд, виходить цікава картина.
Петля стабілізації
У найпростішому варіанті система сама починає чинити опір накопиченим проблемам:
Технічний борг зростає → зміни стають дорожчими → проблеми вже неможливо ігнорувати → з’являється час на стабілізацію
Нічого магічного, у якийсь момент вартість бездіяльності просто стає більшою за вартість виправлення. Але поруч працює інша петля:
Потрібен результат швидше → погоджуємося на компроміс → випускаємо швидше → цей темп стає новим очікуванням → наступний результат теж потрібен швидше
І тут важливий момент: ніхто не зобов’язаний приймати очевидно дурні рішення. Кожен окремий компроміс може бути цілком виправданим — саме тому ця історія небезпечна. Проблема стає видимою тільки після того, як таких рішень накопичилося достатньо.
Щоб перевірити цю логіку не лише на рівні текстового міркування, я спробував формалізувати її у невеликій симуляції. Модель на GitHub поєднує System Dynamics з агентною моделлю інженера та продакт-менеджера: технічний борг, тиск делівері, реакція на інженерні сигнали та готовність команди ці сигнали подавати впливають одне на одного через петлі зворотного зв’язку й затримки.
Центральне питання моделі просте: чи може організація виглядати дедалі більш узгодженою саме в той момент, коли її технічний ризик зростає? У симуляції можна побачити, як технічний ризик та видимий конфлікт починають розходитися, а також перевірити, як на цю динаміку впливають не лише поведінка сторін, а й структурні правила на кшталт заздалегідь виділеної capacity на стабілізацію, бюджетом помилок та чітких меж технічної автономії.
А потім команда замовкає
Найцікавіше відбувається далі. Інженери кілька разів піднімають одну й ту саму проблему, а рішення щоразу відкладається — через якийсь час люди роблять цілком раціональний висновок: повторювати аргумент немає сенсу, і сигналів стає менше.
Для продуктової сторони картина при цьому покращується: раніше на плануванні постійно сперечалися про архітектуру, технічний борг і ризики, а тепер перестали, планування проходить швидше, roadmap рухається.
Тільки самі ризики нікуди не поділися — зникла лише інформація про них, і це вже значно небезпечніше за сам конфлікт.
Я не хочу сказати, що чим більше суперечок, тим здоровіша команда — це очевидно не так. Але є принципова різниця між «нам нема про що сперечатися» і «ми більше не бачимо сенсу сперечатися». Ззовні ці два стани можуть виглядати однаково.
Для мене це і є головний висновок: відсутність незгоди сама по собі нічого не говорить про здоров’я системи. Іноді це просто означає, що один із каналів зворотного зв’язку вже не працює.
І ще одна проблема — час
Технічний компроміс ми робимо сьогодні, а платити за нього можемо почати через пів року, і за цей час контекст губиться. Коли проста зміна раптом починає займати три тижні замість трьох днів, продуктова команда бачить проблему сьогодні, інженери, у свою чергу, можуть бачити її причину в рішеннях, які приймалися кілька кварталів тому.
Звідси й класичне:
— «Чому ви не попередили раніше?»
— «Ми попереджали».
І обидві сторони можуть говорити абсолютно щиро — тут дуже легко перейти до взаємних звинувачень. Продуктова сторона бачить, що команда стала повільнішою, технічна — що нарешті проявилася ціна старих компромісів. Проблема в тому, що між причиною і наслідком минуло достатньо часу, щоб вони вже не виглядали частинами одного рішення — і наступного разу домовлятися буде ще складніше.
Що з цим робити?
Прибрати конфлікт не вийде, та й не потрібно, у продуктової та технічної сторін різні зони відповідальності, різний контекст і різний горизонт планування — вони будуть дивитися на одне рішення по-різному. Питання в іншому: як зробити так, щоб ці суперечності не перетворювалися ані на постійну війну, ані на мовчання однієї зі сторін?
Для цього самого заклику «давайте краще комунікувати» недостатньо. Якщо щоразу з нуля сперечатися про час на стабілізацію, допустимий технічний ризик або про те, хто має останнє слово в способі реалізації, ми просто відтворюватимемо той самий конфлікт у кожному наступному спринті.
Потрібні заздалегідь зрозумілі орієнтири для тих самих трьох площин, з яких ми починали: швидкості й стабільності, тактики й стратегії, меж автономії. Не універсальна відповідь на всі суперечки, а швидше точки, від яких сторони можуть відштовхнутися, коли їхні інтереси знову розійдуться.
Скільки технічного ризику ми готові взяти заради швидкості? За яким сигналом перестаємо експериментувати й повертаємося до стабілізації? Де закінчується право продуктової сторони визначати результат і починається право технічної визначати спосіб його реалізації?
У термінах Шеллінга тут стає цікаво говорити про фокальні точки — орієнтири, навколо яких сторони можуть координуватися, не починаючи кожні переговори з чистого аркуша. Саме їх я й хочу розібрати в наступній статті.
40 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарівпродуктова сторона то може пропонувати (припустимо хтось там з тех.бекграундом або чатжпт запитав) але взагалі-то технічні рішення пропонуються і приймаються технічною командою
зазвичай пропонується кілька варіантів, з поясненням продактам всіх ризиків, за і проти
і продакт під остаточним рішенням підписується (якраз щоб в разі чого можна було це пригадати через кілька місяців)
а якщо продакти раптом почали «рулити» технарями в прийнятті тех.рішеннь, то тут дійсно вже пізно дискутуваати ))
Дякую за коментар. Тут більше питання про те, де закінчуються повноваження одних і починаються повноваження інших, без балансу буде рівно так, як Ви і описали. Я в наступній статті планую підсвітити деякі варіанти.
А давай я зроблю припущення, що всі ссуться за свою посаду, і те що їх завтра оптимізують...
Людям стало не цікаво та лячно вступати в дискусію, бо з приходом ШІ, твою версію чи версію твого опонента може перевірити система (якщо ви не військове обладнення робите), і пояснити хто з вас більше неправий і чому. Ось і питання ? А навіщо ?...
Якщо раніше, можна було казати — йди гугли документацію, то зараз — просто «ШІ, будь ласка оціни цю статтю, і скажи чи варто залишити цього співробітника, чи дешевше найняти йому заміну, а він пише просто щоб здаватися розумінішим чим є ? » .... Ось вам і відповідь. Знання та досвід, мінуснулись.... Ви ж в курсі, що керівник, сам може попросити ваш репозиторій того, що ви написали за місяць, і попросити оцінити вашу продуктивність після того як... (далі вставте якусь обставину) і оцінити чи не пора з вами прощатися.
PS Я був тою токсичною людиною, що хотів оптимізовувати, що казав, що це не правильно коли зображення важать по Мб... що давайте робити добре. Бізнес сказав — іди на***, не командуй, тебе наймали писати формочки, і виконувати ТЗ, а не зайобувати клієнта своїми «покращеннями», за які не платили.
Дякую за коментар. Моя особиста позиція з приводу АІ приблизно наступна: якщо тебе можна замінити AI то тебе можна замінити АІ, як би дивно це не звучало. Якщо ж розглядати підхід «будеш вискакувати — заміним аішкою» то такий підхід вже не здоровий і він акурат лягає в парадигму того, що я намагався розглянути.
Ви так впевнено це заявляєте, бо тримаєте якісь важливі доступи, паролі чи ви родич керівництва компанії ? Готові сказати, що ваші знання та навички не замінить людина яка буде обходитись компанії на 1000$ дешевше ?
На даному етапі розвитку АІ я можу це з впевненістю заявляти
Зараз ШІ лякують, а колись лякали і казали «а ви знаєте, там за забором черга з китайців на ваше місце». Не знаю чому саме китайці, але в англомовному ком’юніті є такий жарт — щоб ти не робив, завжди знайдеться азіат який робить це краще чим ти.
Українців після ковіду, але ще до буму АІ масово звільняли через Південну Америку (ЛАТАМ) на великих аутсорс-галерах. Через це тоді наші так швидко почали відкривати свої офіси та пробувати боротись з їхнім ринком.
Той самий часовий пояс, що і в США, вдвічі менші рейти, якість роботи80-90% від українських «нормальних» спеціалістів, хороша англійська без українського брайтон-біч акценту (фьорст, інсьорт).
А війну так можна розібрати? 🤔
Все можна розібрати, питання лише в кількості ресурсів, які на це потрібно виділити.
Або з’являється нова команда, яка не проти писати черговий одноразовий код ¯\_(ツ)_/¯
Дякую за коментар. В статті я апелюю більше до «дорослих» компаній, якщо спеціалістів можна замінити за тиждень то тут ця концепція працювати не буде звісно. Сама ідея «одноразового коду» нівелює конфлікт, бо сперечатись нема про що.
Мені здається, що «дорослість» компанії проявляється (в тому числі) у вмінні всіх йти на компроміс, тому до «мовчанки» і не доходить
PS Не маю якоїсь репрезентативної вибірки, але таке суб’єктивне спостереження щодо крайнощів: і в ситуаціях коли деви не йшли на компроміс і коли менеджери не йшли на компроміс з компанії завжди чомусь йшли деви ))
Як і в будь-якому живому «організмі» бувають відхилення, я хотів розглянути саме крайнощі, також рекомендую потицяти модель з github, там є не тільки граничні стани, а і нормальний flow.
проблема надуманная, не устраивают бесхребетные — не надо их нанимать
Молчание — не признак бесхребетности, а нежелание как попугай повторять одно и то же будучи уверенным, что толку не будет.
молчание — не признак, а следствие
Саме так, важливо знайти саме причину цього мовчання. Знов же, ми зараз говоримо не про «безхребетних», а про здорову атмосферу, яка деградувала з часом, або вже існуючу проблемну ситуацію, в якій потрібно знайти важіль впливу для виправлення її.
ну так не бывает, в айти обычно отрицательный отбор чтобы легче было управлять массой. вот масса и молчит, даже если был кто-то кто вначале говорил, со временем он замолчит чтобы не выделять и не потерять работу из-за того что он неудобный
Просто додано ще один рівень абстракції з тими самими проблемами але «збоку»
Цікаву тему підняли в статті, вже не першу — вона про перевірку гіпотези на продакшені, що для розробників та QA, це саме те — за що звільняють роботи, в кращому випадку сурова догана.
Та бізнес платить грощі, тому має фізичну можливість давити і виникає бізнес стратегія Microsoft, тобто один загальнмй тех депт, сині екрани смерті під час презентації — що обрушує курс акцій і продажі і т.д. Та сама ідея : «Роль кібрбезпеки дещо перебільшена» і тому подібне, TTM вперед техдепту.
В інших галузях науки та техніки, часто перед НДДКР роблять математичне моделювання. Коли від початку ясно, що реалні досліди по старту нової ракети або модифікацій будуть коштувати 2 мільярда долларів і негативний досвід в стилі Starship або перших пусків Фон Брауна та Клрольова — занадто дорога забава, а тим більше коли йдеться скажімо про атомні боєголовки, то до реальних іспитів роблять детальні математичні моделі та прорахунки і просліджують, як теоретично буде вести себе вироб чи середа, використовують теорію верогідності з математичною статистикою і т.д..
Як яскравий приклад другого підходу — программа Буран-Енергія, яка відпрацювала включно з софтом автопілота без аварій з першого разу, при чому з паруванням внештатної швидкості при посадці в автоматичному режимі. (Запуск був єдиним по економічним причинам — краху СРСР, ракеєтоносій Зеніт зроблений як переробка прискорювача першого ступеню Енергії, далі експлуатувався комерційно, до економічної невдачі Ірідіум та Морського старту, що став не потрібним — геополітика тут теж має не останнє місце як і Фінансова криза 2008).
Чому другого підходу мало в розробці software і перевага віддається методу проб та помилок, коли йдеться про маркетинг та ринок ?
Напевно тут утворилась прогалина, швидше за усе через або брак інформації — або через інформаційний шум який не дає аналізувати данні, або просто продавців та продукт менеджмент тільки засвоює математичне моделювання і прийняття рішень на основі данних.
Однак статистика CMM каже часто — це банальна незрілість 80% організацій. Робочі команди ведуть розробку в тому числі збір вимог — хаотично та без системно. Проектуванню систем часто не приділяють потрібної уваги. Відповідно результат просто не грантується, усе йде у випадковість може вийде — може ні, а на виході славетний Big Ball of Mud en.wikipedia.org/...hetti_code#big-ball-o-mud
P.S. Щодо конфліктів інтересів, то вірно підмічено — якщо припинились суперечки, зазвичай діло стало. Або це вже підьтримка старої стстеми яка «працює не чіпай» та нема про що дискутувати. Або сумма суперечок і не ясність цілей досягла апогею і призвила до провалу проекту, оскільки не зрозумілих або взаємо суперечливих цілей по сукупності виявлених проблем досягнути виявилось неможливо.
Дякую за коментар. Ви, на мою думку, дуже точно вловили суть статті.
Єдине, з чим я, мабуть, не до кінця погоджуся, це з цим твердженням:
Але в наступному абзаці ви якраз описали те, до чого я хотів апелювати.
Щодо моделювання — тут абсолютно погоджуюся. Власне, щоб перевірити свої припущення, я і створив модель взаємодії.
Дякую, багато з чим згоден
Дякую за коментар, радий, що відгукнулось.
Лол. Ні.
Пригадайте школу.
Які були конфлікти?
Наприклад з гопарями?
Які сумісні цілі під разними кутами?
Скоріш, було так:
1. Гопарю не подовався якийсь учень
2. Гопарь знав, що співрозмірної відповіді не буде
3. Гопарь за рахунок цього самостверджувався
У дорослому житті змінилися декорації, але не принципи.
«Заздрість», «не сподобалася морда», «можливість самоствердитися за рахунок іншного», «відсутність адекватної відповіді» (читай — розбив табло або почав гризню).
І це лише так. По верхах.
Лол )
Ви навіть не уявляєте як багато причин для конфліктів, і дійсно пов’язані з роботою — біля 5%.
Нульова сумма — не гірший варіант.
Частіше в компаніях і суспільстві під час конфліктів вже мінусова сумма,
коли програють усі і значно, але деякі від цього виграють, але порівняно незначно.
Прикладів мільйон, достатньо, якщо ви в Україні, навколо озірнутися.
Це ви скажіть головному HR, якої не понравилася морда молодої співробітниці.
Чи розробнику, в адрес котрого на якомусь корпоративи декілька місяців/років назад інший розробник невдало пошуткував, і тепер в них хейтінг і холодна війна.
З гопарем загальні причини конфлікту інтересів очевидні, домінування відповідно вищій соціальний статус — на який істинктивно зреагує жіноча стать, умовні відмінниці потечуть. Це конфлікт, який не має мирних рішень Win-Win, тут тільки на бокс чи на боротьбу йти і в нокаут під счелепу, або бросок та на больвий. Ну або до дівчини доторкнешся десь вже на прикинці другого курсу.
В софтварній команді — таке звісно існує, та працює вже не так. На роботу ходять заробляти гроші і якщо від тебе залижить будуть вони в інших або ні, тебе слухають — навіть якщо ти низкорослий шуплий очкарик ботан типу Білла Гейтца.
Якщо ти рядовий піхотний Вася, усім на тебе з Ейфілевої вежі — тобі ставлять задачу і часові рамки, та твоєї думки ніхто і не питає і права слова в тебе нема, ось тобі тікети і в поставлені тобі строки — вони мають бути закриті (в сініорів строки вже запитують). Аналогічний Win-Loose, рішення без співбесіди в іншу компанію або проект на вищу посаду чи +500 не існує. Конфлікт інтересів немає не фізичного рішення. Рівень вище — той же путлер, мирних рішень між західним та російским капіталом немає, доки не буде рішучих змін які зміняиь ксі пріорітети.
Типовий приклад галери, але, на мою думку, це більше притаманне всіляким аутсорсам і аутстафам, де розробник це юніт, а не спецаліст.
Дякую за коментар. Тут важливо розділити персональний і професійний конфлікти. Одне не виключає іншого, але конфлікт особистостей — це вже інший різновид взаємодії й, мабуть, тема для окремої статті.
Не виключено, що професійний конфлікт може породжувати й особистий. Саме тому в компаніях мають бути механізми, які не дають таким історіям розростатися: увага безпосереднього керівника, People Partner тощо.
Я нещодавно для себе взяв за правило.
Якщо автор у коментарях відповідає за допомогою ШІ — читати цього автора більше не цікаво і я додаю його у бан-ліст.
Чому ви вирішили, що я відповідаю за допомогою ші?)
+100500
все так. і навіть якщо під час конфлікту якась сторона побачила безглуздість ситуації та зупинилась, інша ж не зупиниться, а навпаки інтерпретує це як ознаку, що ось ще трішечки наваляти і буде очикувана перемога (і трофей у вигляді дірки від бубліка).
тому лояльність у конфліктах — це коли вже тисячі разів бачив один й теж самий пантерн і просто не хочеться торкатися того гівна
Андрію, як же я вас підтримую! І сам на одному проекті вже отримав статус «міського божевільного», через ті самі думки! Я тут з технічного боку виступаю, лід мультипрофільної команди. Цей діалог/конфлікт/суперечка — це те що має бути, і має залишатися! Люди мають хотіти зробити краще, а не просто бути лояльними, та ґвинтиками в проекті на якому перебувають.
Дякую за коментар. Власне, те, що ви описали, — це і є здорова атмосфера: діалог має залишатися живим. Саме про це я й намагався розповісти.
Люди не мають хотіти зробити краще. Іноді вони поставлені в такі умови, що перестають вірити в можливість покращення, приймають реальність і просто мовчки працюють суто заради грошей.
Проактивність завжди затребувана, проте неналагоджені та кепські процеси вженуть в депресію будь кого.
От абсолютно згоден, якщо б всі були пасивними то звідки б брались сіньйори/ліди/хеди і далі за списком?
лет5-7 назад тут была тема как типчик с годом опыта стал синьором в софтсерве
2 вараинта любо выбирается самый любимый программист менеджера, либо нанимается внешний чел, который решил что пора быть лидом. никакого посвящения здесь нет
та тоже кого попало набирают, я недавно пересекался с челом хедом, «вчерашний» фулстек с 5 годами опыта... он общается как быдло, еще и через слово типа-типа-типа
и вот отвечая на вопрос откуда бы брались они все: лучшие из худших есть всегда
Виглядає, як дуже поганий досвід, якщо чесно
до массового прихода пицценосцев было по другому, но я же за текущее положение вещей говорю. можно пытаться искать в людях хорошее, но я объективно сравниваю как было и что стало. раньше индусы на проекте это был для многих ред флаг, сейчас средний индус более выгодный сотрудник чем средний украинец. вот уж где плохой опыт