ТЕХНОЛОГИИ: Мы наш, мы новый билд построим

ТЕХНОЛОГИИ: Мы наш, мы новый билд построим

Автор: Майкл Кузумано

Бизнес разработки программного обеспечения сильно изменился за последние пять лет. И главная тенденция, которую можно выделить на этом фоне, - плавное изменение стиля программирования.

Майкл Кузумано (Michael Cusumano) - известный эксперт на рынке программного обеспечения, специализирующийся на вопросах стратегий развития продуктов и предпринимательства в области разработки ПО. Но Кузумано не только признанный теоретик, за его плечами богатый опыт руководства различными компаниями-разработчиками. Сейчас он возглавляет шестую по величине софтверную компанию в Индии Patni Computer Systems. Кроме того, он оказывает консультационные услуги ведущим мировым корпорациям, среди которых Alcatel, AOL, AT amp;T, Business Objects, Cisco, Ericsson, Texas Instruments, Toshiba и другие. Из-под пера профессора выходят не только научные труды, но и книги для широкого круга читателей, включая мировой бестселлер «Microsoft Secrets"[M. Cusumano, R. Selby, „Microsoft Secrets“. - The Free Press/Simon amp; Schuster, NY, 1995. - Здесь и далее примечания Константина Курбатова] (в соавторстве с Ричардом Шелби), который переведен на четырнадцать языков. В конце октября Майкл Кузумано посетил Россию в рамках конференции для разработчиков программного обеспечения[Мы писали о ней в „КТ“ #613 от 10 ноября 2005 года], где и прочитал предлагающийся вашему вниманию доклад. - К.К.

В прошлом и позапрошлом десятилетиях было популярно так называемое нисходящее программирование (способ разработки программ, при котором программирование ведется методом «сверху вниз», от общего к деталям), сейчас набирает обороты программирование итерационное, то есть разработка ПО методом постоянного выпуска неких обладающих минимальной функциональностью промежуточных билдов, каждый из которых приближает ее (функциональность) к требуемой. Вторая тенденция, которую необходимо отметить, - это замещение бизнес-модели, состоящей в выпуске готового программного обеспечения, на оказание услуг и сервисов.

Но прежде чем обсуждать эти тенденции, хотелось бы вернуться на тридцать лет назад. Вот выдержка из отчета НАТО 1969 года, посвященного разработке ПО. «Главные проблемы в системе разработки программного обеспечения состоят в следующем:

n недостаточное управление требованиями, увлечение производством кода в ущерб дизайну ПО;

n ошибки в оценках, недостаток мониторинга процессов, разобщенность программистов;

n низкая продуктивность, отсутствие оценочных факторов, низкая надежность (ошибки);

n слишком сильная привязка к оборудованию, невозможность повторного использования кода;

n высокая стоимость разработки».

Звучит знакомо, не правда ли? Уже предпринимались попытки решения этих проблем путем смены парадигмы программирования. В истории можно выделить несколько моделей: стиль IBM (совершенствование классической схемы; 1960-70-е годы), японский стиль («фабрики ПО», стабильные команды программистов, отлаженные процедуры, максимальное повторное использование кода; 1970-80-е) и стиль, предлагаемый SEI[SEI - Software Engineering Institute] (главным образом состоит в предварительном ранжировании требований к разработке и контроле соответствия этим требованиям на каждом этапе, с 80-х; в настоящее время предлагается уже пятая версия документа).

Пока ни один из них не может целиком решить задачи любого проекта разработки ПО. Различия в бизнес-моделях, заказчиках, квалификации исполнителей и других параметрах приводят либо к неоправданному повышению стоимости продукта, либо к снижению качества и удлинению периода разработки. Поэтому сейчас разработчики концентрируются именно на новой итеративной методологии, характерной чертой которой является постоянный выпуск условно «готового» ПО, при постоянном дальнейшем его развитии и насыщении.

Внутри нее можно выделить следующие процессы: спиральная разработка архитектуры (от ядра системы к подключаемым модулям), постоянный выпуск прототипов (для контроля функциональности), выпуск наравне с бетами регулярных стабильных версий (для контроля ошибок), применение нисходящего программирования в микромасштабах (особенно для систем реального времени), набирающее популярность экстремальное программирование[Очень рекомендую посетить сайт www.xprogramming.ru] (постоянное взаимодействие с заказчиком; воплощение прежде всего тех функций, которые именно сейчас нужны пользователям; написание одного и того же кода парой программистов: один пишет - другой смотрит, потом меняются). На рисунке видно, как соотносятся эти методики.

Итак, прогресс в области разработки программного обеспечения, несмотря на проблемы, сходные с проблемами конца 60-х, не стоит на месте. Мною проводились ежегодные исследования - какие методики применяют те или иные компании при разработке ПО. Были изучены корпоративные стандарты большинства крупных мировых компаний-разработчиков софта. В Индии: Motorola MEI, Infosys, Tata, Patni; в Японии: Hitachi, NEC, IBM Japan, NTT Data, SRA, Matsushita, Omron, Fuji Xerox, Olympus; в США: IBM, HP, Agilent, Microsoft, Siebel, AT amp;T, Fidelity, Merrill Lynch, Lockheed Martin, TRW, Micron Tech; в Европе: Siemens, Nokia, Business Objects, и многих других. В результате можно выявить несколько основных тенденций. Так, почти все из перечисленных компаний постоянно выпускают бета-версии, регулярно изменяют и дополняют документы, описывающие базовую архитектуру будущего ПО. Все проводят тестирование нового куска кода в рамках всего проекта (так называемый регрессионный анализ, который можно сравнить с порядком, установленным на конвейере компании Toyota, - если кто-либо из рабочих заметил дефект, он обязан остановить движение всего конвейера), чтобы не потерять достигнутой стабильности и функциональности.

Однако видны и различия. В первую очередь выделяется Индия, где высок процент применения парного программирования, всегда имеется детальное описание проекта (для сравнения, в США только 30% проектов имеют этот документ), относительно низкий уровень применения генераторов кода. Япония в этом плане не слишком отличается от Индии. В Европе же гораздо чаще применяют методику микроциклов, больше развит выпуск бета-версий с независимым бета-тестированием. Таким образом, очевидна тенденция перевода «человекоемких» технологий в страны с дешевой рабочей силой и активное применение новых «технологических» (вроде кодогенераторов) решений вкупе со стремлением к сокращению сроков разработки в европейских странах.

Япония, со своей традиционной методикой разработки ПО, стоит как бы в стороне, однако можно отметить высокий уровень организации бизнес-процессов, что отличает ее от Индии. Поэтому Япония имеет одно важное преимущество перед другими мировыми центрами разработки: при очень высоком уровне производства кода (почти 500 тысяч строк в месяц на человека, тогда как в Европе 436 тысяч, в Индии - всего 209 тысяч) поддерживается минимальный уровень ошибок - меньше 0,02 (!) ошибочных строчек на тысячу (в США - 0,4, в Индии - 0,26). Добиваются они этого активным повторным использованием уже отлаженного кода и наличием детальных описаний проектов.

Анализируя результаты работы компаний, исповедующих различные подходы к организации процесса, можно выделить следующие факты. Компании, выпускающие первый прототип, обладающий всего лишь 20% функциональности, в итоге уменьшали количества ошибок на 27%. Далее, регрессионное тестирование снижает количество ошибок на 36%, уточнение архитектуры конечного продукта на каждом этапе дает 55% снижения. Кстати, ранний выпуск работающих прототипов повышает общую производительность программистов на 35%. А если прототипы выпускаются ежедневно, то она вырастает почти вдвое - вот какой эффект имеет осязаемость результатов своего труда!

Итак, по разным оценкам, более 60% программного обеспечения создается на основе новых методов организации рабочего процесса. Только в 36% случаев применяется нисходящее программирование с детально проработанным планом и подробными спецификациями до начала его реализации. Можно смело утверждать, что мир разработки ПО окончательно изменился и большинство компаний применяют смесь из обычного программирования и итеративных методик. Это свидетельствует о том, что ориентация софтверных фирм на рынок «вообще» сменилась ориентацией на решение задач конкретного пользователя.

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

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Создаем новый раздел

Из книги автора

Создаем новый раздел Возможно построить систему LFS на одном разделе с уже установленным дистрибутивом. Несмотря на то, что для первой установки LFS данный шаг не рекомендуется, это удобно, если у вас дефицит дискового пространства. Если вы решили рискнуть, см. совет по


Добавляем новый контакт

Из книги автора

Добавляем новый контакт Вы только что установили Skype, поэтому ваш список контактов еще пуст. Вы не можете выбрать из него имя вашего друга, чтобы сразу ему позвонить. Допустим, что вы даже не знаете его Skype-имени, этим проблема еще больше усложняется. Что же можно сделать в


5. Новый Internet Explorer

Из книги автора

5. Новый Internet Explorer Internet Explorer 1.0 был выпущен в августе 1995 года на основе браузера Spyglass, Inc Mosaic. Microsoft лицензировала браузер на условиях ежеквартальных выплат плюс процент от продаж. Internet Explorer 1.0, как и Internet Explorer 2.0, выпущенный в ноябре 1995 года, широкого распространения не


Новый ярлык

Из книги автора

Новый ярлык В Проводнике или Мой компьютер через меню Файл-Создать-Ярлык вы можете получить доступ к дискам компьютера, даже если вы отключили контекстное меню Проводника. Чтобы не допустить появления мастера создания нового ярлыка, удалите или переименуйте раздел:


Новый тип данных: BOOLEAN

Из книги автора

Новый тип данных: BOOLEAN InterBase теперь поддерживает тип данных BOOLEAN в соответствии со стандартом SQL99. Поля и переменные типа BOOLEAN могут принимать значения TRUE/FALSE/UNKNOWN (да-да, и здесь используется трехзначная логика, как и везде, где есть понятие неопределенного значения). Размер


Добавляем новый объект

Из книги автора

Добавляем новый объект Итак, в результате наших усилий по экрану движется кусочек сыра. Настало время добавить новый объект, которым пользователь будет отбивать сыр. Для наших целей вполне подойдет батон хлеба. Вспоминаем предыдущие упражнения, где мы выводили кусочек


НОВЫЙ ФАЙЛ

Из книги автора

НОВЫЙ ФАЙЛ Все, хватить болтать, создаем новый файл. Новый файл создается в редакторе волновой формы нажатием кнопки Создать новый (New), выбором Меню Файл – Новый (File – New) или комбинацией клавиш Ctrl+N. Перед вами открывается окно создания нового файла (см. рисунок).На этом


Как создать новый PGP диск.

Из книги автора

Как создать новый PGP диск. 1.  Запустите программу PGPdisk2.  Исполните команду New, после чего на экране появится мастер создания PGP диска.3.  Нажмите на next.4.  Появится окошко создания PGP диска, в котором необходимо указать путь, где новый диск под названием <New PGPdisk>  надо


ТЕХНОЛОГИИ: Информационные технологии Древней Руси

Из книги автора

ТЕХНОЛОГИИ: Информационные технологии Древней Руси Автор: Ваннах МихаилИнформационные технологии Древней Руси? Ну да, конечно. Когда при раскопках античности обнаружили проволоку, то сделали вывод, что у древних был телеграф. Тем археологическим культурам, где


ТЕХНОЛОГИИ: IT-технологии Бога Войны

Из книги автора

ТЕХНОЛОГИИ: IT-технологии Бога Войны Автор: Анатолий СорокинВ наши дни первым (а иногда и единственным) приложением результатов развития хайтека является военное дело. Впрочем, так было в любую историческую эпоху. Высокими технологиями в разное время были (и не потеряли


ТЕХНОЛОГИИ: 2G, 3G, 3.5G, 3.75G… Технологии мобильной связи дробятся и множатся

Из книги автора

ТЕХНОЛОГИИ: 2G, 3G, 3.5G, 3.75G… Технологии мобильной связи дробятся и множатся Автор: Родион НасакинНи один аналитик не возьмется со стопроцентной уверенностью указать технологию, по которой будет работать подавляющее большинство сетей мобильной связи через пять-десять лет.


TDD и новый код

Из книги автора

TDD и новый код Мы используем TDD для всех новых проектов, даже если это означает, что фаза развёртывания рабочего окружения проекта потребует больше времени (потому что нужно больше усилий на настройку и поддержку тестовых утилит). Нетрудно понять, что выгода перевесит


ТЕХНОЛОГИИ: Контроллер контроллеру рознь: Паровозные технологии XXI века

Из книги автора

ТЕХНОЛОГИИ: Контроллер контроллеру рознь: Паровозные технологии XXI века Автор: Анатолий СорокинВ своей предыдущей статье «IT-технологии Бога Войны» («КТ» #644-645) автор попытался сделать анализ применения и применимости современного хайтека к реалиям современной


НОВЫЙ ВИД НАРКОМАНИИ?

Из книги автора

НОВЫЙ ВИД НАРКОМАНИИ? Компьютер – заветная мечта каждого современного мальчишки. Да и многие родители считают «умный ящик» неотъемлемой составляющей достойного качества жизни, а потому покупают его ребёнку и дают деньги на игры в компьютерных клубах, которых в