Сопротивление изменениям в OpenSource
10 сентября 2013
Phil Sturgeon у себя в блоге поднял больную тему php internals: дружное сопротивление даже незначительным изменениям в довольно грубой форме.
Я не думаю, что это такая уж атипичная особенность именно php internals за исключением, разве что, довольно грубых выражений. Хотя на том же форуме phpclub выражаются частенько ещё более грубо.
Давайте разберёмся...
Ситуация с сопротивлением изменениям рано или поздно случается с любыми крупными проектами. Как только проект выпускает несколько релизов, формируется группа «старичков», которые изначально принимали все важные решения.
Группа начинает сопротивляться потому, как изменения могут поломать что-либо, что было отлично продумано и работало. Такое сопротивление, в общем-то, даже хорошо потому как позволяет сохранять так необходимую коммерческим проектам обратную совместимость.
Несколько другой тип отказов заключается в том, что «старички» помнят баги и особенности, которые были в том же PHP 5 лет назад. Поэтому у них создаётся впечатление, что некоторые нововведения работать не будут, будут работать криво или на их реализацию уйдёт чрезмерно много времени.
Типичные ошибки отказов две:
- Не рассказывается истинная причина отказа. По причине того, что лениво тысячу раз повторять одно и то же или по какой-то другой.
- Форма отказа часто бывает грубой, что отбивает любое желание помогать проекту в дальнейшем.
«Старички» типично и не безосновательно являются самыми влиятельными людьми в проекте. Новички частенько на веру принимают всё сказанное группой «старичков» и фактически становятся фанатиками, болезненно реагирующими на любую попытку оспорить мнение отцов-основателей. По их вине дискуссия частенько переходит на личности и становится совершенно бесполезной даже в случае если сами «старички» готовы к диалогу.
Для любого проекта с историей жизненно необходимы упрямцы с независимым мнением, которые ничего не принимают на веру и могут спокойно и без перехода на личности настаивать на своём. Для таких людей отлично работает стратегия полного игнорирования перехода на личности и грубых ничем не подкреплённых ответов. Можно представить себя роботом-терминатором, который понимает только язык логики, отбрасывая всё лишнее.
Комментарии RSS по email OK
Полностью согласен с автором. Только пост как будто не дописан. Остается стойкий вопрос: "И че делать?" Как быть логичным? Выражение "реализация этого займет слишком много времени, потому что 5 лет назад это заняло много времени" тоже логично.
Как политкорректно ты не упомянул имя старичка Quang-а :)
то есть Qiang-а, вечно путаю :)
Вопрос больной, единственное по поводу "старичков" не согласен, среди таких осторожных зачастую бывают как молодые по возрасту, так и по опыту и стажу на проекте. Это скорее особенность характера.
Самое главное - быстро понять что "старичков" изменить не получится и не факт что нужно, меняться предстоит самому. Приучиваешься собирать плюсы минусы, рассчитывать риски и обратную совместимость, смотришь на проект с точки зрения развития, кустомизации и бизнеса, учишься убеждать.
Grigori, да я сам точно таким же «старичком» стал при просмотре тикетов Yii 1.1. Главное отличие в том, что со мной нет языково-культурного барьера. Соответственно можно обсуждать что-либо не стесняясь в выражениях и донести мысль быстрее. Если в диалоге начинаются выражения, я просто «включаю терминатора».
Еще комьюнити FAR Manager этим славится, мля. Засели там такие "старички" по 20-25 лет. И хамят почти что всем подряд, кроме своей FAR Group. Поль-лям в смысле. Это можно видеть по форуму русскому.
Старички однако полезны иногда, полезны тем что как сэм и описал - знают лучше кого-либо архитктуру проекта и чего делать нельзя или что будет пустой тратой времени. Но, при должном понимании и общении думаю проблем быть не должно. Вон как я воевал с неймспейсами и формами в yii и с "live" событиями, но, при должном компромиссе все приняли и все хорошо. Думаю и в данной ситуации нужен такой компромис.
Вот именно после просмотра ответов на форуме yii и отпало желание что-то добавлять. Два варианта ответа: нет, это никому не надо; нет, у нас всё так как должно быть.
Особенно жестко отвечает и участвует в дискуссия Линус Торвальдс, его критика чаще всего огромна, довольно обоснована, но очень резка. Что касается принятия старичками нововведений в годами отлаживаемый продукт - то тут можно понять, не часто всё новое содержит кроме функционала еще и ценность, плюс поддержку и дальнейшее развитие. Добавил фичу, её одобрили и внесли в проект, а автор пропал всё дальнейшее развитие и объяснениями - на плечах старичков.
Сопротивление - дополнительный барьер, проверка для тех кто решил быть с проектом всерьёз и на долго, и это согласен - больше благо чем зло.
Тут дело даже не в каком-то отдельном проекте, а в уровне программирования. Если Вы грамотно аргументируете свою точку зрения, оппоненту нечего будет сказать, а если и будет он сам выставит себя дураком.