Горе оновленим

Сьогоднішнє життя не уявлене без складних електронних пристроїв, що допомагають людям буквально у всіх сферах життя. Програми в цих пристроях час від часу потребують оновлення, але чомусь результатом апдейту прошивки або програми часом стають не нові функції і підвищення продуктивності, а розчарування і навіть образа на розробників: гаджет ще вчора працював цілком стерпно, сьогодні працює гірше або не працює взагалі. Розбираємося з тим, чому так відбувається і чи можна з цим щось зробити.

Оновлення софту стали щоденною реальністю нашого життя і відбуваються в 95 (якщо не 99) відсотках випадків без нашої участі і навіть відома. Виявивши на екрані повідомлення про те, що «120 програм успішно оновлені», ми просто закриваємо його і майже ніколи не дивимося на список оновлень і тим більше на їх зміст і патчноути.


Оновлення без гарантій

Але далеко не завжди ці оновлення йдуть на користь нашим смартфонам. Деякі призводять до того, що пристрої просто перестають працювати за певних умов. Або працюють, але неправильно.

І якщо раніше при придбанні будь-якого гаджета в цілому було зрозуміло, який приблизний термін його роботи (наприклад, до першого сильного удару об стіну), то тепер чудово працюючий апарат може стати високотехнологічною цеглою всього лише після чергового системного оновлення.

У першу чергу від невдалих оновлень страждають користувачі смартфонів і мультимедійних пристроїв.

В окремих випадках телефони Apple просто перестають заряджатися після оновлення, оскільки нова версія софту більше не бачить бездротовий зарядний пристрій. Іноді впоратися з цим багом допомагає перезавантаження телефону, але не завжди. Причому мова йде про штатні зарядні пристрої, підтримка і робота яких повинна бути забезпечена виробником.

За останні роки ціла серія неприємностей спіткала володарів навушників з шумоподавленням: після оновлення ця функція порушувалася або переставала працювати взагалі. Відносно недавно це сталося з пристроями компанії Apple.

Оновлення прошивки AirPods 2 і AirPods Pro було покликане поліпшити роботу з відтворення низькочастотних звуків, але попутно воно зламало режим шумоподавлення на цих же частотах. Цей збій досі не усунутий, і з досвіду відомо, що на його усунення можуть піти місяці.


Роком раніше подібний глюк виявився у навушників wh-1000XM виробництва Sony. Після оновлення прошивки до версії 4.1.1 шумоподавлення переставало працювати так само ефективно, як раніше.

При цьому зазвичай у користувачів немає можливості самостійно відкотити версію прошивки, щоб відновити поламані при оновленні функції пристрою. А компанія-розробник, замість введення можливості відкату оновлення або випуску відповідного патчу зазвичай відсилає всіх незадоволених у сервісні центри.

Ті деякі власники навушників Sony, хто самостійно подужали відкат прошивки до старої версії 2.0, робили це за допомогою вельми хитрих і складних маніпуляцій за допомогою стороннього софта, що супроводжуються втратою гарантії на пристрій.

Ваша Tesla не відповідає

У небезпечній залежності від бездоганної роботи софта виявляються і безпілотні автомобілі. Торік фахівці з кібербезпеки Tesla розкрили вразливість системи, що дозволяє зламати систему управління або обдурити її і змусити автомобіль виїхати на зустрічну смугу.

Але іноді для поломки автопілота зовсім не обов'язково йти на хитрощі та обмани, досить просто оновити його свіжою прошивкою.

Інший випадок, швидше, можна назвати курйозом - після початку оновлення прошивки NIO ES8 електромобіль просто зупинився посеред дороги, заблокувавши двері і вікна і не даючи пасажирам вийти або щось зробити.

Звичайно, не можна назвати розумним рішення власника машини запустити оновлення ПЗ на повному ходу прямо посеред дороги, але сам факт того, що це виявилося можливо, є помилкою. Тим більше, що встановлення оновлення потребує перезавантаження системи.


Трапляються і менш нешкідливі курйози - наприклад, у одного з власників Tesla автопілот був вимкнений віддалено. Цей чоловік купив вживаний автомобіль з автопілотом, але після системного оновлення той перестав працювати. У компанії вирішили, що оновлена функція автопілота покладена тільки тим, хто купував її на своє ім'я і числиться в базі.

Автопілот Tesla постійно вдосконалюється, оскільки експлуатація електромобіля виявляє все нові ситуації, з якими його система не справляється. Так, з'ясувалося, що її досить легко обдурити за допомогою невірної дорожньої розмітки і навіть портативного проектора, який проектує таку розмітку або зображення людини на дорозі.

Оновлення прошивки Tesla відбуваються регулярно, але часом через них виникають нові потенційно аварійні ситуації. Так, у листопаді 2019 року вийшло оновлення, що дозволяє машині розпізнавати дорожні конуси і дрібні перешкоди на дорозі. Практично відразу це призвело до казусу - зафіксований випадок, коли система прийняла за дорожній конус дитину в помаранчевій футболці.

Компанія Ілона Маска не втомлюється повторювати, що автопілот лише допомагає водієві, а не робить за нього всю роботу, тому водій повинен постійно тримати руки на кермі і бути готовим будь-якої миті втрутитися в ситуацію на дорозі. Тому, формально кажучи, автомобілі Tesla не їздять під керуванням повноцінного автопілота - швидше, це такий відкритий бета-тест системи за участю водіїв-добровольців.

Тим не менш, все більше людей довіряють автопілоту своє життя, втрачаючи пильність і концентрацію уваги на дорозі. При такому підході, коли виникне критична ситуація і водієві треба буде взяти керування на себе, у людини за кермом залишиться менше можливостей відреагувати.


Оновлення неминуче

Зростання кількості збоїв, пов'язаних з відмовами софту, має логічне пояснення. У міру ускладнення ПЗ і розширення його функцій виникає все більше комбінацій вхідних параметрів і станів системи, що впливають на результати її роботи. Це число в сучасних програмах свідомо перевищує розумні значення.

З технічної точки зору, для написання абсолютно коректної програми або прошивки необхідно передбачити і протестувати всі можливі ситуації, з якими вони можуть зіткнутися у своїй роботі. Зрозуміло, що на це пішла б економічно невиправдана кількість зусиль і часу. Жоден виробник ПЗ не може дозволити собі цього.

В реальності компанії змушені постійно лавірувати між темпами розробки і надійністю нової системи. Тому на стадії написання коду виправляються тільки ті помилки, які були виявлені відділом тестування. Готовий продукт випускається на ринок, і надалі багрепорти оформляються вже за скаргами користувачів і виправляються в міру надходження.

Крім того, виробники намагаються боротися з помилками за допомогою проектування. У принципі, якщо архітектуру та функції програми опрацювати заздалегідь і діяти строго за наміченим планом, число вразливостей має значно знизиться.

Але на практиці такий підхід реалізується рідко - у міру написання та експлуатації софту список вимог і очікувань від нього теж змінюється, змушуючи розробників додавати нові функції «на льоту». А компанії, що діють строго відповідно до затвердженого три роки тому плану, ризикують випустити нехай і надійний, але свідомо застарілий софт, програвши тим, хто пише його не настільки ґрунтовно і старанно, але зате з урахуванням потреб ринку.


Іноді виправлення вразливостей, що виникають після чергового оновлення, займає непростительно багато часу. Користувачі страждають, пишуть скарги і облагають підтримку, а патчу на прошивку все немає і немає. Здавалося б, у такій ситуації найпростіше взяти і відкотити недопрацьоване оновлення - часом навіть буває дивно, що компанії не вдаються до такого простого рішення.

Справа, однак, у тому, що баги в оновленнях дають про себе знати, як правило, далеко не у всіх користувачів. Але враховуючи десятки або навіть сотні тисяч випущених пристроїв, неполадки, що виникають навіть у 0,1 відсотка клієнтів, здатні призвести до створення сильного негативного фону.

Але відкотити оновлення вже не можна. Адже серед інших 99,9 відсотка клієнтів є ті, хто вже почав користуватися новими функціями, і якщо раптом позбавити їх цього, репутація компанії виявиться підірвана ще більше.

Нарешті, багато недосконалостей патчів, у тому числі дуже серйозні, дають про себе знати за вкрай специфічних обставин, і врахувати або навіть повторити їх в лабораторії часом буває непросто. Тому, лаючи криворуких програмістів, не забувайте: ми всі беремо участь у великому бета-тесті нашого високотехнологічного світу, і іншого способу зробити його надійнішим не існує.

COM_SPPAGEBUILDER_NO_ITEMS_FOUND