Ларри Константин - Человеческий фактор в программировании
- Название:Человеческий фактор в программировании
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Ларри Константин - Человеческий фактор в программировании краткое содержание
Хорошее программное обеспечение создается людьми. Так же как и плохое. Именно поэтому основная тема этой книги — не аппаратное и не программное обеспечение, а человеческий фактор в программировании (peopleware). Первое издание «Constantine on Peopleware» признано классическим трудом в области информационных технологий. Новая книга Ларри Константина включает все 52 легендарные статьи из предыдущей книги и 25 новых эссе.
Peopleware охватывает все аспекты, связанные с ролью людей в разработке программного обеспечения. Это качество и продуктивность, модели и методы, динамика поведения коллектива, руководство проектами, разработка интерфейсов и взаимодействие между человеком и компьютером, психология и процессы мышления. В данное издание включены два новых раздела, посвященных организационной культуре и юзабилити программных продуктов.
Название оригинала на английском языке: The Peopleware Papers by Larry L. Constantine
Человеческий фактор в программировании - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Вы просите доказательств — вы их получите. Мой коллега по офису и я проверяли Персональные Информационные Менеджеры (Personal Information Managers), функционирующие в среде Windows. Один из них был снабжен вычурным имитатором времени DayTimer™ и очень расточительно использовал свободное пространство экрана. Он был просто чертовски умным, настолько, что было ясно: только «Заговор Упрямцев» мог создать такое.
Все становится понятно уже по одной операции удаления: для удаления чего-либо из блокнота вам нужно перенести этот элемент к иконке с изображением проволочной (да-да, именно проволочной !) мусорной корзины. После чего корзина воспламеняется! Пиктографическое жертвоприношение! На создание модуля этой корзины были затрачены немалые программистские ресурсы. Но она такая замечательная ! Она обязательно произведет впечатление на начальников, агентов по материально-техническому снабжению и других людей с умственными недостатками. Однако мало кто заметил, что на машине с быстрым 486 процессором, ускоренной видеокартой и большим монитором эти языки пламени очень напоминали шоу Лоренса Уэлка (Lawrence Welk [22] Lawrence Welk (1903–1992) — создатель и ведущий музыкальных программ на американском телевидении (Lawrence Welk Show).
)! Что еще здесь нужно говорить?
Методы разработки, которые применяет «Заговор», отражают его цели и служат им. Лучшие профессионалы объявляют о создании продукта, потом придумывают к нему упаковку и затем начинают кодировать. Составление схем разработки — это довольно трудное дело. Намного проще их составлять на основе уже существующего кода, поэтому упрямые команды, разрабатывающие программное обеспечение, действуют так. Они начинают с кодирования модулей низкого уровня, например драйверов экрана или пылающих корзин, а на их основе строят все остальное и составляют схему разработки в целом. При проведении бета-тестирования могут быть написаны и системные требования — в качестве предисловия к руководству пользователя.
Будьте внимательны, поскольку «Заговор упрямцев» может маскироваться под обычные научно-исследовательские группы или проектные команды, однако на тайных совещаниях, проводимых вечером после десяти, они замышляют противоестественные сценарии разработки. Вы когда-нибудь задумывались о том, почему некоторые из ваших приятелей допоздна задерживаются на работе? Очень может быть, что они оказались втянуты в тайные церемонии, проводимые 1 апреля 1993 года [23] Из писем, пришедших по электронной почте, стало ясно, что не все читатели этой заметки поняли, что в день выхода заметки из печати отмечался День дураков.
в ознаменование 666-й годовщины создания «Заговора упрямцев».
Из журнала Software Development, том 1, № 4, апрель 1993 г.
IV
Инструменты, модели и методы
18
CASE и познание
Автоматизированное проектирование и создание программ (CASE, Computer-Aided Software Engineering) больше не является актуальной темой в области разработки программного обеспечения и приложений. Даже производители CASE-инструментов стараются переименовывать свои продукты, называя их «средами комплексной разработки» или просто «наборами инструментов». Как бы они ни назывались, средства разработки, которые мы применяем (успешно или неуспешно), в значительной степени связаны с тем, к чему мы стремимся как разработчики.
Иногда я бываю ярым сторонником инструментов. Как известно, многие из современных инструментов являются относительно примитивными. Зачастую заложенные в них идеи неверны. Такие системы созданы заблуждающимися производителями, которые не понимают и не применяют те методологии разработки программ, которые поддерживаются их инструментами. И все же, эти инструменты могут быть эффективными в той же мере, в какой каменный топор может быть более эффективен для рубки леса, чем голые руки.
Неудивительно, что зачастую можно услышать что-нибудь этакое: «У нас нет времени на использование CASE-инструментов, нас поджимают сроки». Это могут произносить те программисты (теперь уже полысевшие или поседевшие), которые когда-то возражали против языков высокого уровня. Наверное, они никогда не составляют блок-схем или схем потоков данных и настаивают на том, что в отличие от нас, простых смертных, они могут все удерживать в своей голове. С другой стороны, многие критики CASE-инструментов действительно пытаются применять определенные методы разумного проектирования и разработки. К сожале-нию, многие CASE-инструменты вместо того, чтобы способствовать процессу методичного решения задач и творческого проектирования, на самом деле препятствуют ему.
Что неправильно в этой картине? Вы видите высокооплачиваемого разработчика программного обеспечения, сидящего в офисе за рабочей станцией стоимостью шесть тысяч долларов и пользующегося CASE-инструмен-том стоимостью двенадцать тысяч долларов, который чертит в своем блокноте и делает заметки на желтых клочках бумаги. В конце концов, после множества исправлений, зачеркиваний и перерисовок он берет мышь и начинает вводить то, что разработал. Таким образом, сложный набор инструментов, установленный на его рабочей станции, превращается в замысловатую электронную доску для черчения.
Вот что здесь неправильно: вместо того чтобы взаимодействовать с разработчиком согласно его представлениям, инструмент работает против него. Вместо того чтобы поддерживать врожденные способности и привычки, укоренившиеся при обучении, CASE-инструмент становится помехой. Для глубокого понимания таких трудностей нам следует рассмотреть, как люди, и в особенности люди инженерного склада ума, решают задачи.
Например, мы знаем, что многие из хороших разработчиков, аналитиков и проектировщиков в самых сложных проектах делают приблизительные зарисовки того, что они собираются создать. Далее такие зарисовки дополняются деталями или в них вносятся уточнения. Загляните через плечо такой специалистки, когда она занята решением задачи, и понаблюдайте за ее действиями. Сначала она может нарисовать целый набор символов, означающих компоненты. Затем она отображает взаимосвязи между некоторыми из этих пустых рамок, проводя между ними линии и стрелки. И наконец, она описывает компоненты и уточняет некоторые детали во взаимосвязях между ними.
Что можно сказать о типичных CASE-инструментах? Во многих из них с помощью мыши вы выбираете из набора пиктограмм нужный символ, устанавливаете курсор (опять же с помощью мыши) в том месте внутри создаваемой диаграммы, где вы хотите расположить этот символ, и затем выполняете щелчок мышью, чтобы поместить символ на это место. В этот момент появляется диалоговое окно, в котором запрашивается имя для нового элемента. Это имя должно быть назначено в соответствии с общими и корпоративными стандартами, которые установлены для таких символов. Потом вы должны описать его, назначить для него интерфейсы и, возможно, задать другие параметры. И только после того, как все это выполнено в соответствии с принятыми правилами синтаксиса, вы сможете продолжить составление диаграммы. Однако к этому времени вы, наверное, уже забыли, что собирались делать дальше. Более того, общее представление о содержании и структуре задачи, которое казалось таким ясным, когда вы только протянули руку к мыши, теперь стерлось из вашей ментальной карты благодаря отвлекающим деталям CASE-инструмента.
Читать дальшеИнтервал:
Закладка: