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

Некоторые шаги являются обязательными. Неважно, сколько систем вы построили, или сколько статей написали, или сколько провели семинаров. Никто не будет всерьез воспринимать вас как гуру до тех пор, пока вы не выпустите книгу или не станете регулярно печататься в какой-нибудь известной отраслевой газетенке. Желательно, чтобы эти заметки сопровождались вашей фотографией. Ваше имя на обложке книги должно идти первым среди соавторов. Все помнят, что метод ОМТ был разработан Рамбо (Rumbaugh), и каждый считает пользовательские ситуации неотъемлемой частью метода Джекобсона, но кто сейчас вспомнит имена других авторов, участвовавших в создании авторитетных трудов этих гуру?

Самый устойчивый и почитаемый гуру имеет нечто большее, чем стиль, — нечто, чему, вероятно, невозможно научить или научиться. Это харизма. Часто и неверно употребляемое слово «харизма» буквально означает дар богов. Этот дар наделяет некоторых людей способностью побуждать других идти на риск — создавать новое программное обеспечение, или стремиться к 5-му уровню в SEI, или заниматься неиспытанным языком программирования.

По-настоящему харизматические личности — те страстные истинные верующие, которые побуждают приверженцев следовать за собой в горы, в тюрьмы или в места похуже, — наверное, люди другого рода. Лен Оукс (Len Oakes), психолог из Мельбурна, изучающий психологию харизмы, утверждает, что, по сути, настоящие харизматичные гуру очень похожи друг на друга. Основополагающие идеи могут быть совершенно различными, но личности обладают сходным, чрезвычайно твердым центром. Кореш (Koresh), Жюре (Jouret), Раджниш (Rajneesh), Хаббард (Hubbard) — у харизматических лидеров подобного типа кроме всего прочего есть один общий изъян: непроницаемый эгоистичный взгляд на реальность, который может вызывать у других ощущение абсолютной, окончательной, непоколебимой достоверности. В мире, где преобладает двойственность и неоднозначность, достоверность может служить действенным эликсиром. Но, увы, достоверность такого рода основана на выдуманной реальности, которая не связана с реальным миром. Она поддерживается за счет непрерывных усилий по отгораживанию от новых идей, новых сведений и новых аргументов, которые могут поставить под сомнение абсолютную истинность личных представлений.

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

И в каждом змеиный жир?

Из журнала Software Development, том 3, № 2, февраль 1995 г.

<p>61</p><p>Импресарио</p>

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

Влияние и воздействие может принимать разные формы. Целая отрасль или профессия может измениться благодаря действиям или вкладу одного человека. Эдсгер Дейкстра (Edsger Dijkstra) применил теоретическую работу Бома (Bohm) и Джакопини (Jacopini) к стилю программирования. Своим историческим письмом к редактору под названием «GO ТО Statement Considered Harmful» (Оператор GO ТО считаю вредным) (Dijkstra, 1968 [34]) он вызвал спор, приведший к революции в практике программирования. Молодой Билл Гейтс совершил несколько правильных шагов в создании системного программного обеспечения для зарождающейся микрокомпьютерной индустрии, и наш бизнес радикально изменился. Докторская диссертация Алана Кэя (Alan Кауе) стала основой революционного языка, который помог превратить объекты в новую программную парадигму. В сущности, в основе современного компьютерного программирования лежит совсем немного базовых идей, которые были выдвинуты сравнительно небольшой группой новаторов.

Перейти на страницу:

Похожие книги

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

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

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT
C++
C++

С++ – это универсальный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьезного программиста. За исключением второстепенных деталей С++ является надмножеством языка программирования C. Помимо возможностей, которые дает C, С++ предоставляет гибкие и эффективные средства определения новых типов. Используя определения новых типов, точно отвечающих концепциям приложения, программист может разделять разрабатываемую программу на легко поддающиеся контролю части. Такой метод построения программ часто называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определенных пользователем. Такие объекты просты и надежны в использовании в тех ситуациях, когда их тип нельзя установить на стадии компиляции. Программирование с применением таких объектов часто называют объектно-ориентированным. При правильном использовании этот метод дает более короткие, проще понимаемые и легче контролируемые программы. Ключевым понятием С++ является класс. Класс – это тип, определяемый пользователем. Классы обеспечивают сокрытие данных, гарантированную инициализацию данных, неявное преобразование типов для типов, определенных пользователем, динамическое задание типа, контролируемое пользователем управление памятью и механизмы перегрузки операций. С++ предоставляет гораздо лучшие, чем в C, средства выражения модульности программы и проверки типов. В языке есть также усовершенствования, не связанные непосредственно с классами, включающие в себя символические константы, inline-подстановку функций, параметры функции по умолчанию, перегруженные имена функций, операции управления свободной памятью и ссылочный тип. В С++ сохранены возможности языка C по работе с основными объектами аппаратного обеспечения (биты, байты, слова, адреса и т.п.). Это позволяет весьма эффективно реализовывать типы, определяемые пользователем. С++ и его стандартные библиотеки спроектированы так, чтобы обеспечивать переносимость. Имеющаяся на текущий момент реализация языка будет идти в большинстве систем, поддерживающих C. Из С++ программ можно использовать C библиотеки, и с С++ можно использовать большую часть инструментальных средств, поддерживающих программирование на C. Эта книга предназначена главным образом для того, чтобы помочь серьезным программистам изучить язык и применять его в нетривиальных проектах. В ней дано полное описание С++, много примеров и еще больше фрагментов программ.

Бьёрн Страуструп , Бьярн Страустрап , Мюррей Хилл

Программирование, программы, базы данных / Программирование / Книги по IT