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

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

Военные маневры разработчиков: наблюдаемые факторы производительности

За не­сколь­ко лет до вы­хо­да в свет пер­во­го из­да­ния этой кни­ги мы на­ча­ли еже­год­но про­во­дить от­кры­тое ис­сле­до­ва­ние про­из­во­ди­тель­но­сти. К на­сто­яще­му мо­мен­ту в ис­сле­до­ва­ни­ях при­няли уча­стие бо­лее трех­сот ор­га­ни­за­ций со все­го мира. В ко­неч­ном ито­ге мы на­ча­ли про­во­дить это еже­год­ное ис­сле­до­ва­ние в виде от­кры­то­го кон­кур­са, ко­ман­ды-участ­ни­цы ко­то­ро­го со­сто­яли из про­грам­ми­стов раз­лич­ных ор­га­ни­за­ций. Ко­ман­ды пи­са­ли код за­дан­но­го при­ло­же­ния и те­сти­ро­ва­ли этот код на вре­мя. Мы на­зва­ли эти со­рев­но­ва­ния во­ен­ны­ми ма­невра­ми раз­ра­бот­чи­ков (Coding War Games). Про­хо­дят они сле­ду­ю­щим об­ра­зом:

Бо­е­вую еди­ни­цу со­став­ляют два раз­ра­бот­чи­ка из од­ной ор­га­ни­за­ции. Участ­ни­ки пары ра­бо­та­ют не сов­мест­но, но друг про­тив дру­га, а так­же про­тив всех дру­гих пар.

Оба участ­ни­ка пары вы­пол­няют со­вер­шен­но оди­на­ко­вую ра­бо­ту: про­ек­ти­ру­ют, со­зда­ют и те­сти­ру­ют сред­не­го раз­ме­ра про­грам­му по на­шей спе­ци­фи­ка­ции.

Вы­пол­няя упраж­не­ния, участ­ни­ки за­пи­сы­ва­ют по­тра­чен­ное вре­мя в спе­ци­аль­ный жур­нал.

Ко­гда все участ­ни­ки за­вер­ша­ют те­сти­ро­ва­ние, ре­зуль­та­ты про­хо­дят наши стан­дарт­ные про­це­ду­ры при­ем­ки.

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

Все ре­зуль­та­ты со­хра­няют­ся в тай­не.

За пе­ри­од с 1984 по 1986 годы бо­лее 600 раз­ра­бот­чи­ков из 92 ком­па­ний при­няли уча­стие в ма­неврах. Ин­те­рес от­дель­но­го участ­ни­ка в том, что­бы оце­нить свое по­ло­же­ние от­но­си­тель­но дру­гих. Ин­те­рес ком­па­нии в том, что­бы оце­нить свою эф­фек­тив­ность от­но­си­тель­но дру­гих ком­па­ний, участ­ву­ю­щих в со­стяза­ни­ях. А наш ин­те­рес в том, что­бы мно­го все­го узнать о фак­то­рах, вли­яю­щих на про­из­во­ди­тель­ность. Эти фак­ты мы и об­су­дим ниже в дан­ной гла­ве.

Индивидуальные различия

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

Рис. 8.1. Ва­ри­а­ции про­из­во­ди­тель­но­сти

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

От­но­ше­ние про­из­во­ди­тель­но­сти луч­ших со­труд­ни­ков к про­из­во­ди­тель­но­сти худ­ших со­став­ляет при­мер­но 10:1.

Наи­бо­лее про­из­во­ди­тель­ный со­труд­ник в 2,5 раза бо­лее про­из­во­ди­те­лен, чем сред­ний.

Наи­бо­лее про­из­во­ди­тель­ная по­ло­ви­на со­труд­ни­ков име­ет в 2 раза боль­шую про­из­во­ди­тель­ность, чем ме­нее про­из­во­ди­тель­ная по­ло­ви­на.

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

Ре­зуль­та­ты во­ен­ных ма­нев­ров раз­ра­бот­чи­ков до­ста­точ­но точ­но со­от­вет­ство­ва­ли та­ко­му рас­пре­де­ле­нию. В ка­че­стве при­ме­ра рас­смот­рим рис. 8.2, на ко­то­ром по­ка­за­но рас­пре­де­ле­ние за­трат вре­ме­ни на до­сти­же­ние пер­во­го про­ме­жу­точ­но­го фи­ни­ша (чи­стая ком­пи­ля­ция, го­тов­ность к те­сти­ро­ва­нию) для ре­аль­но про­во­див­ших­ся ма­нев­ров.

Рис. 8.2. Ва­ри­а­ции про­из­во­ди­тель­но­сти для от­дель­ных участ­ни­ков

Луч­шая про­из­во­ди­тель­ность в 2,1 раза пре­вы­ша­ет сред­нюю. Луч­шая по­ло­ви­на опе­ре­жа­ет худ­шую в со­от­но­ше­нии 1,9:1. Ре­зуль­та­ты по­сле­ду­ю­щих ма­нев­ров были прак­ти­че­ски иден­тич­ны этим.

Что не влияет на производительность

Ис­сле­дуя ре­зуль­та­ты со­стяза­ний, мы об­на­ру­жи­ли, что сле­ду­ю­щие фак­то­ры сла­бо вли­яли на про­из­во­ди­тель­ность или не вли­яли во­все:

Язык: Раз­ра­бот­чи­ки, ис­поль­зо­вав­шие ста­рые язы­ки, та­кие как COBOL или Fortran, вы­пол­няли за­да­ние не хуже тех, кто пи­сал на Pascal и С. Вну­три каж­дой язы­ко­вой груп­пы рас­пре­де­ле­ние про­из­во­ди­тель­но­сти было та­ким же, как в це­лом по вы­бор­ке. Един­ствен­ным ис­клю­че­ни­ем из это­го на­блюде­ния стал язык ас­сем­бле­ра: участ­ни­ки, пи­сав­шие на ас­сем­бле­ре, силь­но от­ста­ли от всех осталь­ных язы­ко­вых групп. (Впро­чем, люди, пи­шу­щие на ас­сем­бле­ре, при­вык­ли к та­ко­му по­ло­же­нию ве­щей.)

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

Ко­ли­че­ство не­до­че­тов: Око­ло тре­ти участ­ни­ков вы­пол­няли упраж­не­ние с ну­ле­вым ко­ли­че­ством не­до­че­тов. В це­лом не было от­ме­че­но сни­же­ния про­из­во­ди­тель­но­сти из-за бо­лее вы­со­кой точ­но­сти ра­бо­ты. (Бо­лее того, в сред­нем эта треть участ­ни­ков вы­пол­няла за­да­ние бы­стрее, чем участ­ни­ки, до­пус­кав­шие не­до­че­ты.)

Зар­пла­та: Уро­вень зар­пла­ты до­ста­точ­но силь­но ва­рьи­ро­вал­ся для вы­бор­ки. Меж­ду зар­пла­той и про­из­во­ди­тель­но­стью на­блюда­лась весь­ма сла­бая связь. Луч­шая по­ло­ви­на по­лу­ча­ла не бо­лее 10% сверх худ­шей, но ра­бо­та­ла по­чти в два раза эф­фек­тив­нее. Рас­пре­де­ле­ние про­из­во­ди­тель­но­сти для любо­го уров­ня зар­пла­ты было при­мер­но та­ким же, как для вы­бор­ки в це­лом.

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

Об этом не стоит рассказывать боссу

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

По­че­му это так важ­но? Дело в том, что, хотя пары не ра­бо­та­ли сов­мест­но, участ­ни­ки каж­дой пары про­ис­хо­ди­ли из од­ной ор­га­ни­за­ции. (В боль­шин­стве слу­ча­ев ор­га­ни­за­цию пред­став­ляли лишь два участ­ни­ка.) Они ра­бо­та­ли в од­ной фи­зи­че­ской сре­де и про­ис­хо­ди­ли из од­ной кор­по­ра­тив­ной куль­ту­ры. Тот факт, что у них была прак­ти­че­ски оди­на­ко­вая про­из­во­ди­тель­ность, поз­во­ляет пред­по­ло­жить, что ши­ро­кое рас­пре­де­ле­ние спо­соб­но­стей сре­ди участ­ни­ков ма­нев­ров не­воз­мож­но в ор­га­ни­за­ции: любые два че­ло­ве­ка из од­ной ор­га­ни­за­ции, как пра­ви­ло, име­ют близ­кую про­из­во­ди­тель­ность. Это озна­ча­ет, что луч­шие ра­бот­ни­ки на­кап­ли­ва­ют­ся в опре­де­лен­ных ор­га­ни­за­ци­ях, в то вре­мя как в дру­гих со­би­ра­ют­ся худ­шие. Этот эф­фект Хар­лан Мил­лз (Harlan Mills), один из пи­о­не­ров раз­ра­бот­ки про­грамм­но­го обес­пе­че­ния, пред­ска­зал в 1981 году:

Та­кой раз­брос [10:1] в про­из­во­ди­тель­но­сти от­дель­ных про­грам­ми­стов по­нятен, но су­ще­ству­ет точ­но та­кой же раз­брос в про­из­во­ди­тель­но­сти ор­га­ни­за­ций, раз­ра­ба­ты­ва­ю­щих про­грамм­ное обес­пе­че­ние.

Наше ис­сле­до­ва­ние по­ка­за­ло огром­ные раз­ли­чия меж­ду 92 ор­га­ни­за­ци­ями, при­няв­ши­ми в нем уча­стие. В це­лом по вы­бор­ке про­из­во­ди­тель­ность луч­шей ор­га­ни­за­ции (то есть по­ка­зав­шей луч­шую сред­нюю про­из­во­ди­тель­ность сво­их со­труд­ни­ков) бо­лее чем на по­рядок выше про­из­во­ди­тель­но­сти худ­шей. Код, со­здан­ный участ­ни­ка­ми из бы­стрей­шей ор­га­ни­за­ции, ока­зал­ся не толь­ко са­мым бы­стрым, он так­же про­шел основ­ные при­е­моч­ные ис­пы­та­ния.

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

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

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

Отметить Добавить цитату
×