Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги хакеры / Питер_Гудлиф_Ремесло_программиста_Практика_написания_хорошего_кода.pdf
Скачиваний:
16
Добавлен:
19.04.2024
Размер:
9.23 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

Болезни,m

которым подвержены команды

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

417Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

рабочей функции и усиливает свою власть. Приближение диктату% ры вы можете заметить, если обнаружите, что часто произносите такие фразы:

Я не могу этого сделать, не посоветовавшись с…

Нет, …будет недоволен, если мы поступим таким образом.

Но … говорит, что сначала мы должны сделать…

Выход из ситуации

Если ваш Диктатор недостоин роли руководителя группы, нужно исправлять положение. В противном случае ваша команда зачах% нет под игом тирании. Либо обсудите с ним эти проблемы (честно говоря, это вряд ли принесет успех – люди с трудом меняются, осо% бенно если у них повышенное самомнение), либо сместите его, объ% яснив проблему менеджеру.

Освободившись от самовластия, вы должны либо изменить струк% туру команды, либо обзавестись новым царем. Главные хирурги на дороге не валяются, поэтому, вероятно, лучше будет изменить орга% низацию команды.

Стратегия успеха

В условиях Диктатуры (функционирующей нормально или ненор% мально) определите свой уровень полномочий и ответственности. Посоветуйтесь по этому поводу с тем, чье мнение действительно имеет вес – с менеджером или руководителем команды.

Однако после утверждения для себя справедливой роли в разработке вы (и остальные программисты) все равно должны прислушиваться к Диктатору и работать вместе с ним, даже если вам не нравится его нынешняя позиция. В противном случае у вас не получится совмест% ной работы и вы не сможете писать код, который будет стыковаться. Проект должен быть единым, иначе программа не будет работать.

Не следует проявлять неуважение или грубость в отношении Дик% татора; это лишь снизит моральный дух команды и обозлит вас.

Демократия

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

манды периодически выбирают лидера из числа своих членов исходя из того, чьи навыки наиболее востребованы на данном этапе проекта.

 

 

 

 

hang

e

 

 

 

 

 

 

C

 

E

 

 

 

X

 

 

 

 

 

-

 

 

 

 

 

d

 

F

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

to

 

 

 

 

w Click

 

 

 

418m

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

.

 

 

 

 

 

.c

 

 

p

 

 

 

 

g

 

 

 

 

df

 

 

n

e

 

 

 

 

-xcha

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

Глава 17. Вместе мы – силаClick

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Часто явного лидера нет, и все решения принимаются по общему со% гласию. Такой схеме, как правило, следуют разработки open source.

Мы иногда забываем вторую часть поговорки: «Все люди созданы рав# ными, но потом отдаляются друг от друга». Такая культура коман% ды может быть действенной только при особом подборе участников. Опасность для команды, основанной на таком похвальном принципе, заключается в том, что по мере ее роста или при уходе одного из участ% ников (того, кто стимулирует принятие группой решений) могут воз% никнуть проблемы. Команда может утратить целеустремленность, не будучи в состоянии достичь согласия ни по какому вопросу и вовремя получать результаты. В пределе команда бесконечно обсуждает один и тот же вопрос, созерцает свой пупок и ничего не может добиться.

Проводя бесконечные совещания и одни и те же дискуссии, команда подвергается опасности аналитического паралича: сосредоточиться на процессе, а не на осуществлении проекта. Как и при реальной демо% кратии, настоящие дела могут потонуть в море политиканства.

Можно нечаянно прийти к Демократии, если руководитель команды неэффективен и не способен принимать решения. Такой неудачный лидер постепенно теряет возможность управлять, сам того не замечая. Разочарованная команда начинает коллективно брать на себя его роль, требуя принятия решений и выбирая направление разработки.

Кризис команды проходит особенно тяжело, когда она устроена по де% мократическому принципу, даже если такая организация выбрана на% меренно. Если межличностные разногласия не позволяют выбрать нужного в текущей ситуации лидера, необходимо передать руководст% во проектом лидеру, взятому со стороны.

Признаки опасности

Больная Демократия видна за версту: скорость, с которой принима% ются решения, катастрофически падает. Если руководитель и су% ществует, то все делается помимо него, чтобы не сталкиваться с его нерешительностью. Руководителем он остается только номиналь% но; никто не признает его власти или способности чего%то добиться.

Вотсутствие руководства никто ни за что не отвечает; непонятно, кто должен обеспечить выполнение задачи, поэтому ничего не дела% ется. Проходят недели, а спецификация по%прежнему не законче% на, и никакого прогресса не видно.

Вусловиях разгула демократии необходимость принятия малейше% го решения переводит команду в режим комитета, который работа% ет несколько дней. Или принимается решение типа «Пусть будет так, пока мы не решим иначе». «Но да будет слово ваше: да, да; нет, нет; а что сверх этого, то от лукавого»,1 иначе вы будете вечно

1 Матфей 5:37. Если же вы вавилонский строитель, то ваше «да» может быть Oui, а ваше «нет» – Nein!

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

Болезни,m

которым подвержены команды

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

419Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

перелопачивать старый код, как только кто%то решит, что нужно сделать иначе.

Можно также обратить внимание на отчуждение молодых програм% мистов из%за невозможности стать лидерами.

Выход из ситуации

Цель демократии – устранить специфическое препятствие: приня% тие решений боссом, который не всегда для этого достаточно компе% тентен (особенно если он не разбирается в технике). В неправильно функционирующей демократии нет процедуры принятия решений, и решения не принимаются ни на каком уровне. Чтобы вернуться к здоровой демократии, обеспечьте возможность свободного пере% мещения руководства в команде и легкость замены лидера. Не пы% тайтесь организовывать демократию, пока у вас не будет достаточ% но потенциальных лидеров.

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

Можно попытаться поправить нерешительную Демократию, проде% монстрировав сильную волю; не миритесь с ухудшением положе% ния. Возможно, вас назовут смутьяном, но в конце концов ваше умение достичь результата будет оценено. Однако остерегайтесь са% ми превратиться в полудиктатора.

Стратегия успеха

Ради собственного блага избегайте людей, не способных решать простейшие вопросы.

Постарайтесь, чтобы вам выделили четко определенную часть про% екта и поставили реалистичные сроки. Такой якорь удержит вас во время приливов и отливов нерешительного руководства.

СтанцияNспутник

Команда%сателлит, отколовшаяся от ос% новной команды разработчиков, созда% ет условия для проявления специфиче% ских неприятностей и ловушек. Трудно работать сплоченным коллективом, ко% гда часть его физически отделена – как отрубленная рука.

Сателлитом может оказаться целый ме% стный отдел или часть вашей команды, размещенная по другому адресу. Рабо# та на дому представляет собой частный случай, когда сателлит состоит из одно% го человека.

 

 

 

 

hang

e

 

 

 

 

 

 

C

 

E

 

 

 

X

 

 

 

 

 

-

 

 

 

 

 

d

 

F

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

to

 

 

 

 

w Click

 

 

 

420m

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

.

 

 

 

 

 

.c

 

 

p

 

 

 

 

g

 

 

 

 

df

 

 

n

e

 

 

 

 

-xcha

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

Глава 17. Вместе мы – силаClick

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

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

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

Физически разделенные команды лишены возможности нефор% мального общения, которое случается возле кофеварки. Они не мо% гут просто и динамично сотрудничать. Уровень общего постижения и группового понимания кода становится ниже.

Разработка теряет связность. Местная практика и культура разра% ботки на каждой территории будут различаться (пусть даже незна% чительно). Отсутствие единообразия в методологиях затрудняет пе% редачу работы.

Поскольку вы не очень хорошо знакомы с людьми из команды%са% теллита, то неизбежно относитесь к ним с меньшим доверием и теп% лотой. Возникает разделение мы и они.

Старая поговорка гласит: «С глаз долой – из сердца вон». Не встре% чаясь регулярно с коллегами из команды%сателлита, вы забываете про них, не знаете, как у них идут дела, и не задумываетесь над тем, какое значение для них имеет ваша работа (технически или процедурно).

Наличие сателлитов элементарно затрудняет общение. Приходится выяснять графики работы других программистов: когда у них сове% щание или отпуск.

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

Признаки опасности

Когда команды разделены географически, тут все ясно, но разделе% ние может происходить и в пределах одного офиса. Рассадив разра% ботчиков по разным комнатам, вы создаете искусственные барье% ры, которые могут помешать сотрудничеству.

Остерегайтесь и разобщения между подразделениями. Оно тоже мо% жет нанести ущерб. Например, команды тестеров часто располага% ются отдельно от разработчиков, иногда в другом здании или сек% ции. Это никуда не годится; важное взаимодействие между двумя командами затруднено, а в результате страдает процесс контроля качества.