Вероятно, это будет один из немногих постов, где я буду меньше говорить о коде и больше о людях (и их поведении).

Прочитав сообщение в блоге Джона Скита о Stack Overflow, я вспомнил, что у меня был похожий опыт, когда я задал вопрос на The Workplace, дочернем сайте Stack Overflow, а также на сайте вопросов и ответов по вопросам, касающимся рабочего места, а не программирования. .

На сегодняшний день я до сих пор не решил принять ни один из ответов на мой первоначальный вопрос:

Как я могу иметь дело с менеджерами, которые отказываются использовать распространенные шаблоны разработки программного обеспечения?

Честно говоря, я нашел несколько полезных для меня ответов. Но большинство из них? Большинство комментариев/ответов просто были сосредоточены на том, как мне не следует злоупотреблять шаблонами, и мой босс был прав.

Так почему я не прислушиваюсь к этим предложениям из ответов/комментариев?

Потому что им не хватает точки зрения ОП, меня. Они:

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

И все же большинство ответов сводились к следующему: «Вы использовали шаблоны проектирования неправильно», «Вы перестарались», «Ваш начальник был прав» и т. д.

Черт, я был так расстроен, что даже добавил обновление к исходному сообщению:

Обновлять

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

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

Честно говоря, я очень разочарован, увидев так много ответов с сильным стереотипом «Почему вы, инженеры, не можете думать как менеджеры». В конце концов, все можно назвать чрезмерной инженерией: зачем помечать поля как private вместо того, чтобы выставлять все напоказ, зачем выполнять модульное тестирование, если ни один пользователь не собирается выполнять только один модуль и т. д.

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

Извините, если это звучит как разглагольствование. Я ищу ответы типа «как мы можем найти золотую середину» вместо снисходительных ответов типа «инженеры думают, что они умны, применяя шаблоны проектирования, которые никто не понимает».

Есть ли проблема в том, как работают SO и родственные сайты?

Не поймите меня неправильно, Stack Overflow — отличный сайт. Там я изучил большую часть своего языка C#/F#/Haskell. Его простота использования и система ответов, голосование за которую проголосовали пользователи, — одна из лучших систем, которые я когда-либо видел.

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

Теперь я искренне верю, что большинство комментаторов/ответчиков искренне убеждены в том, что мне следует проявить здравый смысл и не спорить со своим менеджером. Однако это не означает, что они должны давать ответ, основанный на номинальной стоимости. На самом деле, основываясь на мнении моих коллег, все они согласились с тем, что мое использование шаблонов проектирования оправдано и определенно улучшило качество кодовой базы. Ответы/комментарии учитывали это? Я так не думаю.

Есть ли шанс, что ответы верны, а я ошибся в использовании шаблонов проектирования?

Конечно, да. Но я бы не знал. Я не могу поделиться своей проприетарной кодовой базой со всеми людьми, которые откликнулись, и позволить судить.

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

Это проблема переполнения стека?

Stack Overflow разработан как сайт вопросов и ответов для конкретных вопросов по программированию. Если вопросы правильно сформулированы, на них, как правило, даются очень конкретные и объективные ответы; Вопросы на рабочем месте, особенно те, которые связаны с трудовыми отношениями, по самой своей природе очень субъективны.

Без надлежащей модерации я не вижу, как я могу получить хороший ответ на свой вопрос.

Дорогие читатели, если у вас есть хорошее предложение, не стесняйтесь пролить свет и прокомментировать.