Часть I . Найди свой рынок
работы или повышении . Когда список будет готов, честно оцени каждый из
пунктов: насколько твоим решением в данной ситуации управлял страх? Что
бы ты сделал, если бы страха не было? Если решение было принято под вли-
янием страха, как изменить его или найти аналогичную ситуацию, в которой
можно будет действовать уже более взвешенно и обдуманно?
Совет 7
.
Будь универсалом
По меньшей мере пару десятилетий доведенные до отчаяния менед-
жеры и предприниматели делают вид, что разработка программного
обеспечения представляет собой технологический процесс. Пишутся
технические требования, а архитекторы воплощают их в высоко-
уровневых проектах. Проектировщики дополняют их подробной
проектной документацией, которая затем передается кодерам, на-
поминающим роботов. В одной руке они держат описание задачи,
а другой сонно набирают реализацию проекта. Готовый код получает
инспектор номер 12, который никогда не поставит гриф «Согласова-
но» при несоответствии исходным техническим требованиям.
Тому, что менеджеры хотят превратить разработку программного
обеспечения в производство, удивляться не стоит. Менеджеры
по
нимают
, как управлять производством. Многолетний опыт научил
нас эффективно и точно создавать физические объекты. Значит, при-
менив те же самые принципы, мы сможем оптимизировать процесс
разработки программного обеспечения, превратив его в такой же
хорошо отлаженный механизм, как фабричное производство.
Все сотрудники так называемой фабрики по производству программ
являются специалистами. Они занимают свои места в конвейерной
цепочке, при помощи своих инструментов соединяя друг с другом
Java-компоненты или шлифуя шероховатости приложений, написан-
ных на языке Visual Basic. Инспектор № 12 работает тестировщиком.
К нему стекаются компоненты программ, и он каждый день едино-
образно проверяет их и ставит штамп. J2EE-проектировщики создают
J2EE-приложения. C-кодеры пишут код на языке C. Это крайне про-
стой и поделенный на четкие категории мир.
43
Совет 7 . Будь универсалом
Но, к сожалению, аналогия с производством не работает.
Программы
должны быть не менее гибкими, чем требования к ним. В бизнесе
все меняется, и бизнесмены знают, что программное обеспечение
вполне можно изменить в соответствии с новыми требованиями. Это
означает, что архитектура, дизайн, код и тесты должны создаваться
и пересматриваться более динамично, чем может предложить самый
рациональный производственный процесс.
В столь быстро меняющейся среде только гибкость позволит добить-
ся превосходных результатов. В затруднительной ситуации умные
бизнесмены обращаются к профессионалам, которые могут сразу
решить проблему. Как же стать человеком, имя которого первым де-
лом вспоминают, когда требуется супергерой, способный всех спасти?
В данном случае все дело в умении решать все проблемы, которые
только могут возникнуть.
Что это за проблемы? Ты этого не знаешь. И я не знаю. Известно
только
, что они столько же разнообразны, как вопросы развертыва-
ния, как критические недостатки дизайна, которые следует быстро
устранить и провести повторную реализацию, как интеграция не-
однородных систем, как ситуативная генерация отчетов. Столкнув-
шись с настолько разнородным набором проблем, бедный инспектор
номер 12 довольно быстро допустит сбой в своей работе.
Поговорка «и швец, и жнец, и на дуде игрец» изначально имеет уничи-
жительный смысл, подразумевая под собой человека, который из-за
неумения концентрироваться не смог детально изучить ни одного
дела и достичь в нем подлинного мастерства. Но когда приложение
для покупок в твоем интернет-магазине перестает работать, каждый
час лишая тебя заказов на сотни долларов, нужен человек, который
не только знает, как функционирует код данного приложения, но
и может произвести низкоуровневую отладку процессов на сервере,
работающем под управлением UNIX, проанализировать конфигурацию
системы управления реляционной базой данных на предмет влияющих
на производительность «узких мест», проверить конфигурацию марш-
рутизатора. И, что куда важнее, обнаружив проблему, этот мастер на
все руки сможет быстро принять решение по поводу архитектуры и ди-
зайна, внести в код исправления и подготовить новую версию системы
к работе. В подобной ситуации производственный сценарий в лучшем
44
Do'stlaringiz bilan baham: |