Читать книгу Спроси разработчика. Как стать лидером рынка с помощью создания собственного ПО - Джефф Лоусон - Страница 8
Часть I
Почему разработчики сейчас важны больше, чем когда-либо
Глава 1
Создать или умереть
Как мыслят разработчики программного обеспечения
ОглавлениеЧтобы действительно преуспеть в цифровую эру – как цифровой революционер или тот, кто защищается от цифрового подрыва, – нужно мыслить как разработчик программного обеспечения. Теперь к этой категории относятся не только те, кто пишет программы, но и те, кто, столкнувшись с проблемой, задает вопрос: «Как программное обеспечение может решить эту проблему?» Иными словами, это образ мышления, а не просто набор навыков.
Разработчики – это те, кто видит мир через программное обеспечение. Они бесконечно оптимистичны, поскольку верят, что любая проблема бизнеса будет решена, стоит только перенести ее в сферу программного обеспечения. Перенос все большего и большего числа мировых проблем в сферу программного обеспечения – именно то, чем специалисты по высоким технологиям занимались последние 70 лет.
Если вдуматься, то компьютер – это машина, выполняющая математические вычисления, с набором подключенных датчиков (входов) и исполнительных механизмов (выходов). Датчики и исполнительные механизмы – единственный способ узнать, что происходит внутри машины, и на историю компьютеров вполне можно смотреть как на непрерывное усложнение датчиков и исполнительных механизмов, которые позволяют нам «вычислять» все в большем и большем масштабе. Первые два десятилетия вычислительной техники, 1950-е и 1960-е гг., были связаны с математическими вычислениями, и мы применяли перфокарты для ввода и вывода цифровых данных. Программы обрабатывали именно эти цифровые данные. Компьютеры использовались практически только для расчета траекторий ракет и государственного долга. В 1960 г. в мире существовало всего несколько тысяч компьютеров. Но после усовершенствования датчиков и исполнительных механизмов появилась возможность вводить в компьютеры текст и применять программное обеспечение к текстовым задачам. В следующие два десятилетия обрабатывались уже тексты, а не только числовые данные. Появление клавиатур и принтеров в 1970-е и 1980-е гг. открыло дорогу текстовым редакторам, настольным издательским системам и электронным таблицам, и персональный компьютер стал атрибутом каждого рабочего места. Прогресс в сфере датчиков и исполнительных механизмов затем позволил оцифровывать аудио- и видеоинформацию. Компьютеры получили сложные графические и звуковые карты, а 1990-е и 2000-е стали годами мультимедиа – они принесли нам звуковые файлы в формате MP3, компьютерные игры и возможность реализации спецэффектов в таких фильмах, как «Парк юрского периода». Сегодня, имея в кармане постоянно включенные смартфоны, мы несем с собой массу датчиков и исполнительных механизмов, постоянно подключенных к интернету, что превращает весь остальной мир в сферу программного обеспечения. Таким образом, 2010-е и 2020-е гг. связаны с вычислениями практически всего сущего. Именно это сделало последнее десятилетие (и сделает следующее десятилетие) таким захватывающим. Набор проблем, к которым можно применить программный образ мышления, растет взрывными темпами.
И дело не в самом программном обеспечении – разработчиками движет быстрота адаптации ПО. Цикл начинается с выслушивания клиентов, быстрого предложения первоначального решения их проблем, и затем идет получение откликов клиентов и непрерывная доработка и улучшение продукта. Разработчики могут применять этот процесс для решения все большего числа мировых проблем. Мне особенно приятно наблюдать за таким процессом в традиционно аппаратных сферах, потому что там, когда разработчик применяет свой подход, можно увидеть физическую реализацию эволюции в пластике, металле и стекле.
Вспомните, что компания Apple сделала с пультом дистанционного управления телевизора. До того как Apple выпустила медиаплеер Apple TV, приставки снабжались пультом дистанционного управления с чуть ли не сотней кнопок. Некоторые компании даже хвастались в рекламе количеством кнопок. Рядом с каждой кнопкой была надпись «Громкость больше/меньше», «Номер канала больше/меньше», «Избранное», «Картинка в картинке», «Источник сигнала», «Меню» и т. д. Первый пульт Apple TV имел всего семь кнопок. Почему? Потому что все функции медиаплеера Apple TV были заложены в программное обеспечение данного устройства. Это давало Apple возможность учиться у клиентов и постоянно дополнять программное обеспечение новыми функциями. Разработчики не могут улучшать то, что отлито в пластике и металле, – после выпуска изделия с завода его функциональность остается неизменной. Так что решение убрать кнопки с пульта не только эстетично, но и отражает стратегию развития высоких технологий. Когда я впервые увидел минималистичный пульт Apple TV, то подумал: «О, это уже игра на уровне программного обеспечения».
Тот же образ мышления Стив Джобс применил при разработке iPhone в 2007 г. Он высмеивал телефоны с физической клавиатурой, поскольку, по его замечанию, такая клавиатура всегда была на месте независимо от того, нужна она или нет. Такую клавиатуру нельзя обновить, на ней невозможно изменить язык, и, конечно, ее нельзя убрать, когда она не нужна. Физическая клавиатура и зашитый на заводе язык навечно оставались с устройством. Клавиатура iPhone – это программное обеспечение. Она исчезает, когда не нужна, т. е. ее не видно большую часть времени. При необходимости ее можно переключить на эмодзи или другой язык, если вы полиглот. Это означает, что Apple может поставлять одно устройство во все страны мира. Нужный язык – это просто программное обеспечение, а не то, что зашивается только на заводе-изготовителе.
Другой пример – считыватель кредитных карт Square. Традиционные устройства для работы с кредитными картами – солидные конструкции с экраном как у калькулятора для научных расчетов из 1990-х гг. и клавиатурой. Когда появляется новый метод оплаты или экраны с разрешением более чем в сотню пикселей, то подобное устройство приходится менять. Ведь все, что мог делать традиционный считыватель, зашивалось на заводе в пластик и кремний. Считыватель Square – это всего лишь небольшой интерфейс, необходимый для связи физического мира (считывателя магнитной полосы) с миром программного обеспечения. Все остальное делает программное обеспечение, которое компания Square может обновлять еженедельно. Программное обеспечение становится совершеннее с каждой версией – оно получает новые функции, а ошибки в нем исправляются. Считыватель Square может улучшаться и обучаться так же быстро, как и программные средства, потому что его разработчики вложили в программное обеспечение абсолютно все, оставив только минимальную пластиковую конструкцию, необходимую для выполнения работы. С приходом бесконтактных платежей исчезает все большее число физических элементов. Чем меньше вокруг аппаратных средств, тем больше делают программы.
Еще один пример – электромобили Tesla. У обычного автомобиля на приборной панели десятки кнопок. У большинства электромобилей Tesla всего четыре кнопки и два колесика прокрутки на рулевом колесе. Все остальное – это программное обеспечение, работа которого отображается на гигантском экране. На кнопках Tesla даже нет надписей. Это значит, что все можно рассматривать как программное обеспечение, которое обновляется по мере того, как компания Tesla получает отзывы клиентов. Обновляется не только информационно-развлекательная система электромобиля (туда, например, добавили функцию караоке и YouTube), но и важные функции безопасности.
В октябре 2013 г. один владелец Tesla S наехал на камень, который повредил аккумулятор, что вызвало пожар. Система безопасности предупредила водителя о возникшей проблеме, он благополучно съехал на обочину и вышел из машины за несколько минут до того, как пламя охватило электромобиль. Но для компании Tesla это была PR-катастрофа. Чтобы сделать автомобиль безопаснее, конструкторы Tesla решили увеличить клиренс электромобиля на один дюйм при выходе на высокую скорость. В большинстве компаний это потребовало бы отзыва автомобилей, что обошлось бы производителю в десятки или сотни миллионов долларов и создало бы неудобства для владельцев машин. Но Tesla всего лишь произвела рассылку обновления, изменившего параметры подвески электромобиля, и проблема была решена. Вот так работает программное мышление.
Мне нравится очевидность программного образа мышления в компаниях – производителях физического оборудования: вы буквально видите, как они избавляются по возможности от элементов из стекла и пластика, оставляя только необходимый физический интерфейс между устройством и миром. Но даже если ваш бизнес не связан с производством физического оборудования, уроки этой эволюции оказываются теми же. Какая часть вашей отрасли является цифровой по сравнению с физической? Что бы произошло, если бы вы могли изменять работу физического устройства еженедельно, т. е. отлаживать его? Это и есть программное мышление в действии – оцифровка физической реальности и применение программного подхода к решению проблем.