Выбрать главу

Кінець циклу розробки ПЗ

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

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

Також не випадково, що скріптові мови — Perl, Python, PHP, а зараз ще і Ruby — відіграють в житті компаній Веба 2.0 таку ж важливу роль. Перший вебмастер Sun Microsystems Хасан Шредер (Hassan Schroeder) якось назвав Perl «скотчем інтернету».

Скріптові мови (ери софтверних артефактів, що зневажаються програмістами) — це природний вибір для системних і мережевих адміністраторів, оскільки розробники створюють динамічні системи, які вимагають постійної зміни.

Користувачів потрібно сприймати як співрозробників — як, наприклад, прийнято при розробці відкритого софтвера (навіть якщо само ПЗ навряд чи буде випущено під відкритою ліцензією). Максима відкритого софтвера — «випускай релізи раніше і частіше» — тепер формулюється ще жорсткішим: «нескінченна бета-версія». Програми оновлюються щомісячно, щонеділі і навіть щодня.

Не випадково на логотипах таких проектів, як Gmail, Google Maps, Flickr, del.icio.us і т. п., слівце «beta» може висіти роками.

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

Кел Хендерсон (Cal Henderson), головний розробник Flickr, недавно розповів, що новий білд Flickr з'являється кожні півгодини. Це абсолютно інша модель розробки! І хоча поки що не всі веб-додатки розробляються з такою екстремальною швидкістю, майже у всіх цикл розробки радикально відрізняється від всього, що було в епоху ПК або клієнт-серверів. З цієї причини редактори Zdnet навіть прийшли до висновку, що Microsoft не вдасться перемогти Google: «бізнес-модель Microsoft побудована на припущенні, що користувач оновлює своє комп'ютерне оточення разів в два або три роки. Google же залежить від того, що новенького виявить користувач в своєму комп'ютерному оточенні сьогодні».

Не дивлячись на те що Microsoft вже продемонструвала неймовірну здатність вчитися і врешті-решт перевершувати своїх конкурентів, немає сумнівів, що конкуренція змусить Microsoft (і — ширше — будь-яку сучасну софтверну компанію) перетворитися на компанію абсолютно іншого типу. Дійсним компаніям Веба 2.0 буде простіше, оскільки їх не тягнуть назад старі підходи (а також супутні бізнес-моделі і джерела прибутків).

Спрощення моделі програмування

Як тільки ідея веб-сервісів стала au courant, в боротьбу вступили великі компанії, що виставили складні набори веб-сервісів, які дозволяють розробляти надійні середовища програмування для розподілених застосувань.

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

Аmazon надає два типи веб-сервісів. Перший не відступає від формалізму SOAP (Simple Object Access Protocol), тоді як другий просто здійснює передачу XML через HTTP за допомогою спрощеного підходу, відомого як REST (Representational State Transfer). Веб-сервіси першого типу використовуються для B2b-транзакцій (наприклад, між Amazon і роздрібними партнерами), але 95 відсотків всіх операцій проводиться за допомогою REST.

То ж прагнення до простоти спостерігається і у іншого «сьогодення» веб-компаній. Візьмемо Google Maps. Простий AJAX-інтерфейс був швидко «розібраний» хакерами, які потім зуміли використовувати дані, що поставлялися, для організації нових сервісів.

Картографічні веб-сервіси були доступні і раніше: від Gis-вендорів (ESRI, наприклад) і таких компаній, як Mapquest і Microsoft Mappoint. Проте Google Maps завоював світ, завдяки своїй простоті. І якщо експериментування з даними веб-сервісов від «сьогодення» вендорів вимагало укладання контракту, то Google Maps був спроектований так, що дані можна було відразу використовувати в своїх цілях — і хакери дуже скоро навчилися це робити.

Звітси можна винести декілька важливих уроків:

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

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

• проєктуйте з урахуванням можливих переробок і поліпшень. Системи, подібні вебу, RSS і AJAX, схожі тим, що особливих перешкод для їх повторного використання не існує. Велика частина корисного софтвера знаходиться у відкритих вихідниках, а якщо і немає, то є не так вже багато способів захистити свою інтелектуальну власність. Стандартна браузерная функція «подивитися вихідник» дозволяє будь-якій людині скопіювати будь-яку веб-сторінку. RSS був спроектований для того, щоб користувач міг читати контент тоді, коли це зручно йому, а не постачальникові інформації. Найуспішніші веб-сервіси — це, як правило, такі служби, які можуть бути змінені несподіваним для їх творців чином (some rights reserved).

Іновації у зборах