Reflections on Peopleware – Part 1

Ай-ай-ай, как же это я забыл закросспостить. Исправляюсь.
Пока Windows7 неумолимо движется к завершению (FTW), на работе спадают страсти, свирепствует грипп, а погода меняется от замечательной к обычной, я сижу дома и читаю книжки. Я
теперь почти везде читаю – аудиокнижки завоевывают жизнь в автомобиле и оттуда осаждают спорт и быт.

Вот, например, я несколько месяцев назад таки осилил классику софтверного project management – Peopleware ДеМарко и Листера.

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

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


Первая часть – про сравнение софтвера с традиционным производством.

Говорят очевидные вещи – что development очень отличается от production (у нас, слава богу, стоимость production нулевая), процессам вредит излишняя стандартизация – главная задача исполнителя думать, нельзя процессами компенсировать работу мозга.
Уточняют отличия – спокойнее относиться к ошибкам, так как все новое и многое не узнать, пока не попробуешь; не помогает людей пинать, потому что от пинков быстрее думать не начинаешь; заменять людей очень тяжело, медленно и дорого.

Что тут сказать… well, duh (но надо помнить, это книжка 1987 года).

Следующий набор мыслей про последствия давления на людей:
- овертайм _всегда_ приводит к такому же или большему undertime – т.е. люди как минимум такое же количество времени работают менее продуктивно. Это легко не заметить.
- у овертайма есть долговременные последствия – жизнь проходит мимо
- с трудоголиками нужно очень осторожно – если додавливать до предела, то рано или поздно сгорят с концами
- самое дорогое последствие овертайма – как влияет на текучку кадров. Пишут, никто не даже не пытается оценить этот фактор.
- People under time pressure don’t work better, they just work faster.

В Windows (да и вообще в MS) в этом смысле все очень хорошо. У меня за два года кранчи случались всего пару раз и длились не больше недели, менеджеры не наседают и почти никогда не предлагают поработать по выходным. У меня был тиммейт, который именно поэтому пришел в MS из геймдева и даже не думал обратно.
С другой стороны, если ты сам хочешь въебывать – сколько угодно, и если у тебя получается продуктивно – это конечно окупается. То есть, прецеденты, когда отсутствие жизни очень помогает в карьере, я видел. Видел хорошие карьеры и без этого, впрочем. Что логично – если получается больше делать, это приемущество, но надо еще знать что.

Еще у них неожиданные наблюдения про “качество против времени”.
Во-первых, что делать некачественный продукт люди не любят (с последствиями). Это понятно.
Во-вторых, что внутренний стандарт качества исполнителей типично выше необходимого менеджменту (даже сильнее, маркету). Это допустим.
И в-третьих, неожиданное – от повышения качества вне необходимого растет продуктивность, потому что мол больше мотивации и люди начинают работать над процессами и тулами, которые окупаются.

Я прям не знаю. Я очень хорошо вижу, что в Windows (и, по рассказам, в Office) от размера проекта и очень высокого качества кода (да-да, очень высокого) все очень медленно. Багфиксинга – более 50% времени разработки, чинить один баг в день – хорошо, а два – подвиг. Тест-команда такого же размера и квалификации, что дев – ибо полностью покрывать Windows автоматическими тестами.
С другой стороны, быстрый билд, очень мощный отладчик, тулзы для code review и прочее-прочее. Может, если изначально туда бы не целились, и вообще бы не взлетело. Возможно, они хотят сказать, что нужно инвестировать в инфраструктуру дальше, чем на сейчас.
А у вас есть мнение?

Последний их тезис на сегодня – Parkinson’s Law revisited.
Все знают, что такое закон Паркинсона – работа занимает все выделенное на нее время, вне зависимости от его количества.
Они считают, что к нам с вами он не применим, потому что мы в основном получаем удовлетворение от сделанной работы и понимаем, что жизнь коротка, и хочется многое успеть. Считают, что если в хорошей команде кто-то никак не может что-то закончить – это чаще не из-за лени. И даже когда из-за лени – то лучше если пинают товарищи по команде, чем менеджер.
(я уже говорил, что это светлая и добрая книжка?)
Приводят некие исследования, в которых измеряется продуктивность в зависимости от установления срока. Хуже всего, когда срок оценивает менеджер (и он получается самым маленьким), лучше – когда сам, еще лучше – когда без оценки.

Про слабую корреляцию агрессивного дедлайна/пинания жопы с производительностью – я согласный (что через вопросы “как там?”, что через менеджерское дилдо). С возрастом я скорее более прямо говорю “нет, это займет вот столько” и “я тут проебал, надо больше времени” и на пинки реагирую все спокойнее. (Джоэль, кажется, об этом же пишет)
Важный момент, мне кажется – дело скорее не в распиздяйстве, а в размазывании фокуса, т.е. когда начинаешь много тратить времени на необязательные возникшие проблемы. Но опять же, это не вылечить наличием дедлайна – это опыт, это “узнавать о проблеме рано и поправлять расписание”.
Одним словом, не верю я в мотивацию сроками, но верю, что помогает фокусу.