Чому iOS 13 стала невдалим експериментом

Досі найбільш невдалою версією iOS вважалася одинадцята. Apple довелося шість разів випускати релізи з виправленням помилок, знадобилося приблизно два місяці щоб iOS 11 навчилася пристойно поводитися. Тринадцята версія iOS побила цей рекорд: для приведення її до ладу знадобилося вісім релізів-виправлень. Один з релізів можна було б не рахувати, він стосувався HomePod - але виправлення ще не закінчені, на стапелях iOS 13.3, третя бета-версія якої доступна для тестування.

Іншими словами, Apple проводить експерименти над живими людьми, навіть не ставлячи їх до відома про це. Але це, почасти, жарт. Вісім з гаком релізів-виправлень - це не єдиний рекорд iOS 13. Найперша версія операційної системи для iPhone розроблялася кілька (від трьох до п'яти) років, після чого, рік за роком, з інтервалом у приблизно 12 місяців виходили все нові і нові її версії. Я намагався знайти хоча б ще один програмний продукт порівняний з iOS за складністю який випускався б у такому ж темпі. Дивно не те що сталося з 11-ю і 13-ю версіями. А меншою мірою, і з 7-ї, 8-ї і 10-ї. Дивують iOS 9 і iOS 12, дуже гідні - незважаючи ні на що. Сказати що в Apple нічого з цього приводу не робили б неправильно.


З чого почалися проблеми iOS

На початку 2018 року, в Apple Park відбулася нарада за підсумками феєричного дебюту iOS 11. Крейг оголосив про внесення змін до технології розробки iOS, в організацію тестування, і про введення нових правил. Розповідати про зміни 2018 року не буду, це не публічний документ. Зазначу щойно ці зміни здивували мене двічі. По-перше, в 2018 році пропонувалося організувати розробку, тестування, відстеження «багів» та інші елементи створення нових версій так, як все це було організовано років десять тому. По-друге, iOS 12 розроблена з дотриманням старих нових правил була найкращою з усіх версій iOS випущених в останні роки. У 2009 розмір вихідного коду iOS наближався до десяти мільйонів рядків. За десять років він виріс, тепер це десятки мільйонів рядків. Якщо повернення до нормальних практик призвело до такого результату, невже в останні роки вони працювали якось не так?

Розробники (в тому числі і розробники iOS), які покинули Apple в останні роки, звинувачують у всьому менеджерів, які жодного разу не програмісти і не тестувальники, їх де турбує тільки дотримання термінів і отримання ними премій за це. Взагалі-то, менеджери саме цим і повинні займатися. Про це написано в їхніх посадових інструкціях. Те що вони зобов'язані робити подобається не всім, далеко не всі з них вміють ладнати з людьми, але без менеджерів жоден серйозний програмний продукт не мав би найменших шансів вийти у світ у призначений для нього час. Терміни призначаються з міркувань стратегії, вони враховують ситуацію на ринку і плани конкурентів. І все що говорилося в 2018, було адресовано менеджерам. З якихось причин, через поспіх або щоб не тріпати зайвий раз нерви підлеглим, вони ігнорували частину правил. Це моє припущення, але ці правила довелося знову вводити в дію, я не уявляю собі що ще повинно було статися щоб це сталося.

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

Головні проблеми iOS 13

У 2018 менеджери напружилися і напружили розробників. Педантично дотримувалися всі правила і «дурні заборони», проекти комплексу своєчасно узгоджувалися, і iOS 12 виявилася напрочуд чистою. Без проблем не обійшлося, але їх було на диво мало, і, мабуть, обрадованное вище керівництво перестало пильно стежити за суворим дотриманням «статутних» правил (у керівництва інших турбот вище даху, всі старші віце-президенти Apple трудоголіки, що працюють з ранку до ночі і майже без вихідних, а з цими проблемами, на думку Крейга Федеріги, начебто вже розібралися), і вийшло завжди. Конструкція знову не витримала.

Розробку iOS 14 і iPadOS 14 щільно і ретельно контролюють Крейг Федеріги і його «лейтенанти», а Крейга, мабуть, жорстко контролює Тім Кук. Планів на iOS/iPadOS 14 громадьє, деякі з них амбітні і грандіозні - а через те що щось дуже неправильно, все це робиться болісно і на нервах. Побічний ефект - не всі цей ритм витримують. На зміну тим, хто пішов, приходять нові ентузіасти своєї справи, хтось із них готовий миритися з деяким дискомфортом, хтось ні (кадрова служба в Apple все ще одна з кращих у світі), але я єдиний у кого виникає відчуття що ситуація все більше схоже на зведення комплексу хмарочосів біля підніжжя активного вулкана, готового в будь-яку хвилину вивергнути лаву? А крім проекту з кодовою назвою Azul (iOS 14, можливо і iPadOS 14) вже формується технічне завдання на Azul + 1 (iOS 15), обидві ці версії дуже важливі для майбутнього Apple.

Як виправити проблеми iOS 13

Варіант «нічого не робити» вже точно неможливий. iOS і iPadOS - одна з головних конкурентних переваг Apple, навіть незважаючи на всі їхні «дитячі хвороби», які за два-три місяці авральної роботи усуваються, це кращі мобільні операційні системи в світі. І якість цих систем тепер у зоні особливої уваги. Напругою всіх сил, можливо, Apple вдасться випустити одну або дві чудових версії. Як би їм не було важко, всі розробники, тестувальники і менеджери з Apple не підуть, так як найбільша концентрація фанатиків Apple в світі саме серед них. Але жорстко (навіть жорстоко) контролювати виривається з-під контролю процес рік за роком, без перерви, неможливо. А напруга буде тільки наростати. Нові версії iOS і iPadOS будуть раз по раз все складніше.


Сторонні доброзичливці пропонують два варіанти полегшення ситуації. Перший - час від часу пропускати черговий термін. Заздалегідь оголосити про те що, наприклад, після iOS 15 наступна версія вийде не наступного року, а через два. Боюся, це не найкраще з можливих рішень, збиток від якого може бути дуже серйозним, навіть фатальним. Другий варіант - стратегія «тік-так» імені Intel Corporation. Версії насичені новими функціями повинні чергуватися з версіями головне завдання яких - рефакторинг, оптимізація, чистка, вилікування застарілих проблем. Нових функцій може взагалі не бути, або бути зовсім небагато (якщо це необхідно). Другий варіант міг би спрацювати, яке все macOS «без нових функцій» були дуже вдалі і залишили про себе добру пам'ять. iOS зараз в значно більш скрутному становищі ніж macOS 10.5 «Leopard» опинилася в 2007. Яке рішення приймуть в Apple, поки невідомо. Поживемо - побачимо. Поки - в Купертіно пройшла ще одна «нарада з приводу якості програмного забезпечення», обіцяють впровадити якісь нові технології - швидше за все, iOS 14 і iOS 15 будуть налагоджувати не на живих людях. А потім проведуть ще одну нараду - напевно, це теж метод.

COM_SPPAGEBUILDER_NO_ITEMS_FOUND