На одному з проектів, який ми розробляємо, об'єм коду сторонніх бібліотек — 85%. Тобто це ті бібліотеки, які потрібно встановити у проект, щоб решта 15% коду з чимось працювали. Всього таких бібліотек 93.
Оскільки ринок програмного забезпечення дуже великий і привабливий (сотні мільярдів доларів), то на ньому багато гравців і конкуренція там відверто кривава.
Гравці намагаються робити інновації, створювати нові функції у продуктах, покращення, щоб вигідно відрізнятися від своїх конкурентів. У більшості випадків усі ці покращення по суті — повна нісенітна дурниця.
Якщо зупинитися випускати нові версії, то можна швидко почати втрачати частку ринку. Адже конкурент буде продовжувати раз на місяць бурхливо імітувати інновації, випускати версії, прес-релізи, створювати інформаційні приводи, виступати з новинами на конференціях.
Програмістам доводиться адаптуватися. З виходом кожної чергової версії дивитися, чим вона відрізняється від попередньої та оновлювати свій поточний проект. І виходить, що добру частину часу програміст займається не вирішенням поставленого завдання, а оновленням бібліотек, інструментів, сервісів, а також виправленням усіх невідповідностей в інтеграції звідси випливаючих.
І це дуже швидко набридає.
Чи можна зупинитися і не оновлювати бібліотеки? Не раджу. З часом старі бібліотеки перестають підтримуватися виробниками. Спочатку неможливо зібрати продукт. А потім уже й зібрані перестають працювати. Другий аспект: на ринку затребувані спеціалісти, які вміють працювати з сучасними технологіями, а не з мовою Алгол 68 чи Delphi (пам'ятаєте, як хайпувала технологія?)
Так, програмістам добре платять. Але якщо розглядати мотивацію крім грошей, співробітники ще мотивуються успіхом: успішно виконані проекти, а на короткій дистанції — успішно закриті завдання.
І з цим також велика проблема: оскільки, якщо потрібно постійно інтегрувати нові бібліотеки, з якими немає досвіду, то дуже сильно хромає як оцінка трудовитрат, так і надійність отриманих рішень. Програміст змушений постійно вивчати особливості нових бібліотек, підлаштовуватися під них. І те, що неможливо передбачити, яким буде результат завдання з точки зору трудовитрат і надійності — це дуже сильно демотивує. Сучасний програміст рідко йде з роботи щасливим: “Я завершив свої завдання і я зробив роботу добре”.
Це й є одна з причин, через яку програмісти вигоряють дуже швидко. Ніби й платять добре, але робота повне лайно.