| Семен ( @ 2009-05-04 00:26:00 |
| Entry tags: | books, tech |
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.
Все знают, что такое закон Паркинсона - работа занимает все выделенное на нее время, вне зависимости от его количества.
Они считают, что к нам с вами он не применим, потому что мы в основном получаем удовлетворение от сделанной работы и понимаем, что жизнь коротка, и хочется многое успеть. Считают, что если в хорошей команде кто-то никак не может что-то закончить - это чаще не из-за лени. И даже когда из-за лени - то лучше если пинают товарищи по команде, чем менеджер.
(я уже говорил, что это светлая и добрая книжка?)
Приводят некие исследования, в которых измеряется продуктивность в зависимости от установления срока. Хуже всего, когда срок оценивает менеджер (и он получается самым маленьким), лучше - когда сам, еще лучше - когда без оценки.
Про слабую корреляцию агрессивного дедлайна/пинания жопы с производительностью - я согласный (что через вопросы "как там?", что через менеджерское дилдо). С возрастом я скорее более прямо говорю "нет, это займет вот столько" и "я тут проебал, надо больше времени" и на пинки реагирую все спокойнее. (Джоэль, кажется, об этом же пишет)
Важный момент, мне кажется - дело скорее не в распиздяйстве, а в размазывании фокуса, т.е. когда начинаешь много тратить времени на необязательные возникшие проблемы. Но опять же, это не вылечить наличием дедлайна - это опыт, это "узнавать о проблеме рано и поправлять расписание".
Одним словом, не верю я в мотивацию сроками, но верю, что помогает фокусу.
Crossposted to blog.gamedeff.com