Дороже разработки по обходится только разработка плохого по
Программисты стоят дорого, а программисты, сидящие без дела в ожидании завершения проектирования, крайне раздражают руководителей. Глупо же, думает руководитель, что программисты сидят и ждут, хотя могли бы программировать. Заставить программистов работать до завершения этапа проектирования - ложная экономия. Когда появляется программный код, процесс уже не остановить, поэтому проектировщики вынуждены реагировать на потребности программистов, а должно быть наоборот. И вправду, глупо заставлять своих программистов ждать, а ведь очень просто сделать так, чтобы они не сидели без дела - надо, чтобы проектировщики взаимодействия планировали следующий продукт или релиз параллельно с созданием текущего продукта или релиза.
В долгосрочной перспективе беспорядочное программирование обойдется: дороже, чем полное отсутствие программирования. Эта истина настолько противоречит здравому смыслу, что большинство руководителей никак ее не воспринимает. Когда код написан, очень трудно его выбросить. Подобно писателям, влюбленным в свою прозу, программисты привязываются к своим алгоритмам на эмоциональном уровне. Модификация программы на полуслове вносит беспорядочность в процесс разработки и вредит коду. Руководителю еще труднее выбросить код, потому что он дорого заплатил за его создание и хорошо понимает, что замена обойдется еще дороже.
Если проектирование не предшествует программированию, вряд ли оно окажет какое-либо влияние. Один руководитель сказал мне: «Наши люди уже пишут код, и я не собираюсь их останавливать». Эти ковбои думают: «Пока мы будем лететь к земле, я успею сшить парашют». Отважное заявление, однако, мне не довелось видеть ему подтверждения.
Не имея результатов серьезного этапа проектирования, программисты непрерывно экспериментируют со своими программами в поисках лучших решений. Они действуют так же расточительно, как плотник, распиливающий доски «на глаз», пока не зашьет дыру в стене.
Свойства неизмеримости и неосязаемости программного обеспечения препятствуют точной оценке его масштабов и завершенности. Добавьте любовь программиста к своему ремеслу и вы поймете, что проекты неизбежно распухают в объеме и времени. Программируя подобным образом, мы всегда будем получать сюрпризы, пока не начнем правильно устанавливать промежуточные сроки и определять, где мы находимся.
- Алан Купер Психбольница в руках пациентов
- Содержание
- Часть I. Компьютерная безграмотность 27
- Глава 1. Загадки века информации 27
- Глава 2. Когнитивное сопротивление 44
- Часть II. Масштабные издержки 68
- Глава 3. Пустая трата денег 68
- Глава 4. Танцующий медведь 89
- Об авторе
- Благодарности
- Предисловие научного редактора
- Предисловие
- Введение Книга-обоснование
- Инженер, сведущий в бизнесе, либо бизнесмен, сведущий в технологии
- ЧастьI. Компьютерная безграмотность Глава 1. Загадки века информации Что получится, если скрестить компьютер с самолетом?
- Что получится, если скрестить компьютер с фотокамерой?
- Что получится, если скрестить компьютер с будильником?
- Что получится, если скрестить компьютер с автомобилем?
- Что получится, если скрестить компьютер с банком?
- Компьютер позволяет легко попасть в беду
- Коммерческое программное обеспечение тоже страдает
- Что получится, если скрестить компьютер с военным кораблем?
- Техноярость
- Индустрия в «несознанке»
- Мотивы создания этой книги
- Глава 2. Когнитивное сопротивление
- Поведение, не связанное с физическими силами
- Проектирование1- слово емкое
- Отношения между программистами и проектировщиками
- Большинство программ проектируются случайным образом
- Проектирование «взаимодействия» против проектирования «интерфейса»
- Отличительные черты продуктов, основанных на программном обеспечении
- Танцующий медведь
- Стоимость дополнительных возможностей программного обеспечения
- Апологеты и уцелевшие
- Наша реакция на когнитивное сопротивление
- Демократизация власти потребителя
- Виноват пользователь
- Программный апартеид
- ЧастьIi. Масштабные издержки Глава 3. Пустая трата денег
- Управление, ориентированное на крайние сроки сдачи
- Что такое «готово»?
- Закон Паркинсона
- Продукт, вечно не готовый к выпуску
- Поздний выпуск - не беда
- Торг за набор функций
- Кто главный? Программисты
- Возможности не всегда нужны
- Итерации и миф о непредсказуемости рынка
- Скрытые издержки некачественного программного обеспечения
- Дороже разработки по обходится только разработка плохого по
- Стоимость возможностей
- Издержки прототипирования
- Глава 4. Танцующий медведь
- Если это проблема, то почему ее до сих пор не решили?
- Жертва бытовой электроники
- Чем плохи почтовые клиенты
- Чем плохи программы для планирования
- Чем плохи календари
- Массовая веб-истерия
- Что не так с программным обеспечением?
- Программы забывают
- Программы ленивы
- Программы скупы на информацию
- Программы не гибки
- Программы возлагают вину на пользователей
- Программы не несут ответственности
- Глава 5. Нелояльность клиентов
- Привлекательность
- Одно сравнение
- Время выхода на рынок
- ЧастьIii. Как есть суп вилкой Глава 6. Психбольница в руках пациентов
- Вождение на заднем сиденье
- Подготовка катастрофы
- Компьютеры против людей
- Учим собак быть кошками
- Глава 7. НоmoLogicus
- Авиационный тест
- Психология программистов
- Программисты пожертвуют простотой ради контроля
- Программисты обменяют успех на понимание
- Программисты сосредотачиваются на исключительных ситуациях
- Программисты ведут себя грубо и прямолинейно
- Глава 8. Отмирающая культура
- Культура программирования
- Повторное использование кода
- Общепринятая культура
- Культура программирования в Мicrоsоft
- Культурная изоляция
- Шкурный интерес
- Дефицитный образ мыслей
- Обесчеловечивает процесс, а не технология