Человеческий фактор в программировании - [2]

Шрифт
Интервал

Предисловие к первому изданию

Аппаратное и программное обеспечение и человеческий фактор в программировании

Хорошее программное обеспечение берет начало не в применении CASE[1] -инструментов, методов визуального программирования, ускоренной разработки программ или объектно-ориентированной технологии. Хорошее программное обеспечение создается людьми. Так же, как и плохое. В 1992 году я начал вести колонку в журнале, исходя из простого принципа: поскольку программное обеспечение создается и применяется людьми, то наилучшее понимание людей — как они работают, каким образом выполняют свою работу, как взаимодействуют между собой — является основой для усовершенствования программного обеспечения и процесса его разработки. Таким образом, основным предметом заметок в этой колонке было не аппаратное (hardware) и не программное (software) обеспечение, а человеческий фактор в программировании (peopleware).

В области, которая изобилует неологизмами, термин «peopleware» — один из немногих, которые действительно стоило выдумать. По-видимому, в печатном издании этот термин первым применил Питер Г. Ньюман (Peter G. Newmann), который, наверное, более всего известен по своим регулярным статьям о риске потребителей и опасностях компьютеров и компьютерных программ для человека. В 1976 году его статья «Peopleware in Systems» была опубликована в книге, получившей свое название от этой статьи. Судя по всему, этот термин придумал Меилир Пейдж-Джонс (Meilir Page-Jones), который использовал его в 1980 году в своей книге «Practical Guide to Structured Systems Design» (Практическое введение в проектирование структурированных систем) — книге, в конце концов сделавшей мою работу по структурному проектированию более понятной для обычного программиста. Но постоянное место в лексиконе нашей отрасли этот термин обрел, скорее всего, после того как в 1987 году под таким заголовком вышла небольшая, но великолепная книга Тома ДеМарко (Tom De-Marco) и Тима Листера (Tim Lister) [33] Таким образом, можно сказать, что названиe[2] для своей колонки, «Peopleware», я позаимствовал из самых лучших источников.

На самом деле «человеческий фактор в программировании» (peopleware) является третьей волной компьютерной революции. Сначала произошел кризис, связанный с аппаратным обеспечением. Одно время мы думали, что наши проблемы возникают из-за аппаратного обеспечения. Нам казалось, что если бы только у нас были более быстрые и мощные компьютеры с большими объемами памяти и более совершенными периферийными устройствами, мы смогли бы создавать более совершенные системы и решать наши задачи. И вот мы получили лучшие компьютеры. Год от года аппаратное обеспечение становилось все быстрее, память — больше, а периферийные устройства — более разнообразными и эргономичными. Однако наши проблемы не исчезли. Мы все еще продолжали создавать системы, трудные для применения. Мы все также опаздывали с завершением своих проектов и превышали запланированный для них бюджет. Поэтому мы решили, что на самом деле проблема состоит в программном обеспечении, после чего линия фронта в компьютерной революции переместилась к рубежу, который многие стали называть «кризисом программного обеспечения». Если бы только у нас были более совершенные инструменты, языки более высокого уровня, более мощные библиотеки компонентов и программы для создания программ, мы смогли бы решать наши задачи и создавать хорошие системы вовремя и в пределах бюджета. Языки третьего поколения стали еще более сложными и породили языки четвертого поколения (4GL). Компиляторы становились все быстрее и эффективнее. Библиотеки компонентов многократного использования расширялись, редакторы стали контекстно-зависимыми, а разнообразные инструменты автоматизированной разработки программного обеспечения появлялись, как грибы после дождя. Вслед за структурной революцией, давшей нам структурное проектирование и анализ, стало развиваться и набирать популярность объектно-ориентированное направление. Однако графики работ по-прежнему не выполнялись, бюджеты превышались, а количество ошибок в программах упрямо не желало становиться меньше.

В конце концов, подобно Пого и его легендарным друзьям из Окифиноки, на своем опыте мы выяснили, в чем тут дело. Как мудро сказал этот маленький опоссум: «Мы встретили врага — это мы сами». И это действительно так. Все сводится к человеческому фактору в программировании. Мы являемся проблемой, и мы же являемся ее решением. Как удобно.

Человеческий фактор в программировании охватывает довольно широкую область. Сюда входит все, что связано с ролью людей в процессе разработки программного обеспечения и приложений. В заметках и в книге затрагиваются разнообразные темы: качество и продуктивность, работа в команде, динамика поведения коллектива, личность и программирование, руководство проектом и организационные вопросы, разработка интерфейса и взаимодействие между человеком и машиной, познавательная деятельность, психология, процессы мышления.

Все эти предметы интересуют и увлекают меня. Я получил ученую степень по менеджменту отчасти потому, что это позволило мне соединить компьютеры и теорию систем с психологией. Моя диссертация была посвящена психологии программирования на компьютере. В течение нескольких лет я знакомил тысячи студентов и десятки коллег с работами психолога Джорджа Миллера (George Miller) и его магическим числом (конечно, я имею в виду 7±2


Рекомендуем почитать
Стратегия чистого листа. Как перестать планировать и начать делать бизнес

Компания обязана иметь стратегию и строго ей следовать. Эта догма вкладывается в умы менеджеров всего мира преподавателями вузов и бизнес-школ, а также книгами и деловыми журналами. Но всегда ли стратегический подход работает? Может ли гибкий «оппортунистический» подход к управлению быть более эффективным? Марк Розин, консультант с 20-летним стажем, делится не только своими наблюдениями за попытками внедрения западного, стратегического подхода к управлению, но и показывает, что «оппортунистический» подход, основанный на гибкости и использовании неожиданных возможностей, зачастую лучше работает в российских условиях.


Мыслить стратегически. Как разработать стратегию бизнеса и сделать стратегическое мышление частью повседневной жизни компании

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


Кадровый учет для «упрощенцев»

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


Профилактика трудового спора с работником и действия в случае его возникновения

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


Три круга лидерства

Книга показывает, что лидером организации стать можно, нужно лишь знать, какими шагами идти к этой цели. Из всего многообразия теорий и методов здесь представлены практические шаги и техника развития наиболее важных для руководителя навыков. Управление подчиненными, принятие решений и делегирование полномочий – все это разложено в простые и понятные схемы. Становление лидера – явление не одномоментное, и три круга лидерства символизируют три области развития навыков руководителя: собственное развитие и понимание лидерства, управление подчиненными и знание организации как единой системы.В основе книги – опыт автора в области управленческого консультирования и организационного развития, руководителя консалтингового направления одной из известных на постсоветском пространстве консалтинговых компаний.


Японский менеджмент. Прошлое, настоящее и будущее

Причины удивительного экономического успеха Японии в послевоенные годы и резкого спада экономики в 1990-е всегда были предметом оживленных споров ученых и журналистов. Хотя на эту тему написано много научных и популярных книг, мало кто до конца понимает, что это такое – японский менеджмент. Почему он отличается от европейского и американского? Что в действительности представляет собой и каков сегодня? В чем секрет японского экономического чуда и применимы ли японские методы управления в других странах? Какое будущее ждет экономику Страны восходящего солнца? Об этом и многом другом рассуждает Ингиу Оу.