Особая благодарность George R. NICA за его проницательный обзор.

Вы когда-нибудь не знали, как ориентироваться в противоречивых мнениях разработчиков программного обеспечения? Возможно, вы сталкивались с такими заголовками, как "ООП — отстой!", "Тестирование по-прежнему необходимо?", "Инструмент X — это зло" или "Аджайл мертв?". Я даже не могу вспомнить, сколько раз мне приходилось заново учиться тому, что я считал правильным, потому что я был сбит с толку в социальных сетях. Конечно, было много раз, когда я действительно думал, что то, что я узнал сначала, было правильным. Даже мои предложения выше звучат запутанно, не так ли?

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

Так что же покажет правду, как маяк, по таким спорным и необходимым вопросам, чтобы их правильно поняли? Как уберечься от популистских дебатов и принимать правильные решения по большим и важным вопросам? Вот чему я научился на собственных взлетах и ​​падениях:

Инвестируйте в межличностные навыки:

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

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

Развить самосознание:

Возможно, вам знакомы мудрые слова Сократа: Познай себя. Эта фраза часто интерпретируется как важность понимания и осознания собственных мыслей, чувств и мотивов. Даже сегодня, по мнению авторов книги Как стать лучшим лидером, самосознание считается самой важной чертой, которую лидеры должны развивать.

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

Оставаться в центре:

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

Используйте инструменты, а не используйте инструменты:

В настоящее время каждый продукт продается со своей собственной культурой. Вместо того, чтобы сказать "Я разработал инструмент X, используйте его", вы увидите такие заявления, как "Наш инновационный инструмент X в 32 раза быстрее, чем его конкуренты". Второй утверждение гораздо убедительнее, не так ли? Для компаний важно использовать культурные элементы для продажи своей продукции, иначе ни один продукт не будет интересен. Мы часто сталкиваемся с отличными продуктами через эффективную рекламу, но мы обязаны оставаться рациональными и скептически относиться к этой привлекательности.

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

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

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

Нам нужно бросать вызов даже самым устоявшимся системам и процессам, но мы никогда не можем недооценивать их важность.

Кликбейты могут повредить вашей стратегии:

Одна из стратегий в социальных сетях — использовать кликбейт, чтобы заинтересовать читателя. Заголовок-приманка обычно представляет собой необычное утверждение, которое ставит под сомнение ваше понимание чего-либо. Хотя для нас это возможность проверить то, что, как мы думаем, мы знаем лучше всего, иногда это может привести к тому, что мы ошибаемся.

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

Двигайтесь дальше разработки — будьте солидным инженером:

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

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

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

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

Это то, чему я научился на протяжении всей своей карьеры. Теперь ваша очередь поделиться своим. Как вам удается постоянно изучать новые технологии и реализовывать свои проекты с правильными решениями? Самое главное, как оставаться неподкупным? Пожалуйста, поделитесь в разделе комментариев.