» » » » Ларри Константин - Человеческий фактор в программировании


Авторские права

Ларри Константин - Человеческий фактор в программировании

Здесь можно купить и скачать "Ларри Константин - Человеческий фактор в программировании" в формате fb2, epub, txt, doc, pdf. Жанр: Управление, подбор персонала. Так же Вы можете читать ознакомительный отрывок из книги на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Ларри Константин - Человеческий фактор в программировании
Рейтинг:
Название:
Человеческий фактор в программировании
Издательство:
неизвестно
Год:
неизвестен
ISBN:
нет данных
Вы автор?
Книга распространяется на условиях партнёрской программы.
Все авторские права соблюдены. Напишите нам, если Вы не согласны.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

Описание книги "Человеческий фактор в программировании"

Описание и краткое содержание "Человеческий фактор в программировании" читать бесплатно онлайн.



Хорошее программное обеспечение создается людьми. Так же как и плохое. Именно поэтому основная тема этой книги — не аппаратное и не программное обеспечение, а человеческий фактор в программировании (peopleware). Первое издание «Constantine on Peopleware» признано классическим трудом в области информационных технологий. Новая книга Ларри Константина включает все 52 легендарные статьи из предыдущей книги и 25 новых эссе.

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

Название оригинала на английском языке: The Peopleware Papers by Larry L. Constantine






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

Большое количество ковбоев означает большое количество строк кода, независимо от того, нужны они или нет. Это означает большое количество неструктурированного кода, который был придуман на лету и написан в одиночку. Он разный, и каждый кусок несет на себе отпечаток уникального ковбойского стиля.

Ковбои над ковбоями (trail bosses[13])

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

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

Увы, понимания бывает недостаточно. Как писала газета Wall Street Journal (от 26 мая 1993 г.), весь проект, казалось, был обречен на то, чтобы произвести колоссальный, чрезвычайно сложный и насыщенный ошибками программный продукт. Около 200 программистов неистово занимались написанием кода в соответствии с определяемыми на лету требованиями, отчего вся разработка проекта превратилась во всеобщую драку.

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

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

Однако подход может быть иным. Дисциплина бывает полезной. Вот что было сказано в докладе Эла Пиитресанта (А1 Pietresanta) на конференции по разработке программного обеспечения, проходившей в 1989 году в Бостоне: если применять «чистые» («clean room») методы кодирования и непрерывного технологического улучшения, то даже в очень больших системах может быть меньше одной ошибки на 10 ООО строк кода.

Зрелость окупается. Замечено, что если большие проекты осуществляются зрелыми организациями с помощью устоявшихся технологий, то расходы на разработку сокращаются в 20–30 раз по сравнению с применением более свободных методов «на скорую руку».

«Ковбоизм» в кодировании может иметь много бастионов, но случай с ранчо Редмонд можно считать уникальным. Издание Journal приводит слова Митчела Дункана (Mitchell Duncan), главного конструктора проекта NT: «Все наши разработчики-ковбои строчат код просто как сумасшедшие».

И настрочили они 4,3 миллиона строк. Только смотрите внимательно, куда наступаете.

Из журнала Software Development, том 1, № 10, октябрь 1993 г.

9

Единство в разнообразии

Что требуется для того, чтобы быть лидером? Какой вид лидерства ведет к эффективной командной работе и успешному решению задач? В конце 70-х годов английский колледж подготовки административных работников (Administrative Staff College) попросил британского консультанта по менеджменту Р. Мередита Белбина (R. Meredith Belbin, 1976 [3]) найти ответы на эти вопросы с помощью проведения формальных наблюдений и экспериментов.

Велбин организовал команды из опытных руководителей среднего и высшего ранга. Эти команды приняли участие в соревнованиях, которые можно было объективно оценить с помощью новейших научных методик и подходов. Начав с команды «А», объединившей самых лучших и самых ярких, действительно выдающихся личностей, Белбин распределял участников по разным командам. Нераспределенными остались те, кто не подходил ни для одной из тщательно собранных команд высококлассных участников. Из них он сформировал последнюю команду, которая представляла собой разношерстную группу ничем не примечательных специалистов.

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

Необходимые роли

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

Лидерские роли, выявленные Белбином, представляют собой командные функции, выполнение которых необходимо для достижения наивысшей производительности. Кроме того, они представляют стили, в рамках которых эти лидерские функции могут осуществляться. Четыре функции соответствуют типичным представлениям о том, каким должно быть поведение настоящих лидеров. Бригадир — это член команды, который обычно определяет правила и руководит мыслительной деятельностью команды и происходящими в ней обсуждениями. Он ведет команду к конкретной цели или результату, навязывая подходы и схемы работы. В этом смысле мы все знакомы с бригадирами. Зачастую такие люди занимают главенствующее положение в командах. Однако существуют и другие важные формы командного лидерства. Зачинатель — это генератор идей, рационализатор и изобретатель, который выдвигает новые идеи и подходы. Координатор — это лидер с точки зрения процесса. Он координирует решение задач, рассматривая всю команду в качестве «человеческого ресурса». Наставник занимается критической оценкой и анализом всей групповой работы. По существу, это лидер в обеспечении качества.

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

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

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


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

Похожие книги на "Человеческий фактор в программировании"

Книги похожие на "Человеческий фактор в программировании" читать онлайн или скачать бесплатно полные версии.


Понравилась книга? Оставьте Ваш комментарий, поделитесь впечатлениями или расскажите друзьям

Все книги автора Ларри Константин

Ларри Константин - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Отзывы о "Ларри Константин - Человеческий фактор в программировании"

Отзывы читателей о книге "Человеческий фактор в программировании", комментарии и мнения людей о произведении.

А что Вы думаете о книге? Оставьте Ваш отзыв.