Почему разработчики врут?

Я разрабатываю веб приложения уже достаточно долго чтобы понять что к чему и как лежат карты.Я хочу поразмыслить, даже не о способах разработки приложений, и не о том как это делать правильно, какие средства и методы использовать. На эту тему уже сломано достаточно копей. Хочу поговорить о нас разработчиках и поделиться мыслью о том почему мне кажется что всё действительно плохо. Текст получился немного несвязный и сумбурный, прошу простить меня за это.Я часто читаю хабр и общаюсь с разного уровня разработчиками, часто вижу обсуждения на разные темы в которых употребляются слова: IOC, DI, node js, noslq, функциональное программирование, ерланг, контроль версий, паттерны проектирования… Я могу продолжать список очень долго.Встречаю разработчиков которые указывают некоторые из этих «крутых слов» в резюме. И когда я такое вижу у меня в голове постоянно вертится вопрос: «А действительно ли человек знает все эти технологии и насколько хорошо он умеет ими пользоваться?», ну вот например прочёл я книгу по mongodb и потыкался с ней в консоли в рамках изучения технологии, сделал небольшое приложение реализовал CRUD. Считается ли это достаточным знанием для того чтобы указать mongodb в резюме? Нет ну оно же понятно что мы можем указать степень владения той или иной технологией, но а что делать если человек уверен что после прочтения учебника он технологию отлично знает? По факту получается два человека, один который действительно разбирается в той или иной технологии и второй, который считает что он в ней разбирается и умеет применять. Казалось бы что это не такая большая проблема, дело в проведении интервью и отсеивании неквалифицированных специалистов, но что если я вам скажу что интервью часто для этого бывает не достаточно и в целом-то собеседования проходить не так уж и сложно. И вот представьте разрабатываете вы спокойно проект, и вдруг в него попадает такой вот человек и всё начинает медленно но верно разрушаться. Он же вроде и знает всё, но опыта недостаточно, тут ньюанс, там забыл…А потом непременно случается кризис, мы не укладываемся в сроки менеджер или какой то другой управленец стоит рядом и стучит нам по каске на тему того что пора бы сдавать проект, а у вас всё из рук валится, дедлайн рядом, всё подгорает. Скажите вы в такие ситуации вспоминаете про IOC и паттерны проектирования? Нет ну вот только честно или вы лепите костыли как надушу положит лишь бы работало? Мне можете не отвечать, ответьте себе, про себя. Мы все знаем про идеальный процесс разработки: source conrol, continuous integration, TDD, но даже если вы применяли эту схему до этого признайтесь как часто вы делали: «mcedit veryImportantFile» прямо посреди боевого сервера? Ну бывало же?

Нет конечно, наверное где то всё бывает как надо, наверное где-то всё работает отлично и процессы разработки идут как надо, может быть я просто никогда в такое не попадал? Но мне кажется важным не только знание очень крутых слов для резюме и что под ними подразумевается, но и умение применение всех этих знаний даже когда очень критическая и сложная ситуация. Мы слишком часто гонимся за своим статусом, за модными фишками и интересными нам технологиями, может быть нам иногда действительно стоит глубоко изучить те технологии которыми мы обладаем сейчас перед тем как изучать что-то новое? Как мне кажется большинство «специалистов по высоким нагрузкам» не смогут ответить на вопрос:

Какой индекс нужно повесить на таблицу, чтобы запрос SELECT value FROM T1 WHERE value=’c’ ORDER BY id DESC выполнялся оптимально?

Но при этом мы мним себя высококвалифицированными специалистами в области mysql и считаем что нам её не хватит для выполнения нужных нам задач и нам непременно нужно взять %some_magick_technology% для её решения, потому что это круто мне так Вася говорил. Я к тому, что мне действительно надоела мода на технологии. Если технология А и технология Б решают одну и ту же задачу сравнимо одинаково, почему разработчики выбирают не ту технологию которой они лучше умеют пользоваться, а ту которая наиболее модна и интересна им? Хорошо если сверху стоит какой то человек который может по рукам настучать и сказать «У нас этого зоопарка не будет». Почему мы преследуем свои цели в ущерб целям компании на которую мы работаем? Ведь мы же заранее знаем что если мы возьмём ту технологии с которой мы работали меньше, но она нам очень интересна, проект ведь потеряет в качестве.Ну а в итоге то что самое важное? Как мне кажется, самое важное это чтобы поставленными нам задачи были выполнены верно и качественно, и ведь технологии тут роль имеют не первоочередную. Важна в первую очередь наша ответственность и честность прежде всего перед самим собой.

© Habrahabr.ru