Комментарии 361
И, вот чудо, в этом Nest нет никакой документации, она продаётся за деньги.
Вроде как на сайте вся дока открыта https://docs.nestjs.com/
Как бы да, но по факту, если вы её почитаете, вы обнаружите, что она очень урезанная. И когда вам нужно запустить Redis со специальными параметрами вы находите себя посереди их git репозитория, пытаясь разобраться, что и как там делать.
Если честно, то я уже и не помню современных открытых сервисов, для которых документация на сайте полна и не надо лезть в гит. И благодарение богу, что код есть там.
Laravel. Документация не содержит API Reference в принципе (если не считать отдельные генерированные доки почти без комментариев, которые ещё найти надо); только мануал, смахивающий по линейности на туториал. За визуальный дизайн страниц документации - бонусные вилы.
Просто ярко помню, как регулярно рылся в коде фреймворка на непривычном мне языке.
winapi в msdn
Qt. Не сервис, но и документация и исходники — всё есть и сделано отлично
Это никак нельзя назвать "нет никакой документации". Документация там очень даже полная, причем в этом может убедится вообще любой человек, перейдя по ссылке, начинать статью с клеветы - очень сомнительно.
Полная? Ну вот смотрите, открываем вот эту страницу — https://docs.nestjs.com/microservices/basics, и видим вызов NestFactory.createMicroservice
. Что он вообще делает? Я дочитал эту страницу до конца, но так и не увидел ответа на этот вопрос. Да блин, там нет даже описания возвращаемого значения!
А что делать если мне нужен микросервис с конечными точками HTTP и связью через Redis? Ну вот архитектура такая некузявая вышла, как с ней жить-то? HTTP требует бутстрап строго через NestFactory.create
, Redis требует бутстрап строго через NestFactory.createMicroservice
, как их совмещать-то?
А уж рекламные баннеры посреди документации — это вообще херня какая-то. Первый раз вижу такое в официальной документации, как будто на неофициальный форум из прошлого десятилетия попал.
А ведь ответ на ваш вопрос есть по вашей ссылке, посмотрите этот раздел - https://docs.nestjs.com/microservices/basics#client
Собственно вам нужно сделать обычный апп и общаться через клиент с другими микросервисами. Как говорится - мануал ваш лучший друг.
А, так чтобы подключить клиента не требуется выполнять инструкции из секции Getting started? Это было ну вот вообще неочевидно...
PS но мне всё ещё интересно что нужно делать если нужны конечные точки как HTTP, так и Redis, хоть уже и не настолько
Навскидку видится решение создать 2 инстанса МС через разные методы и искуственно синхронизировать медду собой
Да, это возможный вариант. Но тут снова возникает вопрос "а что вообще эти методы делают", потому что, к примеру, в ASP.NET Core метод IHost.Run по умолчанию ожидает консольного ввода чтобы остановить сервер по нажатию Enter, а потому при попытке запустить два хоста в параллель лучше бы подменить им лайфтайм.
А вот какие проблемы возникнут при запуске в параллель двух приложений NestJS, что им нужно подменить и как вообще это делается — из документации вообще не ясно. Нет даже информации о типах!
Информацию о типах предоставляет тайпскрипт с аннотированной документацией кода, IDE подскажет что как. Отдельно лежащей api doc для всех пакетов и методов нет, но так даже и лучше - IDE отобразит прямо фактические данные. А вот если вместо IDE текстовый редактор… за легкость придется заплатить ручным поиском.
IDE и аннотации в коде вещь хорошая, только ведь бывает что даже текстового редактора нет. Вот я прямо сейчас комментирую NestJS на хабре — мне что, IDE ради этого открывать?..
А зачем вам точная детализация какой метод чего вызывает для комментирования на Хабре? Как бы вы это сейчас использовали если бы было? Концепт чего и как описан, примеры есть, кейсы разобраны, а такие детали - похоже на желание таки найти хоть какой изъян и сказать «я же говорил документации нет!» :)
В Getting started про то как микросервис создать, а дальше как подключиться. Возможно, кому-то было бы удобнее изложение наоборот, но так тоже вариант - создал, подключился, логика в этом есть.
Если хочется всё и сразу вместе, и хттп, и редис, и что-то ещё - вариантом может быть создание двух апп в одном, метод бутстрап так то не ограничивает количество, более того у вас может быть и несколько баз данных и несколько эндпоинтов хттп и пару самодельных транспортов.
Главное не перестараться и помнить что основной поток в JS один и можно заблокировать обработку если у вас агрегаторы какие-либо появятся и прочее подобное. Можно конечно потоков наспавнить, завезли некоторое, но по классике делают микросервисы для этого.
Какая-то логика есть, но она работает только если строить вообще всю систему на NestJS. Обычно же задача получается несколько другая — другой сервис уже написан, и нужен клиент к нему. И вот тут тот момент что половину документации нужно пропустить — вообще не очевиден.
Как и неочевидно и обратное, что если мы делаем микросервис, а клиент к нему нам не нужен — его тоже можно не писать.
Писал на Nest 2 года . За эти 2 года не испытывал проблем с их документацией. Достойный инструмент для разработки в команде с 20 разработчиками. Тут скорее просто вы взяли Джуна, проверив его знание алгоритмов ( имхо абсолютно бесполезный навык , за пять лет разработки в сфере backend ни разу не пригодилось знание даже банальной сортировки , благо современные ЯП предоставляют все из коробки ) и не проверили его главный навык - умение искать необходимую информацию , как еще это называют - умение гуглить.
странно, но почти в 100% случаях я нахожу себя поуши в чужих исходниках, если что-то не работает) Ни разу не видел документации, которая помогла бы решить по-настоящему серьезную проблему просто по результатам ее чтения)
Документация чаще описывает малую часть и, так или иначе, информацию приходится собирать либо по крупицам на разных ресурсах (что в свою очередь занимает очень много времени), либо смотреть исходники (тоже занимает время, но при этом дает полную картину). Но изучение исходников трудно поддается неопытным специалистам, а сторонние ресурсы, как и документация, не дают полного понимания картины. Вот и выходят всякие "Васи" которым сложно, непонятно или кто-то другой виноват. Но с другой стороны -- было бы желание :)
Так вообще-то в том и дело, что если по-настоящему серьёзную проблему можно решить почитав документацию, то не такая уж она и серьёзная. А если б ту же самую проблему можно было решить нажатием кнопки "решить проблему", то она и проблемой бы не была и даже документацию читать бы не пришлось.
Отсутствие нормальной доки не дало нормально развиться Dojo Framework.
Я правильно понимаю, что ваша организация наняла молодого программиста, не проверив его компетенции и технологии, которыми он владеет, как и его опыт?
Вы поставили перед ним таску, которую он сделал исходя из своих компетенций и технологий, которыми он владеет?
Потом вы попросили его сделать некоторый лоулевел, который ему не дан ибо для него нужен миддл.
Вопрос - а почему вы взяли вместо миддла или сеньора непонятно кого? Потому что он дешев?
Ну и кто тогда должен оправдываться?
Те ваша восточноевропейская эйчарка взяла неизвестно кого, вы его пустили к себе в стэк не проверив, а оправдываться надо только ему?
В ситуации виноваты все, через кого Василий к вам попал, при этом Василий виноват меньше всего - таску, которую ему озвучивали он закрыл, то что делать он не умеет - он честно про это вам сказал, а не стал гуглить и тянуть время - как обычно бывает. Так что далеко не все так однозначно.
P. S. и причём здесь платный NestJS?
Да ну ладно. Я специально нанял человека из россии, решил молодому мальчику помочь. Помогал. Но только, поймите меня, всё можно простить до тех пор, как человек сдался. Оправдываться ему не надо было. Надо было просто продолжать работать. Его учили, ему спускали с рук, ему позволяли использовать метод проб и ошибок. А он отказался. И это не то, чтобы ему тут же за это по рукам надавали. Я ему много раз рассказывал, что так делать нельзя. Но, когда к тебе приходят со скандалом, и пытаются убедить тебя в том, что ОН не может что-то сделать - ну, тут уже ничего не поделаешь.
Те вы взяли программиста чтобы помочь, а не чтобы он выполнял требования бизнеса? Ну я даже не знаю что сказать...
Если человек не может - его надо заменять. Это его факап, как программиста, а все остальное - ваш, как руководителя.
Нет, нет. Он — сдался. Это была его единственная роковая ошибка. Хрен бы с ними с требованиями. Он перестал стараться, и начал говорить, что он - всё.
Ну и отлично - он сэкономил вам кучу времени - радуйтесь, что так получилось.
Берите вменяемого программиста и успевайте убрать косяк до того, как топы поймут откуда он.
А вы никогда не думали, что вменяемые программисты могут получиться, если к невменяемому программисту добавить мануалов и опыта?
Нет ничего лучше, чем поставить новичка на ноги. Он вам потом всю жизнь будет реально благодарен.
Вменяемые программисты получаются не из невменяемых, а из обычных программистов без опыта, если добавить опыт через мануалы и практику.
Из невменяемых плюс мануалы вы получите невменяемого минус мануалы и минус время.
Поставить на ноги? У вас богодельня или бизнес? Если первое - вопросов не имею. Если бизнес - то надо чётко понимать затраты и профиты от такого действа и благодарность тут не причём.
Если грамотно "поставить на ноги" молодого спеца, ему потом лет десять можно будет недоплачивать зарплату в сравнении с рынком. Вполне себе долгосрочная стратегия...
можно будет
Можно было. Прошло то время, сейчас все умные.
Можно было недоплачивать конкретно, в разы. Сейчас попросту дисконт уменьшился. Но если десять лет недоплачивать 10% к рынку - получится экономия в год зарплаты, а дёргаться из-за +10% к зарплате как-то не особо...
Т.е. если взять человека, не умеющего плавать совсем, дать мануал и выкинуть в середине моря, то точно получится супер пловец?
Я не согласен, супер пловцов готовят по другому, хороших программистов тоже.
Дело в том, что многим сложно принять то, что даже в бизнесе что-то можно делать без оголтелой оглядки на выгоду. Если я вас правильно понял конечно.
Ща сорт моды, особенно в русскоязычном сообществе. Такой обратноход от коммунистического прошлого (предположение).
Хотя подобные утверждения конечно нелепы, т.к. если смысл бизнеса - зарабатывать забив на все, то работника - удовлетворять свои личные интересы, не смотря ни на что, а это значит и экспериментировать и нанимать и может воровать.
Так он и без помощи сам встанет на ноги. А тот, кто бежит от трудностей и хнычет того и тащить нет практической пользы.
Поддержу вас в этой мысли, всё хотят хотя бы мидл+, но никто не хочет их выращивать. Замкнутый круг, хотя наличие некой песочницы для разработчиков в фирме, может подарить ей в будущем очень талантливых и лояльных к компании сотрудников
может подарить ей в будущем очень талантливых и лояльных к компании сотрудников
Если в серьез в это вкладываться, то подарок окажется совсем не бесплатным, а скорее стоить как чугунный мост. Максимум, что может позволить себе компания за три копейки, это создавать мотивацию, чтобы сотрудники самообучались, в свое свободное от основной работы время.
блин, это джун, судя по описанию. Его еще учить и учить. Ну и рассказал бы, что нехорошо все валить на посторонних людей, взял бы и помог разобраться. А тут нашел причину и выпнул. [off]Так это наверное потому, что "из жалости взял россиянина"[\off].
Он не на должность супермена шел работать, и не на главного супер-пупер инженера. И для него есть нерешаемые задачи (важно во время сдаться (попросить помощи явно или неявно) ). И для кого угодно есть нерешаемые задачи(!).
Можно было дать ему начальный опыт поиска решений в тупиковых ситуациях "а как ты думаешь, кто мог бы тебе помочь?"
Считаю, что в первую очередь это -- фейл руководителя. Напомню, сдавшийся - практически джун.
Да, возможно, разбаловали их, но сам-то себя вспомни в детстве?
А где фэйл руководителя? Разве что в том, что немного раньше не уволили.
Лично знаю несколько программистов, которые отлично пройдут любой собес, обладают исключительно высоким самомнением, но простой баг зафиксить не смогут, который требует хоть немного задуматься. Их "раскусить" не так и просто, однако можно. И обычно резюме намекает, когда работы меняются раз в год, полгода.
Ну, из меня рукамиводитель так себе, но скажем, если бы мне подкинули джуна, и я решил потренировать его на какой-то задаче, то я бы с ним сначал обсудил ТЗ, пускай бы он набросал примерный план того как будет его выполнять, какими средствами. Обсудили бы плюсы и минусы выбранного им решения (для решения такой простой задачи, микросервисы сильно избыточны, есть проблема с документацией к фреймворку). И только потом бы он начал работу, причем я периодически проверял что он делает и какие сложности в процессе работы.
Понятно что опытного разработчика так опекать не надо, но так он и не опытный. А просто дать ТЗ, и потом посмеиваться над "тупым нубом", что он делает все неправильно и явно зашел в тупик.. ну это такое..
Про смену работы раз в год не соглашусь, учитывая, что процесс индексации ЗП нормально налажен примерно нигде, то вместо того, чтобы терпеть люди часто берут и идут туда, не получают сразу 25-70% к окладу просто за сам факт смены работы. Так что, полгода ещё могут насторожить, но это тоже не редкость, а год это абсолютно нормальная практика, исходя из условий.
То, что такие люди проходят легко собесы косяк самой системы найма. Последнее десятилетие - решение задач на алгоритмы поставлено над проверкой элементарных знаний, которых может не быть у человека, способного по свежим воспоминаниям с тренировки написать баллансировку RB дерева.
Вот я сейчас являюсь "Hiring manager" - нанимаю людей в свою команду. Всего для программиста - 5 раундов собесов, из них один - мой, а также само решение в основном будет за мной по итогам всех раундов.
Так вот - на самом деле я ищу "талантливых и трудолюбивых", а также в качестве второго приоритета - в какой-то степени коммуникабельных и более-менее позитивных так как все работают удалённо.
На моём раунде я именно хочу понять насколько у человека был высокий вклад в предыдущие проекты, был ли он там основным контрибьютором либо одним из основных. Является ли он "rock star". Проходит это во время обсуждения последних пунктов в резюме в подробностях, иногда показываю экран, вбиваю туда адрес сайта про который говорит кандидат, и спрашиваю - что конкретно вы тут сделали. И в идеальных случаях - кандидат говорит, давайте лучше я поделюсь экраном - и с залихвой начинает рассказывать что и как он(а) делал(а).
Но есть и другие раунды - (2 из них технические), на которые я также могу немного влиять. Там уже может попадаться что-то алгоритмическое.
И кандидатов очень много, но всех не нанять, т.к. количество мест ограничено. За 5 раундов с разными людьми и складывается общее впечатление, кто такой этот кандидат, что он может, а чего не может.
И если с первых раундов видно, что кандидат крут - то ему включается "fast track" и все раунды завершатся за несколько дней.
Конечно, при высоком конкурсе надо как-то людей фильтровать. У нас с этим проще, область наукоемкая, комманда сотоит из людей очень высокой квалификации. Поэтому, когда человек приходит, он решает несложные, но характерные для области задачи и там сразу видно, свой это человек или нет. Но, если на первом собесе сразу давать алгоритмический хардкор, то человек, который только что решал задачи на литкод, но никогда ничего не делал руками и профессионал будут не в равных условиях. Я вижу в этом проблему для найма в крупных IT компаниях.
Вы в Faang хайрите? Или зп платите вдвое выше рынка?
Ума не приложу, куда бы я стал проходить пять этапов интервью
Не FAANG. Продукт, пре-IPO (однако в IPO пойдёт только когда рецессия в штатах закончится), ~700 человек работает. Бюджет на Senior developer в Европе 100к евро в год грязными (есть ещё выше синьёра - staff и principle dev). Если хороший девелопер ещё опционов дают (однако в описании вакансии это не указано).
Очень много откликов на вакансии. Самих вакансий не так много.
Даже мидлов практически нет и не набираем их. Заинтересовались бы?
100к в Европе нет, я за газ заплачу больше после налогов. У меня 90 были оферы с двумя раундами собеса, сомневаюсь что лишние 10к стоят 3 раундов нервотреп
Не думаю что там где что-то доказывают такое требуется 5 раундов. Я вообще за свои 16 лет практики ни разу не видел мест, где действительно требуются 5 раундов собесов.
Даже в гуглах я уверен отбор можно сделать проще.
Если подумать, то, например, в 1-2 раунда не особо уложиться, чтобы кандидат из серой лошадки превратился в кого-то понятного.
Либо же собесы по 2-3 часа делать. В других компаниях, когда я работал - частенько было именно так. Однако, после первого часа - ваши мыслительные способности начинают падать из-за напряжения.
Если бы из-за 5 раундов действительно откалывалось много кандидатов, то процесс бы поменяли.
Получается вы приходите на 1 раунд к HR (пол часа обычно достаточно), где просто мило беседуете и раз вы на него попали, то ваше резюме прошло отбор, и если подтверждается, что ваша локация и бюджет совпадает, а также вы более-менее адекватный, проходите дальше. Также вам говорят, сколько всего раундов.
Но, получается, первый вы уже прошли. Вероятность прохода 1 раунда очень высока.
С нашей же стороны HR передаёт фидбэк и уже мы видим, это yes или strong yes.
Во первых, чем выше уровень кандидата, тем меньше вероятность того, что он начнет проходить 5 этапов. Обычно к 10 годам опыта накапливается круг знакомств и так найти работу существенно быстрее.
Во-вторых, возможно в фирмах где людей берут "на будущее" такое прокатывает. Мой опыт говорит о том, что в 80% случаев проект горит и тебе тупо нет времени отсеивать сотни кандидатов
В-третьих, лично мне на собеседовании достаточно часа вдумчивой беседы об опыте, о решенных задачах, о проблемах и как их преодолевали (ну и общая адекватность). Потому что алгоритмы и фреймворки на самом деле менее важно, чем что за человек перед тобой если хоть какой базовый уровень есть.
Еще раз повторюсь, я раньше пушил людей, требовал их саморазвития и держал коллектив в нездоровом состоянии. Теперь я переосмыслил, понял и уже года 4 как считаю, что именно на мне задача подобрать задачи по возможностям на каждого кандидата. Людей нужно уважать и вести диалог.
Сделать проект качественно в срок с самыми крутыми спецами может каждый. Сделать проект в сложных условиях с теми людьми что есть и не допустить выгораний - это как раз суперскил.
Примеры из жизни. Как-то я взял парня олимпиадника очень толкового. Понимал, что через полгода ему скучно будет и он уйдет. Но я все равно взял, так как парень был толковый и он успел много сделать. Или другой случай. Взял в мидла мужика 43 лет. Он не супер был по хард скилам. Но он старался, мог закрвыать несложные таски и мог самостоятельно работать и не просирать сроки. Вот так вот из кирпичиков, постепенно, люди набрались и как-то проект делался. А если бы я искал рокстаров, мы бы еще не начали бы.
Мой опыт говорит о том, что в 80% случаев проект горит и тебе тупо нет времени отсеивать сотни кандидатов
Это сильно зависит от локации и условий. Условно говоря в Германии notice period и три месяцев может быть - толку торопиться, если после найма вы всё равно будете ждать, пока кандидат отработает?
Если нанимаете с релокацией - это отдельное шапито, потому что хрен знает сколько кандидат будет визу получать. Где-то можно только запись в посольство 2-3 месяца ждать.
Итого цена найма очень сильно вырастает: если вы взяли посана, прождали его 4 месяца, а через две недели понимаете, что он вообще не тянет - то вы серьезно обосрались и потеряли 4 месяца и кучу денег (при этом надо понимать, что одним днём вы его не уволите). Зато собесов меньше, ага.
Ну и сразу отвечу
Я вообще за свои 16 лет практики ни разу не видел мест, где действительно требуются 5 раундов собесов.
Как минимум 4 - легко
Первичный с HR'ом/cultural fit
Техника
Для синьоров-помидоров - какой-нибудь system design
Финалка с будущим начальником
Опционально посыпьте сессией с лайвкодингом или парным программированием, алгоритмический собес, или какой-нибудь контрольный собес с чуваком из другого подразделения (некоторые такое практикуют) - и вот вам 5 сессий. Ну и да, где-то они будут короткими, до часа, чтобы и кандидат, и собеседующий не превращались к концу в амёбу (плюс чтоб кандидат мог нормально подготовиться).
И все это лишь подтверждает никчемность такого подбора. Потому что в общем случае достаточно пункта 2-3 вместе с техническим оунером на проекте. Все эти вы*боны с лайвкодингом или парным программированием, алгоритмический собес это не более чем плохой фильтр.
В реультате этого фильтра остаются те, кто сидит на жопе ровно, но никак не рокстары.
Очевидно, что в компаниях типа гугла, где соискателей много, а менеджеров еще больше могут себе позволить фильтровать самых усидчивых попутно занимая десятки людей процессом хайринга на одну позицию. Однако в компаниях попроще, которые работают на результат, а не на корзину (привет фейсбук) такое себе позволить не могут
Не знаю, как у других, а я не даю джунам (и не джунам тоже) для старта разработать целый сервис. Сначала надо несколько недель баги пофиксить, чтобы разобраться как всё устроено, потом улучшения небольшие. Через полгода можно пробовать большие куски давать
Согласен, это фейл руководителя, который он переложил на джуна, потому что сдался :)
Прям как в притче про бревно в глазу.
Ты предпочёл бы того кто не сдаётся? Сколько ты готов платить за попытки, а вернее проведение исследований?
Ты формулируешь перед исполнителем задачу - "сделай быстрее" и когда исполнитель оценивает свои силы (,а люди вообще часто делают это неадекватно), то понимает что не успеет. Или понимает что будет слишком долго возится и за малое количество выполненных задач премии не получит, поэтому он хочет что бы с него сняли ту задачу которую он не может и дали другие. Ведь он тоже думает о целесообразности вложения своих сил. Целесообразности для себя. Ведь он несёт ответственность за себя, за своих близких.
Ты как управленец мог бы сформулировать задачу - "разберись". Составить список вопросов, желательно с конкретными примерами. И тогда исполнитель занялся бы исследовательской работой, проверяя реализацию различных возможностей в фреймворке.
Заметь, ты сам написал:
я буду сидеть и выяснять, почему это произошло
Как долго ты будешь сидеть и выяснять? В чём между вами разница на самом деле? Ты имеешь уверенность (наглость) сказать - "столько сколько надо", потому что считаешь себя профессионалом и уверен в том что потратишь именно столько сколько надо времени. Если вернее, то уверен что большинство других потратят больше времени чем ты. Молодой же разработчик обычно не уверен в том что потратив месяц на исследование, не обнаружит потом что профессионал потратил на это 1 день. И дело не в том что он не уверен в своих знаниях как таковых или способностях к логическому мышлению. А в том что у него нет опыта решения задач, который бы интуитивно подсказывал среднее ожидаемое время их решения.
Задавая самому себе вопрос. Сколько времени у меня это займёт? Молодой разработчик получает сам от себя ответ - "неопределённо долго". Ты же даёшь сам себе уверенную оценку времени, даже если она ошибочная.
Итог. Когда ты формулируешь бизнес-задачу, нужно её формулировать не "надо вчера и как можно быстрее", а указывать чёткий дедлайн. Отдельно выделять подзадачу "оценка целесообразности". Важно что бы каждый программист помогал другим в этой подзадаче, то есть консультации должны быть записываемыми в вашу учётную систему как продуктивное рабочее время.
Если же ты намерен вырастить профессионала. То нужно ставить именно исследовательские задачи без дедлайна, но с обязательными отчётами. Типа какую гипотезу проверил и что получилось.
Возможный вариант. Умеренная россыпь мелких бизнес-задач в первую половину рабочего дня и исследовательские проекты во вторую.
Я сам профессиональным программистом не являюсь. Но много раз столкнувшись с тем как моё руководство нерационально ставит задачи для достижения бесполезных результатов и к тому же срочно. Начал самостоятельно проводить оценку целесообразности и писать замечания. Чем кстати злю подрядчиков-разработчиков когда указываю на то что определённые интеграции не разработаны, а без них сайт "мёртворождённый", так как эффективно обновлять товары на нём вручную не получится. И когда перед мной поставили задачу ручного добавления фотографий к разделам, я честно потратил на это две недели. Это отражено у меня в таблице выполняемых задач и ежедневных отчётах.
Знаю ли я что такое ответственность? На уровне логической концепции понимаю. Но что такое "чувство ответственности" - не знаю. Мне доступны сочувствие, жалость, гордость (собой, за дело...) и многие другие эмоции. Но чувство ответственности не доступно. Будучи школьником я полагал что испытывать ответственность - это значит мысленно бить себя по голове за ошибки и демонстрировать это окружающим. Поскольку люди от меня этого требовали, я их считал идиотами, а общество безумным. Потом я догадался что просто эта эмоция мне не доступна, что у меня частичная эмоциональная дисфункция.
Кому то со стороны возможно может показаться что в продемонстрированной переписке я проявил рвение и не дал исполнителю сдать недоделанный сайт. Но я снимал с себя ответственность. Мне похер на этот сайт, мне похер на эти товары, мне похер на мою бесполезную работу с малой зарплатой которую задерживают. Этой перепиской и дальнейшими двумя неделями работы, я дал ясно понять руководству, что сайт нихрена не готов. И что требовать С МЕНЯ его работоспособности не надо. А точнее ясно показал что в текущем состоянии сайта, на это будет уходить почти всё моё время и я не буду всё успевать.
Тебе нужен тот кому достаточно полноты по Тьюрингу? Возьми меня на работу и плати мне за то что я делаю открытия. Ну и может тебе это чем то поможет заработать денег. Скажу сразу, я с энтузиазмом делаю только то что мне интересно, а то что мне не интересно, я делаю не надрываясь и коли требуют отчёты, то считаю их создание первичной задачей, ведь именно за них и платят. Не хочешь такого сотрудника? Хочешь болвачика не понимающего что ему надо, но верящего? Но ведь такого ты уволил, за недостаток веры наверно.
Без обид, но после такого общения я бы вас уволил.
Интересно, что в моём общении неприемлемо с точки зрения вас как "серьёзного бизнеса"?
Вы не "за одно", а противопоставляете себя команде (либо заказчикам - без разницы). Дальше вы употребляете ужасный термин, который, если задуматься несёт бесконечное горе для тех, кто с этим столкнулся, или просто имеет достаточно эмпатии, чтобы понять это. А если, кто-то из тех, кому вы пишете с этим столкнулся, либо тот, кто прочитает этот коммент?
Софт скилы на уровне 0. Также сарказму не место в профессиональном общении. И ещё можно применить модный термин - токсичность.
Софт скилы на уровне 0
токсичность
Как мамкин фалософ, я умею писать тактичные, обходительные и политкорректные формулировки. И поэтому же стараюсь их избегать, потому что они часто препятствуют пониманию.
Также сарказму не место в профессиональном общении.
Вот этого я совсем не понимаю. Это как и для чего? Для того что бы не мешать одним делать вид что они работают, а другим что они платят?
Дальше вы употребляете ужасный термин, который, если задуматься несёт бесконечное горе для тех, кто с этим столкнулся
Если задуматься, жить - вредно и больно, от этого умирают. Ах да, я напомнил людям что они смертны и оскорбил их иллюзии, в смысле чувства.
Короче, управленцы, получили, тех кто как и вы пытается знание реальности заменить софт-скилами. Тех кто разрабатывает резюме, а не программы. Вы это заслужили.
Вы не "за одно", а противопоставляете себя
Как потенциальный будущий политик, заявляю вам. Какие же вы мрази... Прям как политики.
Я бы так сказал, сказать подчиненным что они лохи и нифига не умеют не сложно. Более того, это чаще даже правда. А вот доделать проект не посылая никого никуда - сложнее.
Сложно что-то доказать людям с практически противоположным мировоззрением, однако, вот вам к размышлению - страны в которых принято "не оскорблять чувства", где переименовывают black list в block list, и уж тем более не используют мёртвых детей при описании сайтов - более развиты экономически, имеют здоровые правительства, которые меняются, больший человеческий потенциал и больше возможностей для сограждан.
Ох как правильно вы сейчас США описали.
Если ты сам стоишь на ногах, то ушат гамна выслушивать тебе. А вот Билли, с другой стороны, он сидит в колясочке, он сам ходить не может. Билли - инвалид.
более развиты экономически, имеют здоровые правительства, которые меняются, больший человеческий потенциал и больше возможностей для сограждан.
То, что их нынешнее процветание обусловлено совсем не переименованием black list в block list, а предшествующими десятилетиями, а то и столетиями жизни без таких маразмов Вы не рассматриваете? Общества имеют огромную инерцию, которая подчас прощает дичь отдельных времен и персон, и в силу этого способна продолжать обеспечивать процветание, даже если президент немного чудит с речами, трапами и вообще, координацией движений.
столетиями жизни без таких маразмов Вы не рассматриваете
уверен, когда-то говорили - "столетиями жили с рабством, а сейчас что ... должны его отменить???".
То, что их нынешнее процветание обусловлено совсем не переименованием black list в block list
Это правильно сказали - не процветание обусловлено black list в block list, а наоборот - процветание обусловило подобную политкорректность. Вывело людей на следующий этап.
Основа их экономической мощи из времён, когда они наоборот, использовали мертвых детей в описании сайтов. Отказываться от этого они стали спустя много лет после достижения топ-1 в экономической сфере.
Всё очень просто, я экстраполировал ситуацию на свою команду, и если бы кто-то вот так разговаривал - то был бы уволен. Скорее всего, конечно, он сначала бы не был нанят.
Потом, я уже попытался обосновать почему.
Если в современном развитом мире переименовывают бранчи из мастер в мэйн, то уже упоминание мёртвых детей для "красного словца" - это совсем из рук вон, вызывает отвращение, презрение к человеку, который так может говорить, а также скорбь по всем детям, которые умерли в утробе и исколеченные судьбы их родителей. И да у меня есть знакомые, с которыми случилось это горе.
И сравнивать ваш лёгкий дискомфорт с горем и трагедией - неуместно. Хотя, для вас может быть уместно. Но это значит и мне с вами не работать.
А судя по скриншоту в переписке видно, что разработчик терпит, и его терпят. Была бы возможность - с ним не работали.
У меня есть чуть более базовый вопрос. Почему вы так трясётесь на чувствами? Боитесь спугнуть клиента выбирающего между вами одинаковыми прилизанными продаванами? Ну так то да, это рационально. Однако, почему вы позволяете этому анестетику протекать в команду разработки?
Видите какое у нас огромное недопонимание. Такое же было бы и внутри команды. Я трясусь не над чувствами клиентов, а над своими и чувствами людей команды. В команде все должны быть за одно и конструктивны в общении. И важный показатель - это эмпатия, которая у вас отсутствует. То есть сопереживание, возможность предоставить себя на месте другого человека, что позволит говорить на одном языке.
Вот уже сколько я сообщений написал, а вы меня не поняли.
И важный показатель - это эмпатия, которая у вас отсутствует.
Эмпатия у меня есть и всякие тесты показывают что даже чрезмерная. С моей точки зрения "больно" везде и всегда. Это вы можете морально и эмоционально от чего то полностью отстраниться просто убрав это из внимания. Я этого не могу.
сопереживание, возможность предоставить себя на месте другого человека
Кажись именно это и приводит у меня к эпизодическому перегоранию эмпатии. Полагаю со временем психопатом стану.
Не думай что я не понимаю твоих тезисов, как минимум на уровне концепций понимаю. Но мне глубоко противна эта вся половинчатость и лицимерие, закрывание дерьма ширмой и дезедорантом, вместо того что бы его убрать или не гадить по углам. Меня бесит эта политкорректность либерального разлива, когда изменяют слова вместо того что бы изменять действительность. Каким словом туалет не назови, оно провоняется тем что в него приносят. Надо признавать и принимать негативные стороны жизни, а не словесными духами пользоваться.
Почему вы так поступаете? Правда в том что наёмный труд является вынужденно разделённым и порождает отчуждение. Это вводит людей в хронический стресс, создаёт повышенные потребности в комфорте, как физическом, так и психологическом. Многие люди находятся близко к озверению и поэтому их стараются лишний раз не тыкать палкой. Но дело в том что какого то предела этому нет, нет какой то грани. Зато есть идеи о виртуальной реальности и редактировании воспоминаний.
Хамство пораждает хамство, негатив - негатив. Улыбаетесь людям, они вам улыбаются в ответ.
Если вы настроены враждебно к кому-то, думаете, он будет к вам настроен дружелюбно?
Меня бесит эта политкорректность либерального разлива, когда изменяют слова вместо того что бы изменять действительность
Сначала меняете слова, а потом смотрите - и меняется действительность.
Но мне глубоко противна эта вся половинчатость и лицимерие, закрывание дерьма ширмой и дезедорантом, вместо того что бы его убрать или не гадить по углам
Если вы работаете на проекте - то вы работаете с людьми, такими же как вы (ну только с большей эмпатией, скорее всего). Разберитесь "на позитивчике" вместе, что вам сделать, чтобы проект был конфеткой. Например, я не работаю в "дерьме", и всё ок. Да есть какое-то количество легаси кода, но мы его не называем "дерьмом" )) А постепенно его рефакторим. Даже дезедорантом не нужно нигде пырскать.
Вы бы, может быть, представляю, могли назвать легаси код "дерьмом" - но это не "называние вещей своими именами". Дерьмо - это экскременты, которые выходят из животных. Вы сами задаёте тон вашим митингам, вашему общению, это влияет на реакции в вашем мозгу и как вы будете себя чувствовать завтра.
Улыбаетесь людям, они вам улыбаются в ответ.
Пробовал, когда то даже так мыслил. Обнаружил пределы эффективности данного метода. С тех пор использую очень редко. В основном когда сознательно прихожу к выводу типа - "ирония здесь бесполезна, необходимо лицемерие".
Сначала меняете слова, а потом смотрите - и меняется действительность.
Целые нации проводят такие эксперименты. Пока что результаты отрицательные. Особенно ярко это продемонстрировал последний лживый фильм о африканских воительницах.
Разберитесь "на позитивчике" вместе, что вам сделать, чтобы проект был конфеткой.
Щас спою. Этот ваш гнилой позитив! Вашу землю украсит, лишь ядерный взрыв!
Да есть какое-то количество легаси кода, но мы его не называем "дерьмом"
Этот ваш "легаси" есть разный. И тот в котором что то прибито гвоздями к специфическому окружению или же привязано к плохой проприетарной технологии, возможно дохлой, без должного слоя абстракции - это дерьмовый код. Как бы ты назвал бы систему разделения "рабочих столов", то есть позволяющую к одному компьютеру подключить множество рабочих мест, в которой всё прибито к GDM определённой версии и при каждом обновлении всё отваливается? А хотя ведь можно было используя штатные средства linux, сделать нормальные драйвера для своих устройств и скрипт запуска X серверов с собственными конфигурационными файлами. И тогда не было бы без разницы какой вообще менеджер графического входа использовать. Всё что нужно было бы поддерживать, это юнит системы инициализации и драйвер для xorg.
А как вы относитесь, например, к фильмам, в которых умирают люди (и дети, в частности)? Ведь они напоминают людям об их собственном горе и при этом давят на эмоции гораздо сильнее, чем мимоходные упоминания. Считаете ли вы, что в современном мире неприемлемо показывать такие фильмы по телевизору, в кинотеатрах, в рекомендациях ютуба etc?
Лично про меня - если это не документальное кино, где действительно описываются факты - то прекращаю смотреть и считаю, что вводя такой "художественный оборот" сценаристы (или кто там ответственен за это) - используют этот приём, чтобы выбить слезу, однако, могли бы больше постараться и обойтись без этого. Считаю, что такое кино не достойно, чтобы его смотреть. Например, из-за этого я не посмотрел Тор: Любовь и Гром.
Повод ли это введения цензуры - не думаю, скорее внутренняя цензура. Мне это не решать, и цензура - это зло.
Насколько корректно обозвать тебя "неженкой"?
Когда мы на ты перешли?
Я думаю обзывать кого-то - уже некорректно. Не думаю, что я "неженка", вас бы уволил и глазом не моргнул.
Я думаю обзывать кого-то - уже некорректно. Не думаю, что я "неженка", вас бы уволил и глазом не моргнул.
Ровно как например Николай Второй, который вместо того что бы разбиратся в конфликтных предреволюционных ситуациях, для того что бы не нарушать своего душевого спокойствия говорил подчинённым "разберитесь" и уезжал отдыхать. Поэтому прежде чем его назвали царём-тряпкой, его прозвали "кровавым".
А ещё вспомнил. Именно он потребовал в официальных документах не употреблять слово "голод" заменив его на "недород". Так как это плохое слово портило ему аппетит и настроение.
Как звучит - "Крестьяне в этом году не уродились"...
Если в современном развитом мире переименовывают бранчи из мастер в мэйн
Справедливости ради, конкретно это — не от развитости. Так, популистский тренд. Он пройдёт.
то уже упоминание мёртвых детей для «красного словца»
Понимаете, практически у всех у нас что-то там можно такое в истории накопать, что могло бы триггернуть негативные воспоминания. Поэтому чтобы не вызывать их, надо не слова из языка выбрасывать, а поменьше копать. Тот же «мертворождённый» — это абсолютно обиходное слово, которое касается любой затеи, которая по меркам наблюдателя видится провальной задолго до окончания её реализации. И не надо это никак увязывать с личными трагедиями, иначе можно дойти до того, что придётся «удаление файлов» запрещать, чтобы не расстраивать тех, кому какой-то важный орган удалили.
это абсолютно обиходное слово, которое касается любой затеи, которая по меркам наблюдателя видится провальной задолго до окончания её реализации
Где как. Слова заходят в обиход и выходят из него, если в вашем окружении оно ещё используется, то вот вам повод задуматься, стоит ли приплетать мёртвых детей к описанию чего-либо.
И уж тем более мне непонятны проблемы со словом «мертворожденный». Мы с женой, к сожалению, тоже потеряли ребёнка восемь лет назад, но я в принципе не могу понять, как к нашей трагедии можно приплетать какие-то термины, которые имеют сугубо бизнесовую коннотацию.
Искренне сочувствую.
И прошу прощения, за затрагивание и размусоливание этой темы. В первоначальном комменте, на который я отвечал было много чего ещё.
Заметил что от тебя никто не требует писать про сочувствие и просить прощение. Потому что это не нужно. Но ты почему то уверен что этот ритуал необходимо исполнять? Ты искреннее веришь в его силу? Ты проецируешь на других то как сам легко покупаешься на всякие слова? Или это просто привычка которую в тебе воспитали? В общем вопрос. Осознаёшь ли ты почему на самом деле так пишешь? Почему на этот вопрос важно ответить? Потому что это шаг к возможности изменить выбор, к свободе.
А если человек не сомневается в своём абсолютном моральном превосходстве и следовательно не нуждается в демонстрациях?
Удивлён отсутствием наиболее очевидного пункта: потому что через «внимание» к подобным вещам можно демонстрировать (хотя бы перед самим собой) своё моральное превосходство, а люди это очень любят делать.
Все смотрят на мир через призму своего восприятия. Не всем необходимо доказывать кому-то своё моральное превосходство. И то что я выше написал - это не для того, чтобы доказать вам что-то, что вы хуже морально либо лучше. А только для того, чтобы дать вам информацию, которую, как я думаю, вы упускаете из виду.
По-поводу топика, например, иметь такого человека как вы и я в одной команде - это конец команде, вечные споры и доказывания чего-нибудь на протяжении всего рабочего дня.
Все смотрят на мир через призму своего восприятия.
Я думал, что вы поймёте без пояснений, однако, видимо вы не поняли. Поясняю:
Если вы не искренны - то вы думаете, что и другие не искренны.
И сразу больше примеров, чтобы несколько комментов не писать.
Если вы крутите интриги, то думаете, что и другие крутят.
Если первая ваша (не именно ваша, а условного индивидума) опция соврать или вы часто обманываете и подвираете, то вы думаете, что все так делают.
Это работает и наоборот, если вы всегда до конца стараетесь быть честными и говорите правду - то думаете, что и другие также.
И вместо третьего коммента, чтобы вам не додумывать, что я имею в виду - вывод из всего этого - на самом деле все люди разные.
Однако, стоит помнить что если у Вас не паранойи, это еще не значит что за Вами не следят. Так что вера в окружающих людей как в розовых пони, какающих фиалками, а тем более, построение своего поведения исключительно на такой вере - ну, такое себе дело, до первого столкновения с реальностью.
вывод из всего этого — на самом деле все люди разные.
Люди не очень разные. Есть некоторое количество стандартных моделей поведения, и все мы им соответствуем, ну или каким-либо их комбинациям.
Так что вера в окружающих людей как в розовых пони, какающих фиалками
Ну если вы сам розовый пони - почему бы и не поверить, что остальные также розовые пони? )
Люди не очень разные. Есть некоторое количество стандартных моделей поведения, и все мы им соответствуем, ну или каким-либо их комбинациям.
Согласен, ну и добавил бы немножко своего Я каждому в качестве небольшой мутации.
Вы же, кстати, описываете человека с околонулевым интеллектом, который не может в обобщения.
Я описал в том числе и себя ) Однако, я могу доказать, что интеллект у меня не "околонулевой", это порождает противоречие и, согласно "научному методу", ваше утверждение неправильное (ну либо интеллект у меня околонулевой всё-таки, но как бы я тогда писал этот коммент?)
У вас вообще когда-либо возникают мысли о том, что вы, ну, можете быть неправы? Пока по наблюдаемым данным похоже, что нет.
Конечно, причём я очень много над этим стараюсь работать, чтоб не быть предвзятым к своей точке зрения. Но там где я прав - не значит, что я буду притворяться, что я не прав и принимать ложную точку зрения ;)
И да, все люди разные, но на фундаментальном уровне мотивы очень похожи.
Если вы подразумеваете под фундаментальным уровнем, например, жажду наживы, обогащения, самоутверждения за счёт других, "цель оправдывает средства" и т.п. - то тут я не согласен. Может когда-то в каменном веке так и было, но не теперь, когда уровень абстракции мышления зашёл так далеко... Мир не ограничивается вашей песочницей.
То есть, вы по себе судите всех и поэтому считаете, что все по себе судят всех? Вы не видите здесь некоторых, как бы это сказать, проблем?
Из чего вы делаете подобный вывод? Опять же - эмпатия она такая, вы не понимаете своего собеседника (меня). Хотя куда уже прямее вам всё разжовывать.
Наблюдаемых фактов для этого лично я не заметил. Факты против этого — сполна.
Значит мне выборки не достаточно, а вам - достаточно.
И для написания комментариев (то есть, освоения базового синтаксиса и семантики) нужен куда более слабый интеллект, чем для полноценной теории ума.
Так околонулевой либо более слабый? И начнём с того, что вы подразумеваете под "околонулевым".
Судя по этому словосочетанию под него попадают те у кого как минимум нет коры головного мозга. Например, крокодилы.
Очень "интересно" с вами общаться, как и со всеми теми, которым важно доказать свою точку зрения, чем найти истину. У вас такая цель просто отсутствует.
Если вы с гнильцой то думаете, что и вокруг вас люди, как минимум не хуже. А ещё вокруг все тупые, а вы дартаньян.
Но ваша цель сейчас доказать мне что? Что я притворяюсь? А раз я притворяюсь, то значит все люди одинаковые - думают про свои какие-то низменные цели и я типичный представитель.
Но вот вам новая информация - у меня есть дочь, и когда она родилась и была маленькая умела делать только 1 вещь - плакать. Потом научилась делать - 2 вещи - плакать и смеятся. Ей не нужно было ни чьего одобрения, чтобы радоваться. Значит - всё остальное - приобретённое. Как вы воспитаете своих детей - такими они и будут - саркастическими, думать, что все их используют, что все с гнильцой и так далее.
Можете без проблем повесить на меня свой ярлык, который вы вешаете на всех исходя из своей выборки, но вот вам ещё немного информации - в чём смысл вашей жизни? К чему вы стремитесь?
Я могу сказать к чему я стремлюсь. Вот у вас уже сложилось впечатление, что этакий менеджер-подделка, но, прикиньте - работа это ооочень маленькая часть моей жизни. И работа остаётся на работе.
Дальше какие стремления (которые вы описали, как фундоментальное для всех) - власть, деньги? Может быть снова это ваши стремления, или думаете у меня также.
Кто-то выше написал, вот у инвалидов столько прав, почему не у здоровых, и что за дискриминация - вы готовы взять плакат в руки и идти бастовать против парковок для инвалидов? Почему у них больше прав?
Так вот - моё стремление - самосовершенствование - и это далеко от работы. Т.е. у меня в голове есть идеал человека, которым я хочу стать и иду к этому. Ну а также понять до конца, что в принципе вокруг происходит. И это ещё не говоря про воспитание детей, где я вообще фанат. И это далеко от работы и профессиональной деятельности как до луны. Хотя, конечно, всё переплетается (в рабочие часы).
А теперь, расскажите мне про мою "не искренность" и про "Virtue signalling" и заставьте доказать, что не тупой.
И сразу, прошу прощения, я не верю в ваше "перевоспитание", не верю, что вы поймёте, что выше написано, не поймёте для чего это написано и что я хотел вам донести, вы останетесь таким как есть - в каждом человеке прежде всего будете видеть "подвох" и считать всех тупыми.
это порождает противоречие и
Вы не посмотрели ещё один вариант. Вы описали не себя. Вам кажется, что вы такой, но в рассуждениях, которые приводят вас к такому выводу может быть ошибка (например, вам просто хочется быть таким)
Наверняка осознает, он же прямо написал, что это связано с экономическим процветанием. И не исключено, что это процветание он ощущает на себе. Так почему бы ему и не выбрать те слова и подходы в речи, которые приняты там, где он зарабатывает?
Примерно об этом же поучительная сказка про "опасное" веретено.
я бы вас уволил ... за противопоставление себя команде и токсичность
Токсичность там двусторонняя (принесу ваш ответ поржём)
"отсутствие преданности" - в ответ на невыполнение ранее достигнутых договорённостей и попытке скинуть сырой проект на поддержку (которым потом отдуваться)
и вся работа, по словам@rezedent12 идёт за небольшую ЗП.
То есть фирма изначально экономит на ЗП и прочих компенсациях, набрала за ЗП по низу рынка квалификацию по низу рынка и получила качество по низу рынка.
Такие фирмы обычно не очень могут выбирать кого уволить пока человек что-то делает - потому, что нанять на его место на ту же ЗП просто не смогут с учётом рыночных реалий.
Да там обе стороны отличились стилем. В такой кислоте хорошего продукта не получится. Заказчик плюнул в подрядчика, подрядчик обиделся и ответил. Заказчик обиделся ещё больше и написал на хабре.... Для меня этого было бы достаточно, чтобы начать искать новый контракт\заказ\клиент.
Но чувство ответственности не доступно. Будучи школьником я полагал что испытывать ответственность — это значит мысленно бить себя по голове за ошибки и демонстрировать это окружающим.
Чувство ответственностои — это не самобичевание. Это желание делать качественно по крайней мере те дела, которые ты сам взялся делать. И желание исправлять свои ошибки.
Ответственность оговаривается в самом начале как неустойка или депремирование. А желание исправлять свои ошибки есть лишь тогда, когда есть гордость за выполняемое дело.
Расскажу тебе немного про ответственность. Есть такая контора нехороших людей, называется "бизнес-класс", на одной из моих предыдущих работ мы с ней сотрудничали. И как то эта контора обратилась к нам за технической помощью в проведении мероприятия. Руководитель назвал стандартную цену, 600 рублей в час. Они не согласились. Тогда у него стали спрашивать кого бы другого нанять. Он поспрашивал своих знакомых, там согласных не нашлось и в итоге предложил мне дать отгул на тот день, а я заработаю 3 тысячи рублей (вроде, или 2 тысячи, сумму не помню уже точно). Я согласился, предупредив что никогда раньше этим не занимался.
Пришёл в конференц-зал. На всех рабочих ноутбуках нелицензионная windows напоминающая о своём статусе полупрозрачной надписью. И не офисного пакета даже. В общем, я поставил libreoffice и acrobat, настроил подключение к проектору. Музыки заготовленной заранее нет, сказали "сам скачай динамичную". Выступления долгие без пауз, еды для персонала нет, цены на неё в ресторане гостиницы дорогие, требуется постоянно быть возле ноутбука. Хорошо что с собой немного еды взял. А потом понадобилось в туалет и никого не нашёл кто бы меня подменил, пошёл в перерыв, но перерыв неожиданно решили закончить. Кстати про музыку, я нашёл OST из "c money of soul and possibility control", там есть много хороших композиций.
В конце дня нанявшая меня курица, со словами "ты же мужчина", "чувство ответственности", предлагает оплату в два раза меньше. Угрожая пожаловаться моему начальнику. Я ей говорю "ну звони". Она позвонила, а он ей объясняет, что у меня в этот день отгул. Короче, не купился я на её манипуляции, настаивал на полной оплате и получил. После этого она настояла моему руководителю на том что бы я не занимался технической поддержкой их конторы. Кстати, персонал конторы состоит из молоденьких по впечатлению наивных девочек, которым для работы ничего не выдают. Подозреваю что работают они за слова.
Тогда же я и сформулировал тезис: Настоящий мужик не ведётся на слова "будь мужиком ..."
"На свой account надо принимать только деньги, остальное - spam."
А желание исправлять свои ошибки есть лишь тогда, когда есть гордость за выполняемое дело.
Желание исправлять свои ошибки по-хорошему должно быть не из-за гордости за выполняемое дело, а из-за самоуважения. Конечно, в том случае, если вам не совсем уж наплевать на себя как на специалиста.
Я сейчас не говорю про ночные переработки и про бесплатный труд. Конечно же, это всё должно быть в рамках своей обычной работы, но тем не менее, одно и то же дело можно делать либо качественно, либо через задницу. Вот я не сторонник второго подхода, по крайней мере, если про него изначально не договорились :)
на новой работе такое бывает. В какой-то момент внезапно понимаешь, что нихрена не понимаешь. И если на тебя начинают давить (не этот видимо случай), ощущения прямо на уровне "да пошло всё в *, пойду в пятерочку грузчиком". А потом отпускает. А потом - приходит еще несколько раз )
Так его и заменили. Вы же сами признаете факап Василия как программиста.
человека из россии
Названия стран пишутся с большой буквы.
Хочу сразу попросить прощения если чего не понял , пока что я всего начинаю свой путь в айти , а самому мне 20 лет отродясь, но волшебное "OK Google " + правильное формирование вопроса, выдаёт ответ на том как решить эту задачу , какие могут быть нюансы и подводные камни, и так же их решения, да ну блин , тут ведь логически ясна причино следствиная связь , и даже более того можно предложить ещё пару идей по отказоустойчивости и оптимизации, хотя возможно они и так были следующими шагами по ТЗ
Навык английского языка — отдельный навык. Навык гуглить на английском — отдельный навык. Навык смотреть на ситуацию с такой точки зрения, что её можно просто загуглить — отдельный навык. И всему надо учиться. К сожалению, человек так устроен, что пока он учится, он уязвим. А наш мозг не любит быть уязвимым.
Прекращайте оправдываться. :)
Ну вы нашли где публиковать эту статью, в заповеднике этих самых Вась :)
Вопрос - а почему вы взяли вместо мидла непонятно кого?
Просто он на собесе на вопрос "Что вы будете делать, если ваш сервер начал безбожно тормозить" ответил "буду искать и разбираться" и его приняли
Ну и немного мыслей, если что то стало лагать и бизнес и клиенты страдают, то неплохо бы попытаться что то сделать, чтоб лагать перестало, а потом уже искать причины
А то "Я буду сидеть и тупить в логах, пока не найду настоящую причину этой проблемы" может стоить очень дорого
существуют даже ситуации, когда не разбираясь перекинуть программу на более мощное железо - лучшее решение.
Понятно, что "хорошо бы разобраться", но это решение не всегда является лучшим или хотя бы оправдвнным.
Если причина не была найдена и устранена, то высока вероятность, что и на более мощном железе со временем начнет тормозить. Перекинуть на еще более мощное?
То есть ваш ответ на этот вопрос на собеседовании будет "я перекину все на более мощное железо" ?
Уверены?
В реальности всегда есть контекст и дополнительные условия. Сколько времени займет каждый вариант решения, сколько оно будет стоить, какие будут краткосрочные последствия, долгосрочные, для кого именно, и т.п... чтобы это всё учесть и решить мало быть квалифицированным - надо быть еще просто умным.
В реальности также существуют и собеседования.
Да-да, они действительно есть, и на них могут задать вопрос без контекста и доп условий. И именно о них и идет сейчас речь.
Устраню проблему любым приемлемым способом, в минимальное время, и только после этого начну разбираться в причинах и пытаться устранить ее правильным способом.
Уже бывало такое - когда сервер на проде в одном из проектов начал падать по памяти. Сначала перетащили его на железо с большим количеством памяти, благодаря чему удалось настроить его перезапуск ночью во время минимальной нагрузки, этим занимался девопс, параллельно с этим велся поиск проблемы и попытка ее решения. Благодаря такому подходу у нас клиенты практически не заметили никакой проблемы, хотя она и была.
Я как-то проходил собеседование в один банк, и там правильным ответом было именно то, что вы озвучили. А точнее их комментарий, что если проблему можно быстро решить дополнительным железом - это их устраивает. В некоторых случаях "залить пожар деньгами" для некоторых компаний реально проще и выгоднее, чем потерять время на разборки. Разбираться будут потом, когда вокруг перестанет все гореть.
Как вы из "Понятно, что "хорошо бы разобраться", но это решение не всегда является лучшим или хотя бы оправдвнным." сделали ответ "я перекину все на более мощное железо"? Соломенное чучело это некрасивый подход.
Кроме случаев, когда тормозит не сервис, а, например, сторонняя инфраструктура (разделяемое хранилище) и перенос или масштабирование сервиса не только не решит проблему, но и уложит сторонние сервисы, использующие эту инфраструктуру. А чтобы понять, что тормозит хранилище надо, внезапно, читать логи.
Чет бред какой-то. Обычный программист задачи такого уровня решать в принципе не должен. Так что стоит сперва определиться, какой результат хотим получить. Одно дело любой ценой срочно убрать лаги - тут не до разбирательств, просто вкидываешь гору бабла и арендует дополнительные мощности, чтобы не пошли потери, а все разбирательства уже потом, когда проблема уже не стоит так остро. Другое дело если не срочно но любой ценой требуется найти источник лагов - это профилирование и оптимизация, это долгое исследование логов, тесткейсов, перебор вариантов, и т.п. исследовательско-аналитическая деятельность, поиск причин и путей оптимизации. А вот чтобы так срочно беги исследуй логи и сделай хоть что-нибудь - это уже дурка какая-то: исследования и разбирательства, фиксы и тесты это дело не быстрое, а без понимания источника проблемы ничего сделать впринципе нельзя на уровне программиста, но можно на уровне администратора и управленцев, выделить дополнительные бюджеты, добавить аппаратных мощностей, но зачем тогда ответственность вешать на программиста? Зачем требовать от него "сделай хоть что-нибудь"? Что он может сделать, если ему не дают ни времени, ни возможностей, ни полномочий, ни ресурсов? Только послать такого руководителя подальше.
зачем тогда ответственность вешать на программиста? Зачем требовать от него «сделай хоть что-нибудь»?
Для того, чтобы решить проблему, если нет ни дополнительного бюджета, ни аппаратных мощностей.
Что он может сделать, если ему не дают ни времени, ни возможностей, ни полномочий, ни ресурсов?
У него есть возможности оптимизировать программу.
Первый уровень - добавить/обновить железо
Второй - выяснить и устранить причину
Третий - узнать, что нужно заказчику и клиентам, может они не хотят причину, а хотят новое железо и побыстрее
Четвёртый - проверить, действительно ли есть проблема, может мониторинг врёт или сисадмины врут
Пятый - ничего не делать, т.к. вы в дзене и тормоза, сервера и заказчики - всего лишь плод вашего воображения
...
Да, но часто можно встретить людей, которые хотят свои проблемы на других повесить.
Я правильно понимаю, что ваша организация наняла молодого программиста, не проверив его компетенции и технологии, которыми он владеет, как и его опыт?
Но вроде как они же не джуна брали, из статьи следует, что возраст этого человека находится в диапазоне 23...33 года, и у него неплохое резюме.
В ситуации виноваты все, через кого Василий к вам попал
В какой-то мере да, это и ошибка при приёме на работу, но 100% достоверно оценить компетенции специалиста просто по резюме и собеседованиям в принципе нереально. И в любом случае, речь-то в статье не про ситуацию с Васей, а про то, что ныть «чужая библиотека виновата» — отстой, и куда лучше сказать «ок, я попробую с этим разобраться, хотя мне может понадобиться дофига времени, миллион долларов и вертолёт». И я в принципе с этим согласен.
Но вроде как они же не джуна брали
Нигде про это не сказано, но из комментариев автора выходит, что брали вообще чтобы "помочь"...
и у него неплохое резюме
Когда резюме - пусть даже и не плохое - являлось гарантом чего-либо?
но 100% достоверно оценить компетенции специалиста просто по резюме и собеседованиям в принципе нереально
Естественно, но здесь даже попытку не сделали, зато повелись на слова "Я буду копать!"
а про то, что ныть «чужая библиотека виновата» — отстой
Дак это и вытекает из компетенций кандидата - миддл так бы не стал делать, а попытался бы решить проблему или хотя-бы в ней разобраться (на самом деле он бы просто не стал юзать данный стэк и этой конкретной проблемы вообще бы не существовало).
На самом деле автору повезло с кандидатом - могу бы еще пару месяцев копаться и тянуть время, вместо чего он сделал красный звоночек своим предупреждением - радоваться нужно.
здесь даже попытку не сделали, зато повелись на слова «Я буду копать!»
Я не поленился, ещё раз просмотрел статью и комментарии, где вы это увидели? В статье ничего нет про то, как происходило собеседование «Васи», просто упоминание, что у него отличное резюме, и что его «тянули» на работе. Ну, не вытянули, бывает. Я не вижу в этом ничего предосудительного, людей, которые обманывают ожидания по итогам собеседований — легион их (к слову, это работает в обе стороны, компаний тоже). Но Вася этот — просто частный пример, а суть статьи совсем в другой её части, не в той, на которую вы обратили внимание :)
Дак это и вытекает из компетенций кандидата — миддл так бы не стал делать
Вы думаете, миддлов и даже сеньоров мало, которые говорят «ничего не знаю, проблема где-то не в моём коде»?
Я специально нанял человека из россии, решил молодому мальчику помочь.
Из начала повествования. А надо было собеседовать и проверять и не надо было тянуть - в этом и была ошибка.
А так да - наняли человека не подходящего под требования.
Еще раз - у миддла или сеньора данной ошибки по просту бы не было.
А "оправдывание" было как раз из-за того, что Василий был не из той категории, которая требовалась.
Он не знал что делать - когда это происходит со зрелым девом - реакция будет абсолютно другая - он будет копать, пока либо совсем не упрется, либо не решит.
Если же юн либо возрастом, либо умом - то будет то, что описано в статье. Т.е. "оправдывание" описанное в статье - просто обычная психологическая защита.
Вы думаете, миддлов и даже сеньоров мало, которые говорят «ничего не знаю, проблема где-то не в моём коде»?
Конечно такие есть - но они это делают, четко понимая зачем и почему.
Это - не психологическая защита, а расчет - и это, естественно, совершенно другое и для другого.
Конечно такие есть — но они это делают, четко понимая зачем и почему.
Можно и так сказать, но я не особо ошибусь, если скажу, что примерное распределение причин вот такое:
10% — я уже сейчас вижу, что эта задача не окупит потраченное на неё время, и лучше выбрать другой путь
10% — у меня есть более приоритетные задачи
50% — мне влом заниматься такой рутинной и скучной работой, как раскапывать чужой код
30% — я туда уже заглядывал, и нифига не понял, как оно работает, поэтому боюсь связываться.
Вот последние два пункта, это всё-таки психологическая защита, а не расчёт.
А почему все завязано на одного программиста? Если один не может - это нормально, всегда должны быть другие, кому можно дать посмотреть, и кто-нибудь в конце концов да сможет. Или же проблема перейдет на уровень нерешаемой в принципе, и потребует пересмотра стратегии. Но на одном человеке чтобы все было завязано - как минимум это очень странно. Неужели только один программист на всю контору?
Да нет, тут всё выглядит намного проще.
Судя по описанию проблемы автором, задача не выглядит никакой Ракетной Наукой.
проверить состояние соединения к базе
если его нет - переподключиться
Написать блок кода уровня if function1() { function2() } джун должен уметь. Обязан.
Для этого не требуется патчить фреймворк, на котором написан проект.
Вы можете сколько угодно рассуждать в воздух относительно правильности соответствия задачи и позиции, относительно верности выбора этноса сотрудника при найме специалиста кадровой службы.
На деле вы профессионально раздуваете петлю ответственности вместо того, чтобы применить санкции к конкретному сотруднику. Типичное поведение по гайдлайнам либерального ненасильственного общения. "Да, мама, размажь это дерьмо повсюду" лишь бы никто рядом не выглядел, по вашему мнению, токсичным в критике.
Автор, понимаю вашу боль. Вопросы воспитания - самые сложные.
Из моей практики:
джун, матмех. Приходит со скриптом. "у меня тут в батнике что-то не получается". Говорю ему "перепиши свою конструкцию на powershell, делается за 2 строчки, документация лежит там-то. Дальше диалог:
-но я не знаю powershell
-тыжпрограммист, ты напишешь. Микрософт давно и официально рекомендовала всем переезд на PS.
С удовольствием прочитаю комментарий о том, что так нельзя. Ведь он, бедняжка, не умеет то, что от него требуют.
P.S. Он вернулся через 2 часа, всё сделано.
А теперь сделай все тоже самое, но где-то в глубине огромного фреймворка, с которым глубже скудной документации не общался. Задача уже стала сложнее, не так ли? Особенно для джуна. Мы не видели проблемный код и оригинальные требования, чтобы что-то судить. Да и о самой проблеме только с одной стороны слышно, вторая же заочно лишена права голоса - не очень оригинальная попытка набросить на вентилятор.
Если рассматривать проблему как «джуну дали в руки пачку кода на неизвестном ему фреймворке без документации», то задача действительно становится сложнее, а проблема и ответственность за её решение переносится на тех, кто такую убойную комбинацию решений произвёл. Но как бы не так.
Джуну (? парень вроде с вкуснейшим резюме) дали в руки пачку кода (?? человек вроде сам с нуля микросервис и запилил) на неизвестном ему фреймворке (??? он сам этот фреймворк и выбрал, пожелание вообще было на гошке) без документации (???? у NestJS документация не хуже среднего по больнице).
Куча вопросов и слов «вроде». Как раз из-за того, что слышим только одну сторону. Но если рассматривать «абстрактного коня в вакууме» и проблему падения в рантайме из-за отсутствия соединения с Redis, то решение спокойно гуглится за 5 минут и приводится в жизнь. Если же источник проблемы не в этом, то надо дальше смотреть. А как иначе? Бросать всё и говорить «не могу, так как фреймворк плохой»? Ну пусть тогда возьмёт другой, где опыта побольше, если уж изначально хотел поэкспериментировать, что тоже бывает и что, на самом деле, полезно (если простор возможностей такой дали).
Если немного задуматься, то вопрос в какой момент Redis вообще падает и почему есть несколько нод. Т.е. если он падает после подключения, то не каждый фреймворк может такое предусмотреть. В общем могут быть подводные камни не описанные в статье. К тому же есть случаи когда ты просто не можешь заменить поведение фреймворка без его правки, а это ведёт за собой уйму проблем.
Так что далеко не все так однозначно.
А по-моему, тут всё как раз таки вполне однозначно - некомпетентный начальник пытается свалить свои косяки на линейного инженера. Нанял джуна и доверил ему самостоятельный выбор технологии и архитектуры? Я такого треша давно не слышал.
@Nurked, прекращай оправдываться. Не бывает такой штуки, как "этот сотрудник плохо работает". Бывает только некомпетентные руководители, которые не могут выделить адекватные ресурсы на задачу.
Это всё прекрасно, но не ясно, как же такой человек дошёл до уровня гендиров, что они знают и помнят и хвалят?
Он же сидит и работает, а не бегает и не пиарит себя ( и про него знать не знают)
Или
Бегает и пиарит, а не работает
Есть такие люди. Если вы - зае__сь рабочий, это не значит, что вам надо сидеть в тени и ничего не делать. Вы можете сделать так, чтобы о ваших достижениях знали. Не значит, что вы будете постоянно хвалиться. Но, если вы уже сделали что-то хорошее, то и прятать этого не надо. Доложите начальству "Я уладил Сервер 6, который постоянно падал."
Зависит от размера компании. Думаю топ-менеджеру банка будем параллельно на то что кто-то "уладил Сервер 6" )))
А вообще иногда слегка злит отношение: "Ты же программист !!!"
Ты — программист. Значит что ты должен уметь заставлять компьютеры делать то, что от них требуется заказчику.
Я думал, что разделение труда это все таки благо и быть профессионалом по железу, по сетям, по администрированию, по БД, по написанию программ... одновременно как то тяжеловато
Я бы сказал программист - пишет программы, системный администратор - занимаются серверами и сетью, девопс - настраивает CI/CD, DBA - думает о репликациях, масштабировании и отказоустойчивости базы...
Ответственность, это когда ты реально знаешь, что запущенно на этих пяти
серваках, ты понимаешь КАК это работает, и ты знаешь, что Василий
Геннадьевич, директор компании, очень радуется, когда серваки работают
без сбоя.
Честно говоря, вообще параллельно от чего там радуется Василий
Геннадьевич и какими способами достигает он удовольствие )))
Он нанял человека программы писать, для остального у него есть жена и секретарша.
Я ему говорил, что его вонючие
микросервисы нафиг никому не сдались. Я не раз показывал Василию
оригинальное ТЗ, в котором значилась одна вещь: REST API сервер, с пятью
endpoints. Всё. Я не просил NestJS, на самом деле я не просил даже
Javascript. Я хотел, чтобы всё было сделано на Golang. Но я знал, что
Василий не силён, и решил, что мне стоило ему помочь.
Дак сказали бы ему что подошло бы лучше или в чем больше экспертизы, наставили бы на путь истинный в начале проекта. И делал бы он вам "невонючий" монолит на чем-нибудь в чем человек силен или на чем у вас принято.
Он прилежно решает задачи на leetcode и всё такое. Он умеет сортировать деревья сбалансировано и несбалансированно. Он научился до такой степени, что может отсортировать строку алгоритмом O(n^-1).
Ну зато вы его стильно,модно протестировали... алгоритмы и все такое.
Уж не раз писали люди, что может это не главное в работе (алгоритмы и решение алгоритмических задачек), может у вас нет необходимости оптимизировать сотни тысяч запросов в секунду, а нужно просто решать стандартные бизнес задачки без нагрузки как у Гугла.
Затем в месячном отчёте по отделу будет сказано: «отдел уладил Сервер 6, который падал последние полгода».
Затем руководитель направления отметит: «попутно настроен Сервер 6».
Затем замдиректора отметит: «настроены сервера».
В годовом отчёте эта строка не появится, поэтому топы её не прочтут.
Многие так и делают, перестают оправдываться и начинают обвинять, потом становятся высокими специалистами.
Бывал в похожей ситуации на месте автора, испытывал похожие эмоции в моменте. Спустя время могу сказать, что вся такая история - это менеджерский косяк. Начиная с желания помочь без запроса на помощь, заканчивая излишним делегированием молодому разработчику. Как результат - обманутые ожидания и страдание
Нанять на работу, уволить - это также работа менеджера. Так получилось, что человек не влился, не подошёл, не нашлось задач под компетенцию. Может где-то он будет отлично контент набивать и шаблоны подправлять.
Если в итоге расстались, то не вижу косяка. Разве что излишняя эмоциональность. Такие вещи также нужно делать профессионально - только уже со стороны менеджера.
Если разобрались в статье с тем, кто такой программист-профессионал, то кто же такой менеджер-профессионал?
Наверное, хороший менеджер - это человек который понимает, что работает с людьми, понимает их эмоции, но при этом не позволяет себе заражаться эмоциями других, имеет трезвую голову. Тот, кто понимает что у каждого человека есть право на ошибку, но при этом в том числе своим примером ведет команду к трансформациям в лучшую сторону.
Описана типичная XY проблема, т.е. важен не инструмент, а
оригинальное ТЗ, в котором значилась одна вещь: REST API сервер, с пятью endpoints. Всё.
Т.е. надо тыкать в ТЗ и спрашивать где здесь NestJS
P.S. Впрочем, если бы Василий смог обосновать необходимость использования NestJS для решения этой задачи, речь уже шла бы именно о
Ты, программист, знаешь. Ты можешь
А если ты плохой программист, то у тебя в кармане всегда найдётся пара отговорок о том, что в голанге нет дженериков или прочей билеберды
Вот всё было нормально до этой фразы. Не могу представить себе контекста, в котором бы утверждение об отсутствии дженериков было отговоркой.
Написать либу иерархии тайпклассов. Чтобы с higher kinded types и type constructors
Это ж фичи языка, которые не могут быть добавлены либой в принципе...
Хотите сказать, настоящий профессионал, который никогда не оправдывается, и правда способен взять и сделать всё это в голанге первой версии не меняя сам язык, да так чтобы получившийся код можно было использовать для чего-то кроме как поиграться?
Higher kinded types и type constructors - фичи языка. А с помощью них (и еще некоторых языковых конструкций) можно реализовать тайпклассы, как это сделано в Скале. Например, здесь. Но при этом сами HKT требуют(?) наличия параметрического полиморфизма, т.е. дженериков.
Хотите сказать, настоящий профессионал, который никогда не оправдывается, и правда способен взять и сделать всё это в голанге первой версии
Наоборот же :) Задача нереализуема и отговорка об отсутствии в языке дженериков, а тем более их старшего брата HKT, вполне прокатит
В терминологии обсуждаемого поста, отговорка — это псевдопричина, которую используют нерадивые программисты, вроде Василия, чтобы отказаться от выполнения своих задач. В то время как профессионалы, вроде автора поста, способны решить задачу невзирая на эту причину.
Рассмотрим теперь утверждение "в языке Go 1.x невозможно написать либу иерархии тайпклассов, чтобы с higher kinded types и type constructors, так как в Go отсутствуют дженерики" — отговоркой оно не является, поскольку эта причина настоящая. Ни один профессионал её не обойдёт не сменив язык.
Вот если представить утверждение "невозможно настроить рестарт сервера, так как в языке Go отсутствуют дженерики" — это уже будет отговорка. И в своём первом комментарии я имел в виду, что подобные отговорки смотрятся крайне странно, и я не представляю чтобы кто-то их реально использовал.
Higher kinded types и type constructors — фичи языка. А с помощью них (и еще некоторых языковых конструкций) можно реализовать тайпклассы, как это сделано в Скале.
Уточнение: с их помощью можно реализовать не тайпклассы, а стандартную иерархию тайпклассов из теорката.Сами по себе тайпклассы — тоже необходимая фича языка.
У меня другой случай был. Технически сложное API к одной большой PLM системе. Различные варианты реализации алгоритма. В результате - дикие тормоза при обычной выгрузке данных. На что заказчик сказал "я подожду пару часов, лишь бы не падало". Мои убеждения на ковыряние дальше в целях оптимизации (как раз тот самый лоулевел) отвечал - "не надо". В результате имею неудовлетворённого себя + заказчика, который удовлетворился малым.
Технически - право заказчика. Он платит деньги за то, что его устраивает. И он может сказать "стоп, меня устраивает, работа принята, деньги выплачены".
Вполне возможно этот заказчик попадал несколько раз на случаи, когда оптимизация ломало фатально всё уже работающее, поэтому и так осторожен теперь
И да, и нет. В бюджете были заложены необходимые часы. С заказчиком уже давно работаем над многими проектами. Т.е. это чисто его осторожность, которая косвенно привела к неудовлетворённости обоих. Хотя задача то решаемая. И даже пути решения описал. Начиная работать над конкретным проектом реально не знал никто что будет так ... долго.
А потом к тебе в самую "жару" приходит это тело и говорит: "Ты знаешь, действительно надо оптимизировать и без этой оптимизации жить и работать совершенно невозможно, что вот на сейчас это топ 1 задача". Потому что "пару часов" не в сезон превратились в сутки, после наступления "сезона". И ты выбрасываешь всё, что не из серии "прод прилёг", и начинаешь заниматься этим.
А ещё бывает так. Руководство говорит: "Пусть работает, как есть, нас всё устраивает, оптимизируем потом". А потом через пару недель: "А почему твоя программа такая медленная? А почему сразу нормально не написал? Ты ж программист, ...", далее по тексту статьи.
Если ваша компания наняла человека, не соответствующего требованиям - это просто повод пересмотреть подход к проведению собесов и всё.
Что-то мне кажется, это из серии где один идиот менеджер, который думает, что он умный, нанял идиота программиста, который так же думал, что он умный, и они по эффекту Даннинга-Крюгера обвиняют друг друга в неудачах
Неа. Никто никого не обвиняет. Вы думаете я не смогу REST сервак поднять за три часа? Оправдывался тут только программист.
Если никто никого не обвиняет, то слово "оправдание" выбрано неверно.
"..я скажу в своё оправдание" в первых строчках поста с названием "Хватит оправдываться". Ценная оговорка.
Похоже этот вирус внедрился гораздо глубже и рано радоваться такому названию статьи.
Само явление - Оправдание является (для меня, никому не навязываю) маркером определённых базовых установок в мировоззрении, которые трудно отследить находясь внутри. Оправдание -- это противоположность признания ошибки, как первого шага, ведущего к её исправлению. То есть шаг в другую сторону -- от исправления. Возникает эта особенность в мышлении тогда, когда часть принятых в жизни принципов, фальшивы в своей сути, но оправданы носителем.
От "безысходности". Но, как правило, из выгоды, если называть своими именами и разбираться в причинах.
Тогда возникает винегрет из противоречивых позиций и попыток удержать это вместе.
В этом ключе, размышления об ответственности не как "о несении наказания", а как о Возможности, - очень верное направление! Однако, замешав эти понимания с "баблом", вы как бы смешиваете всё обратно.
И конечно же лечить надо там, где болит -- как в вашем примере: "пока не найду причину". В этом месте, часто злоупотребляют фразой "начни с себя" ("и до других не доберёшься"), что звучит конечно красиво. При этом, часто бывает, что если до других не добрался, значит ничего не понял в устройстве проблемы -- как она проявлена в Системе. Нередко, скрыто порождается системой.
Или видеть это не выгодно... Вот тут-то, как вариант, и начинаются оправдания.
Иногда самые запутанные проблемы начинают решаться с простого проговаривания простых очевидностей.
Довольно часто бывает что ошибки вызваны недопониманием сторон. Начальник поставил задачу, эту задачу неправильно поняли. Кто неправ? В большей степени начальник.
Подчиненный иногда не понимает и в случае сомнений задает уточняющие вопросы. Причем, чем важнее задача, тем больше вероятности, что будут заданы уточняющие вопросы, даже когда кажется что все понятно. А кто владеет информацией о важности задачи? Правильно, начальник. Значит он и должен заботиться о том, чтобы для важных задач все было правильно понято.
Автор поста прям мои мысли озвучил. Тоже пришлось расстаться с одним таким программистом, у которого всё были виновато, кроме него самого.
А мысли про ответственность - да он прям взял мои мысли! Я бы точно так ответил бы.
По-научному это называется внутренний локус контроля. Далее - копипаста с одного ресурса:
Когда локус становится внутренним, человек переходит совершенно в другую реальность, и я сейчас не преувеличиваю. Это ощущается именно так.
Уже не хочется халявы, показухи и одобрения. Куда важнее результаты собственной работы, которые вы сами можете оценить. Больше не нужны оценки извне. Только человек с внутренним локусом способен любить и уважать себя одновременно.
Есть мнение, которое и я разделяю, гласящее, что за массовое воспитание инфантилов ответственна школа. Если кратко, то в сензитивные периоды развития мозга подростка, когда формируются навыки самостоятельности и выполнения жизненных задач не имеющих типовых решений их заставляют сидеть на жопе ровно по многу часов в день и решать задачи из учебника. Причём "правильным" способом.
Школа не развивает навыки по самостоятельному поиску решения задач со множеством скрытых проблем и не всегда чёткой постановкой проблемы. А такие в жизни в основном и встречаются.
Зато она формирует навыки конформизма и умение быть лояльным к начальству (в лице учителей). Вот и получаются жополизы, которые чуть что пошло не по плану падают на спину и пораженчески задирают лапки :D
такое мнение выглядит как оправдание /s
Если серьёзно, то школьная система пытается воспитать минимально адекватных граждан из неидельных детей неидельных родителей используя неидельных учителей. То что большинство покидают её стены умея читать и считать, а так же зная, что если пырнуть ножом соседа, то можно присесть, уже большое достижение.
поймите, не бывает такой штуки, как "это плохо работает". Бывает только "я в этом не до конца разобрался"
В целом, с посылом согласен, но вот с этим - нет. Вполне себе бывают ситуации "я разобрался и теперь понимаю, что это работает плохо". После такого обычно стараешься что-то поменять, чтобы работало хорошо, но способы могут быть разными.
Но лично я давно стараюсь не контактировать с людьми, у которых постоянно какие-то проблемы, в которых виноват кто угодно, но только не они.
Тут вы правы, но есть прикол.
Представьте, вы работаете на предприятии, где всё стоит на air-gapped сети, и вы не можете ничего подключать к интернету. А всё оборудование из прошлого десятилетия. У них стоит один нещастный сервер, на котором крутится PHP4.
Плохо работает? Несомненно. Можно ли на этом писать? Да. Вы бы PHP4 в проде никогда бы не использовали. Но, вот припёрло, а вы не жалуетесь. Вы просто пишите.
Скажите, кто виноват кроме вас, что вы не проверили Васю перед принятием на Professional & Programmer?
А кто запретил Васе им становиться?
Так это дело Васи, кем ему становится.
Ваше дело - чтобы человек, которого вы наняли, сделал проект
Или вы оговаривали, что берете его на стажировку под руководство опытных разработчиков?
Как очевидно из статьи, оговаривал.
Не вижу этого
Зато вижу такое:
Ты — программист. Значит что ты должен уметь заставлять компьютеры делать то, что от них требуется заказчику.
С таким подходом вы вряд ли сильно преуспеете в решении своих задач и достижении своих целей, на которые программистам зачастую, как вы правильно заметили, наплевать.
Я бывал в вашей ситуации достаточно много раз. И никогда не винил в том, что я не смог сделать задачу, инструменты, которые я нанимал. Если инструмент плох - виноват не он, а тот кто его выбрал
Вы, надеюсь, понимаете, что перцы с компьютером на ты, с бизнесом тоже на ты? И штат большинства компаний, не то место куда они стремятся? Человек умеющий что-то делать хорошо сразу перестает это делать и начинает это продавать. Как вы.
Мне кажется, вопрос неправильно поставлен. На курсах, в университетах, где угодно учат, условно говоря, как решать задачи на leetcode. А вот как решать проблемы - не учат, никто и нигде.
Вот решил Вася стать профессионалом. Что конкретно ему делать? Кроме как внушать себе: "никогда не сдавайся"?
Невозможно научить решать проблемы, можно только научиться самому. Когда у тебя нет альтернатив, кроме как её решить. Мозг начинает работать совсем по-другому. И ты по-любому её решаешь. Жестковато, не спорю, но других способов освоить эту науку просто нет. А когда становишься более опытным в решении проблем, то учишься правильно сопоставлять все контексты, все риски и начинаешь принимать самые оптимальные решения. И да, почаще пересматривать сцену с мистером Вульфом из "Криминального чтива")
Кажется, вы описанием программирования затуманили всем мозги.
У вас ведь не про конкретную работу, а про ответственность. Брать ответственность на себя - это отдельный скилл, который достаточно быстро гарантирует рост и в кареьере, и над собой.
В этом смысле не важно молодой ли мальчик (и мальчик ли он), из какой он страны, откуда вы. Решает вопрос - "отвечаешь за результат или нет?" даже на каком-то малом участке
Брать ответственность на себя - это отдельный скилл, который достаточно быстро гарантирует рост и в кареьере, и над собой
Как правило, если брать слишком много ответственности, то единственное, что этот скилл гарантирует - увольнение по статье "халатность". Сужу по себе, когда я на практике в МинОбрНадзоре начал опекать местный сервер и случайно его завалил из "воздушки"... прям по материнской плате
Вы забыли про границы ответственности. Если вы выделяете это в отдельный скилл - это, как правило, подразумевает "отдельный геморрой", а ни разу не рост в карьере. И особенно - над собой - в чем? В том, что ты и так уже делаешь?
ответственность — это когда пахнет деньгами
К сожалению в реальности почему то деньгами пахнет для кого-то другого, а ответственный остается козлом отпущения или ему подмигивают в коридоре гендир со товарищами - Гляди наш терпила идёт...
Ответственность не равно рабская самоотверженная исполнительность.
Можно ответственно быть раздолбаем. Ключевое в ответственности — принимать последствия своего деяния или недеяния. Осознавать, что ты и есть источник происходящих с тобой событий. (Разумеется, внешние независимые факторы тоже есть).
Этот ответ подразумевает Профессионального Программиста. Этот ответ подразумевает, что человек, который управляет инфраструктурой, несёт за неё реальную ответственность. Он не козёл отпущения, нет. Он — самый обученный, начитанный и осведомлённый инженер в округе. Он знает, что означает быстрое мигание шестого светодиода на восьмой панели. Он может уладить любую проблему. И ему постоянно завидуют. Потому что Гендир в нём души не чает, и он получает неприличную зарплату.
Эх... Знаю многих таких. Вот именно, точь в точь, как описали. Часто это легендарные личности в своей компании, и без них компании и не было бы.
Но есть нюанс. Наличие таких людей, - практически необходимое условие раскрутки продукта с 0 и до условного первого миллиона $ выручки, ибо, подхода с большей эффективностью не существует, и заигрывания в процессы приводят к тому, что конкуренты, у которых такой "главный программист" есть, просто разрывают тебя на старте. И, точно так же, это, практически всегда, попаболь зрелого бизнеса, когда появляются инвесторы, время от времени идут дьюдилы, приходят управленцы с мощным трек-рекордом из корпораций. Они все начинают в один голос петь о басфакторе, масштабировании разработки, риск менеджменте...
Касательно того же гендира, и отношения к этому. Снова таки, из моего опыта, все зависит от амбиций и бекграунда гендира. Если этот человек нацелен на условный свечной заводик, который будет стабильно кормить его семью, и позволять ездить на отдых, когда хочешь, раз в пару лет обновлять машину, и так далее, то да, души не будет чаять. Если же, наоборот, гендир видит себя следующим Джобсом мечтает о том, как продаст свою долю за миллиард на IPO, и целыми днями питчит компанию инвесторам, обещая нового единорога, то, скорее, будет смотреть со скрываемой неприязнью и мыслями вроде "ну когда ж уже так выстрою процесс, что смогу заменить тебя десятком мидлов, и закрыть вопрос навсегда".
Даже, если копнуть в мейнстрим того, чему учат ит специалистов всех уровней, то становится очевидно, что все это идёт в другую сторону. "Нужна команда звезда, а не команда звёзд", структура процессов и артефактов скрама, да, даже, если почитать книги по Domain driven design, то становится понятно, что они оправдывают неимоверное раздувание кода ради предсказуемости и понятности.
То есть, логически, вроде бы, да, бизнесу нужен программист, который берётся и тащит, а, фактически, нет, не нужен, как правило. Нужна прозрачность, нужна заменяемость, предсказуемость, и подобные вещи. Условно, те же требования к человеку, что и к программному сервису.
Понимаю крик души, но, на мой взгляд, автор демонстрирует черты лида, чьи самомнение, категоричность и максимализм намного сильнее влияют на принятие решений, чем рациональные суждения. Также не сложилось ощущение, что он готов признавать собственные ошибки и работать над ними. Какое счастье, что нам не придется работать вместе, такие коллеги превращают рабочий быт в сущий кошмар.
самомнение, категоричность и максимализм намного сильнее влияют на принятие решений
А я увидел Лида, который впервые столкнулся с необучаемым человеком и через чур долго его холил и лелеял.
с необучаемым человеком
Я таких не встречал, хоть и преподавал питон коллегам из Индии.
Есть люди, затраты на обучение и длительность онбординга которых неоправданно велики и есть шанс найти более подходящего специалиста, открыв позицию прямо сейчас.
Но, заметьте, насколько иначе выглядит такая постановка вопроса, по сравнению с тыканьем пальцем в сотрудника и инициированием сеанса публичного унижения в виде поста на хабре в надежде на самоутверждение.
причем после первой же проблемы.
Я таких не встречал, хоть и преподавал питон коллегам из Индии.
А встречали вы таких, которые через какое-то время начинают с вами спорить про всё на свете? Ты вроде и хочешь помочь, но тебя не слушают, хотя вроде бы это джун, он у тебя в подчинении, и ещё не очень-то в чём -то разбирается, изводит всю команду.
Либо как-будто опытный разработчик, который, прямо как описано в статье очень хорошо оправдывается, но много спринтов подряд завершает работы значительно меньше, чем все остальные. Например, имеет таску на 3 поинта, которая висит уже 5 спринтов.
А Индусы - они всегда скажут "sure" и спорить не будут. Однако не всегда выполнят этот "sure", скажешь им ещё раз, они скажут "простите" и ещё раз "sure". Будут обучаться в зависимости от способностей. Но иногда может перерости в записывание "макросов" и выполнение ими четких инструкций, не более того.
тыканьем пальцем в сотрудника и инициированием сеанса публичного унижения
Когда впервые с таким сталкиваешся, проверьте, это тяжело психологически. Поэтому, это скорее сеанс психотерапии.
А встречали вы таких, которые через какое-то время начинают с вами спорить про всё на свете?
В каждой команде должен быть вожак, зануда и дурак - иначе ни чего не работает. Из спорщиков-джунов потом получаются пытливые ребята, кто будет копать и копать, пока не докопается. Главное их не сломать в начале, воспринимая все происходящее на серьезных щщах.
Сейчас у меня в команде все как минимум синьёры и компания нанимает только синьёров, а когда-то долгие годы работал в команде с полным набором всех уровней. Могу сказать - земля и небо. Так что "дураки" совсем не обязательны.
Из спорщиков-джунов потом получаются пытливые ребята
Если вся остальная команда не разбежится до этого времени из-за того, что в коллективе невозможно работать.
компания нанимает только синьёров, а когда-то долгие годы работал в команде с полным набором всех уровней. Могу сказать - земля и небо. Так что "дураки" совсем не обязательны.
Это не про булинг для джунов. Тут смысл немного в другом. Дурак это персонаж у которого кадблаш на глупые вопросы, экстравагантные поступки, над которым можно всей толпой смеяться и которому все сходит с рук. В этой маске может быть и ваш начальник, совсем не обязательно, что глупый. Например, он заставит вас объяснить свои затруднения так, чтобы даже дураку было понятно - и даже вы сами все поймёте. Я пару раз работал с такими, довольно прикольный сетап.
Согласен, тоже такое впечатление сложилось. И тут есть негативный фактор: лиду легко свалить свои косяки на джуна и выпнуть его, тем самым "закопав" проблему, но это мерзко и низко, хороший лид такого никогда не сделает, напротив будет боятся такого расклада как огня, потому что задача лида не в диверсиях внутри команды, а в поддержке и направлении.
Эмоциональная подача материала всегда уводит от темы и выключает мозги. Первая реакция, это возмущаться, а не думать. Вот автор подсел на такое, но по факту порождает испанский стыд. Сами выбирали, сами задачу давали, сами уволили и всех собак повесили.
Я не программист (в серёзном понимании этого слова). 2) Я не оправдвываюсь. 3) Мне точно нельзя доверить критическую инфраструктуру. Мне просто тут интересно. Самореализация и общение.
Статья вызывает смешанные чувства.
Автор статьи говорит про ответственность конкретного человека, забывая про то, что мы социальные существа и всё делаем вместе. Вы вместе нанимали этого человека. Вы вместе согласовывали технологии для решения задачи, ведь так? Вы, судя по статье, вместе решали сложности возникшие при реализации поставленной задачи.
Как так получилось, что в работу был взят NestJS, который, судя по сказанному не имеет адекватной документации. Он единолично принимал решение об использовании технологии? Он, будучи молодым сотрудником, стал руководителем проекта?
Что вообще происходит, кто занимается организацией работы подразделения?
Должен ли он нести полную и единоличную ответственность за всё происходящее? Автор не хочет разделить ответственность с Васей, как его руководитель?
Вася может и не лучший сотрудник, но рабочие процессы тоже не предел мечтаний.
Ну вот вам другая сторона вашей ситуации - если вы наняли этого сотрудника решать бизнес задачи, то вы хреновый менеджер. Если вы его наняли что бы научить-подтянуть - вы хреновый наставник-ментор. В любом случае вы неправильно оценили компетенции сотрудника и поставили его в стрессовую ситуацию, которую с которой он не смог справиться.
Имхо: иногда оправдание следует за невозможностью наступить себе на горло и признать, что чего-то не знаешь. К сожалению эти переходы от "бог программирования" до "я ничего не знаю" даются болезненно, если даются вообще.
Плюсую господину!
Ведь суть статьи не про конкретный кейс, харош мусолить надо было такого Василия нанимать или нет, надо было такую задачу ставить или нет…. Суть не в этом.
Фишка в том, что рынок разработчиков в ит действительно очень донный на текущий момент. Он полон таких вот василиев, которые не хотят копать глубже своего носа и лишний часок потратить на самообразование и развитие и потом вешают лапшу менеджерам, что тут понимаете все техня, все сложно, нет решения)
Автору респект, полностью разделяю эти мысли
А вы думаете среди юристов или экономистов не так? Любой юрист тоже может полистать учебники права и выиграть любое судебное дело, с вашей стороны?
Проблема компетентности и профессионализма есть, но описанный случай не об этом
А к рынку "успешных менеджеров" вы это не относите?
Публикация вызвала противоречивые чувства, прямо как в хабровском спойлере. Комментарии прочитал как отдельное и захватывающее повествование. ИМХО, главное слово тут не "оправдание", а "ответственность". Если на работе происходит мой косяк, я действую так:
Оповещаю всех связанных коллег, что херня случилась.
Озвучиваю, как все можно поправить и поправляю(ем).
Объясняюсь - из-за чего все случилось и как избежать подобного в будущем.
В исходной истории, вроде бы, перепутан порядок пунктов, оттого и все плохо.
Хорошие API можно написать и на Visual Basic в Ворде.
Автор, а напишите, плз, триллер пост на эту жуткую тему. Как раз под зимнее настроение, типа страшная история, которую можно рассказать "в кругу друзей у камина, когда стаканы наполнены..." ©
Взяли нового работника и он не вывез? Ошибка тимлида. Ну или как у вас он называется. Нет, это не ошибка работника. Он может быть очень плохим, но вы его наняли и с ним работали под свою ответственность.
Именно здесь проходит грань ответственности - ты отвечаешь за других. Именно это настоящая ответственность. Не надо её перекладывать на подчинённых. Если к вам есть претензии с уровня выше, то прикрыться "он не сделал" не выйдет.
Именно это настоящая ответственность. Не надо её перекладывать на подчинённых
Это так не работает, не тешьте себя иллюзиями из романтических рассказов. Если руководителю ненакого перекладывать свою ответственность, зачем они такие безответственные тогда ему вообще нужны, для массовки?
Взяли нового работника и он не вывез? Ошибка тимлида. Ну или как у вас он называется. Нет, это не ошибка работника.
Ну как… если работник какие-то скиллы заявил на собеседовании, вполне логично, что их наличие у него — как раз ответственность работника. Тимлид, это же не нянька для взрослых дядек и тётек, его работа принимать решения и назначать ответственных, а не везти всю ответственность команды на своём одном горбу. Да, если тимлид дал задачу сотруднику, который соответствующими скиллами не обладает, это его ошибка. Но дать задачу разобраться в проблемах библиотеки программисту, который сам же эту библиотеку притащил и заюзал, это абсолютно нормально и уместно.
если работник какие-то скиллы заявил на собеседовании, вполне логично, что их наличие у него — как раз ответственность работника
Если я заявлю, что я умею пилотировать Боинг - допустят ли меня до штурвала?
Полагаю, нет - максимум для начала дадут порулить кукурузником, чтобы посмотреть на реальные навыки.
Если я заявлю, что я умею пилотировать Боинг — допустят ли меня до штурвала?
Эм… да, допустят. Вы же не думаете, что пилотов авиакомпаний после приёма на работу сразу на кукурузники бросают, а не садят на те лайнеры, для которых их, собственно, и взяли? А если пилот сел в кресло и не знает, что ему делать — ну тогда да, его попросят на выход. Потому что врать не надо.
Точно так же и с программистами. Да, первые задачки даются простые, но это не ради обучения там основам тайпскрипта, а для того, чтобы дать человеку ознакомиться с проектом, к которому он подключается. А сказать на собеседовании, что «вот это я не знаю» — это абсолютно нормально и правильно.
Пилоту недостаточно заявить, что он что-то умеет. Он обложен комиссиями и сертификатами по самые не балуйся. Поэтому его и садят сразу на лайнер, на который он прошёл подготовку (на каждый тип ВС - отдельно), его компетенция многократно проверена и подтверждена. А программисту во многом достаточно просто сказать, или показать пару сомнительных бумажек, которые ничего не подтверждают.
А программисту во многом достаточно просто сказать, или показать пару сомнительных бумажек, которые ничего не подтверждают.
Это следствие оптимизации костов при найме, ну скажем так, гастарбайтеров с улицы джейсоны перекладывать. Кому действительно важны специалисты, смотрят и на сертификаты и потом еще платят вендорам за недешевое дообучение.
но это не ради обучения там основам тайпскрипта
Как мне кажется, еще и для того, что чувак адекватный и понимает, чего от него хотят
А если пилот сел в кресло и не знает, что ему делать — ну тогда да, его попросят на выход
Про то и речь. И у меня есть подохрения (пусть я не сильно ориентируюсь в сфере и могу ошибаться) что такие проверки происходят на учебных самолетах/симуляторах, а не тогда, когда за спиной несколько сотен пассажиров
Как то у вас все простенько. Эй, я пилот. О, давай быстрее за штурвал. Ага?
и требовалось от него не совсем то, что заявлялось, кстати.
В резюме - по сути, реклама, а что уж на самом деле - надо проверять.
Как эссе или пример ораторского искусства просто шедевр. Вместо программист можно подставить любое название профессии, что не изменит драматизма.
По сюжету, почему-то выглядит как байка из аутстафа, где главное требование к персоналу - удовлетворять клиента, до потери сознания, хоть гоулэнгом, хоть нестом в докерах - лишь бы тот не кончал платить пока не опомнился.
Мне почему-то представилась сцена в борделе, где хозяин устраивает публичную порку за отказ работать, так сказать в назидание остальным. Паспорт, надеюсь, Васе отдали?)
По сюжету, почему-то выглядит как байка из аутстафа, где главное требование к персоналу - удовлетворять клиента, до потери сознания, хоть гоулэнгом, хоть нестом в докерах - лишь бы тот не кончал платить пока не опомнился.
(сначала смеялся, потом плакал)
ну прямо хоть в рамку ставь!
А в чем проблема ? Такие проекты и клиенты тоже имеют право быть. Например - заказ некрупной, но сильно уникальной системы. Если вписывается в требования и решает задачи - не пофиг ли, на чем она реализована ?
Если вписывается в требования и решает задачи - не пофиг ли, на чем она реализована ?
50 оттенков серого. Где то будет управление рисками, требования по availability, SLA и ранбуки для обученного саппота как тушить пожары, а где-то лид, который хочет в отпуск и новый мерседес, у кого один универсальный ранбук - Вася, спасайтыжпрограмист.
не пофиг ли, на чем она реализована
А потом автор увольняется, а вы идёте на рынок искать человека, готового поддерживать вашу экзотику. Ищете долго и дорого.
Бонусные очки, если заюзали какой-то редкий фреймворк, а его автор через год раз и перестал его поддерживать, и теперь нужно либо всё переписать, либо самим латать дыры.
не бывает такой штуки, как «это плохо работает». Бывает только «я в этом не до конца разобрался»
Так-то оно вроде правильно. Только порой начинаешь разбираться, а там сначала одно вылазит, потом другое, а потом тако-о-о-о-е… и получается нужна неделя на разборы, а руководитель уверен, что и одного дня много. И опять ты получаешься некомпетентным бездельником, короче — плохим программистом ;)
Если библиотека настолько отвратительного качества, что базовые вещи оборачиваются в "тако-о-о-о-е...." - то да, извините, но вы некомпетентны, раз выбрали ее.
Бывает и так, что приходишь на существующий проект, где решения принимали N лет назад люди, которых уже и нет в компании. А проект всё равно нужно поддерживать и развивать.
А если такой кейс в принципе не предполагался.
История из прошлого: Был молод и не опытен, заказчик богом клялся, что номер договора уникален и не при каких условиях повторяться не будет. Из этого я принял решение завязать часть логики на нём. Догадайтесь что случилось через пол года.
Ох уж эти любители радовать гендиров с их замами с Golang-понтами. Джун и джун, ему бы пока только простую бизнес-логику писать, да смотреть что вокруг происходит. Заставили его вместо этого разбираться в чужом фреймворке, чтобы реализовать в нем то, что не реализовали его разработчики, зашеймили наверняка, и в итоге когда парень демотивировался насколько что сказал "я всё" — выгнали.
По моему автор излишне эмоционален. Для меня, как для интроверта, настоящая боль работать с такими. Иногда люди не сходятся характерами. Тогда появляются проблемы в коммуникации и, как следствие, в понимании задач и их выполнении.
Автор столкнулся с другим типом характера человека, не понял как с ним работать, а потом сверху высыпал бочку обвинений. С моей точки зрения это выглядит, как будто этот человек посмотрел на автора, на методы работы компании, понял что не сможет так работать и просто ушёл.
P.s. согласен с мыслью, что рынок переполнен вайтишниками, которые про наличие документации впервые узнают на собеседовании, а написать что-то большее, чем код по мануалу для них - это рокетсайнс. Но, имхо, пример с Василием неудачный.
Согласен. Такое высокомерное выливание эмоций желчью - это не очень профессионально.
Я помню когда то смотрел передачи про Гордона Рамзи - шеф-повара, который "разносит" рестораны. И мне там попалась одна интересная мысль, что Гордон никогда не унижает человека публично. Он может отвести человека в сторону и высказать ему все претензии и недостатки, но, даже в шоу он делает это в стороне от камеры. При этом публичной критике подвергается именно конечный продукт.
По этому я так же считаю верхом непрофессионализма когда выносят отношения между собой на всеобщее обозрение. Но тогда и статьи не получилось бы.
не понял как с ним работать
А как надо было ? Есть конкретная проблема. Она озвучивается. Но никак не может быть исправлена. Это длится несколько итераций.
Если ты подходишь ко мне и говоришь мне "Я не смог запустить эту штуку на этой неделе, но я пойду биться об стенку, чтобы выяснить как она работает, а на следующей неделе, гарантирую, она запустится", я тебе поверю. Ты можешь сколько угодно раз не смочь. Главное, чтобы ты мог встать, развернуться и сказать "ну что же, придётся мне посидеть и что-то с этим сделать."
Я не программист, хотя и изучал в свое время Borland Pascal 7.0, QBasic4.5 и даже использую макросы по работе в MS Excel, однако по своей отрасли (строительной) скажу так:
есть те кто ищет отвественных, есть те кого интересует что бы человек с 8.00 до 17.00 сидел на рабочем месте и делал только то что скажут и не вздумал даже проявлять инициативу. Очень многих берут потому что на собеседовании вроде как психологически подошел коллективу, т.к. руководитель понимает, что условный круг задач выполнит почти любой пришедший на собеседование.
В Вашем понимании Ответственных специалистов ищут достаточно редко, это пусть и не штучный товар, но т.к. в его воспроизводстве необходимы не только деньги не факт что он в какой-то момент не решит сменить амплуа за то что платят больше, а требуют меньше.
Следующий момент:
и ты знаешь, что Василий
Геннадьевич, директор компании, очень радуется, когда серваки работают
без сбсбоя.
Это касается эксплуатации в любом ее виде. Очень мало руководителей готовых платить за то что работает без сбоев. Люди начинают считать что так и должно быть, это само... В итоге, Вы уж простите, но самые ценные в эксплуатации те сотрудники, что позволяют несчастьям случаться в контролируемом режиме, что бы их быстро устранять. Тут все понятно - была проблема, ее устранили, человек справился. Молодец. Всегда на острие и на виду, и на доске почета. А если будешь не допускать проблемы, то про тебя будет не слышно, да и трибуну тебе никто не даст, рассказать какой ты хороший... зато другие про себя расскажут всякое, не факт что после этого тебе не прилетит.
Я это к чему пишу!? К тому что Вы, как руководитель и программист, должны понимать, что человеческие нейросети в мозгу работают так, что в общем случае мало кому нужна объективная картина. Это дорого. Это несправедливо, а еще и не ценится, в т.ч. благодаря манипуляциям коллег. Люди могут простить все... кроме успеха. Соответственно среди наемных работников такое поведение сегодня воспроизводится слабо и плохо.
И последнее, но не менее важное, на мой взгляд отчуждение результата своего труда, не то что бы это порой плохо оплачивалось, а в том что смысл стараться если никто не оценит.
Исключительно ИМХО и точка.
Не оправдывая разработчика, и не оправдывая хамовато-хозяйский тон автора, замечу что:
Автор-Менеджер с ходу оценивает эту задачу как "простую", упуская все остальные технические детали, что говорит о том что его технический уровень недостаточен чтобы оценивать это.
Проблем в данной задаче можно накопать уйму и маленькую тележку (в общем случае)
Должен ли упавший запрос просто вернуться с ошибку, но потом переподключиться , или же должен висеть и не сбрасывать пользователя. При этом не блокируя другие запросы.
Если там какие-то обновления - то надо повторять, именно запрос что упал, или транзакции откатывать
Если там вдруг напрямую лезут в базу через драйвера, то надо весь код оборачивать и, опять же куча нюансов типа обновлений состояния, которые могут быть, а могут и не быть в простом коде.
Можно ли делать это в middleware и потом перезапускать - не знаю, кстати интересно
При правильном проектировании типа доступа к инстансу пула через свои методы - это решается легко для практически любой сложности, но если нет - то мест для осмысления может быть не мало
Автор-Менеджер с ходу оценивает эту задачу как «простую», упуская все остальные технические детали
Но с другой стороны, додумывать технические детали в отношении совершенно неизвестной софтины — тоже дело неблагодарное :)
Как мне кажется @inv2004 имел ввиду что есть множество возможных проблем. И некоторые из этих проблем могут быть вне текущей или желаемой компетенции разработчика. Если бы мне поставили задачу для решения которой пришлось бы шаманить с CSS, я бы попытался, но после первых неудач предложил бы поискать кого-то другого для её решения. Это не та сфера в которой я компетентен или хочу развиваться. На работе я хочу делать то в чём я компетентен или хотя бы продуктивен.
Более того. Нужно еще правильно определить проблему с условным Редисом. А то так можно бесконечно ритраиться...
Мы например пришли к тому что мы будем падать на любых ошибках подключения к внешним сервисам (базам например). Но, мы сделали нормальный graceful shutdown (что кстати имеет свои подводные камни) и у нас есть автоматический скейлинг.
Да, кстати, ещё одна вещь. Ты обязан знать, что, блин, происходит в твоих программах!
(боль человека, который получил в наследство проект на Spring и теперь периодически лезет в его кишки, чтобы разобраться, как работает очередной edge case, да)
Эта статья прекрасна просто во всех отношениях. Спасибо автор.
Ты — программист. Значит что ты должен уметь заставлять компьютеры делать то, что от них требуется заказчику.
Вот это утверждение из разряда "Тыж программист, почини микроволновку".
Есть такое понятие - специализация, и это необходимо учитывать, почему-то многие "менеджеры" не понимают этого. Если я занимаюсь разработкой DWH на MS SQL Server, то на PHP точно ничего путнего не напишу, это будет боль и страдания и для меня и для того кто потом с этим будет работать
Мы отправили наше приложение в докер. И я решил, что это неприлично, что проект на NestJS падает насмерть, когда происходит отсоединение Redis или базы данных.
А зачем что-то ковырять в кишках для решения проблемы, если можно задать restart policy у контейнера?
Потому что этот workaround работает плохо/ненадежно, так же как и его старая версия "перегружайте сервер два раза в день"
"перегружайте сервер два раза в день"
Если речь о перезагрузке сервера "просто так", то это не то же самое, что автостарт контейнера/демона после падения.
И, тем не менее, только что стартовавший контейнер будет "холодным", и ему потребуется время чтобы выйти на полную производительность. Что особенно заметно при использовании JIT (а нода его использует).
Гораздо лучше если контейнер не будет падать по пустякам.
И, тем не менее, только что стартовавший контейнер будет "холодным", и
ему потребуется время чтобы выйти на полную производительность.
Если приложение постоянно разрабатывается и депоится, можно предположить, что контролируемый перезапуск при деплое случается гораздо чаще, чем обрыв соединения с БД, поэтому тут в пределах погрешности.
Гораздо лучше если контейнер не будет падать по пустякам.
Тут зависит от того, что считать пустяком и насколько глубоко ты хочешь ковыряться. Если предполагается, что основная задача приложения - это работать с данными в удаленном хранилище, то и при недоступности этого хранилища упасть не грех.
Не хочешь каждый раз поднимать потом руками - настрой restart policy. Потом можешь сколько угодно ресерчить, как разрулить проблему с "морганием" сети на уровне приложения, ковырять сорцы фреймворка, читать платную документацию, но теперь уже без стресса.
Я понимаю что это разные вещи. Кстати, перезагрузка сервера не дожидаясь проблемы лучше, чем автостарт после падения. Так как никто не знает, как ведет себе апликация перед падением.
Автостарт после падения маскирует проблему - memory leak или другую.
! Я буду сидеть и тупить в логах, пока не найду настоящую причину этой проблемы
вообще в 99.99% это не задача для программиста (кроме случаев разработки-отладки своей программы, но там тупить можно не только в логах). Это задача для инженера по эксплуатации программного обеспечения.
Ох сколько я таких умников видел, которые кучу задач или решить не могли принципиально или не смотря на весь свой опыт решали их на уровне дикого джуна. Зато пафоса всегда было море. А как задашь вопрос на общее развитие человек оказывается вообще дурак-дураком и банальщины за рамками своей рутиной работы не знает.
Это я про автора самой статьи если что.
Вся статья это одна попытка оправдать свои поступки и решения, в результате которые не получилось достичь своих хотелок.
Если вы хотите что-либо на REST API и Golang, но при этом хотите вырастить специалиста, тогда логичнее было бы взять молодого специалиста, у которого в резюме хотя-бы упомянается пара проектов на необходимых вам технологиях. И да, хорошо бы на собеседовании проверить наличие знаний по нужным вам технологиям.
Всю статью автор пытался оправдать себя и написал заголовок "Прекращайте оправдываться", так начни с себя и признай свое неграмотное руководство.
И да, интересно было бы узнать все условия работы специалиста, включая з\п.
Ну вот откуда всё это? Ну вот реально, откуда это взялось? Я для РУВДС писал статьи от нефиг делать до 23-го Февраля прошлого года. Теперь не пишу.
Я уже как 12 лет живу в США, гражданином коих и являюсь. Предложенная зарплата равнялась $3500 в месяц. Никакого отношения к РУВДС это всё не имело.
3500 в месяц это нормальная зарплата?
Статьи могут лежать в черновиках месяцами. Их выпускают по необходимости. Если очень хочется - можете спросить у Рувдс, был ли у них такой, писал ли.
Более того, вот вам, держите. Можете сравнить, что там в профиле написано.
![](https://habrastorage.org/getpro/habr/upload_files/7ce/0a2/ee1/7ce0a2ee1364489644b8ef7c0a54afb2.png)
И при всём при этом, я буду писать на Хабр чисто для удовольствия, потому что хабр - писец какая офигенная платформа.
А если вам очень хочется — вы можете пойти и спросить у Отуса, преподавал ли я у них. Преподавал.
И всё это делается не для денег, А для того, чтобы я мог поделиться с другими своим опытом. Их есть у меня. Как и у вас.
И когда я нанимаю в свою компанию, я никогда не пытаюсь работать с такой фигнёй как "HR". Я просто иду в свой телеграм и нахожу одного из студентов или знакомых на Хабре.
Вы сейчас оправдываетесь... прекращайте оправдываться.
А что, если это просто ограничения технологии? Вот возьмем например лямбда-технологии, типа амазон-лямбда и т.п. Как я понимаю (но не использовал это ни разу, так что могу очень сильно наврать) там смысл такой, что по запросу запускается одна функция, отрабатывает и закрывается, не сохраняя никаких стейтов. Правильно ли будет в этом случае требовать от разработчика чего-нибудть типа "я хочу, чтобы ты написал вечный цикл, который будет всегда ждать нового запроса"? Так может и в этом NestJs такое поведение - не баг, а фича? И смысла пытаться это исправить нету?
Автор нам пытается сказать, что всегда нужно копать до-победного, но нет, всегда есть ограничения технологии, всегда есть момент, после которого надо остановиться, и попытки закопаться сделают лишь хуже.
Например, в плане оптимизаций долгих запросов есть 2 пути, как это сделать, технический - копать до победного, с невероятным усложнением кода, который в итоге никто не поймет, и менеджерский - например, просто отключить клиента, кто генерирует такой медленный запрос. Многие конечно сейчас накинутся на меня, типа как это - отключить клиента, но это вполне рабочий способ. Может, это задача клиента оптимизировать свой запрос так, чтобы он подходил под ваши ограничения, а не наоборот, кто знает. Может, клиент допустил какой-то глупый баг, чем повесил вашу систему, вы потратили кучу времени и сил, чтобы этот баг снивелировать, а на самом деле нужно было просто любым способом намекнуть клиенту, что это он неправ. Всетаки в игру "оптимизации" играют как правило 2 игрока - клиент и сервер, и не понятно, почему задача "оптимизации" должна ложиться всегда на сервер.
У меня два вопроса:
1) сколько лет опыта у Василия?
2) Я человек старый (1963 г.р.), в контейнеры не влюблен, но все же - почему потребовали убрать контейнеризацию вместо того чтобы понять и починить падающий Redis (или что там было)?
Откуда у этого эпоса столько плюсов, хотя в комментах только минусы? Вообще хохма конечно что такое на хабре публикуют, сюда скоро домохозяйки будут заходить вместо ветки фигурного катания на спортсру)
Ха, мне понравилось. Но это статья из прошлого. Сейчас вам расскажут про узкую специализацию, про то что есть джуны и мидлы, что вам не хватило софтскиллов, ну и про право на синдром выученной беспомощности.
Когда я начинал карьеру - всё было именно так, как вы пишите. Программист любит знает и хочет понимать как всё работает. Любая задача в любых условиях, особенно приправленная пользой для бизнеса - самый желанный вызов. И не важно, есть ли такая уже в твоём бэкгрануде и получил ли ты уже погоны мидла, - это всё чушь и инфантильные отговорки. Твоё мастерство рождается здесь и сейчас, и никто не виноват в твоём поражении. Программист закалялся, как и любой человек, через почти экзистенциальные испытания.
Но времена Дикого Запада прошли. Мы заполнили пустоты в нашей жизни грейдами, специализациями, софтскиллами, гендерной, расовой повесткой, правом на хотя бы 20 когнитивных искажений, переодические выгорания и походами к психотерапевту и т.д... И все неявно должны тащить не только равенство полов, но и все эти новые социальные игры. Спецназ от программирования живёт в параллельных очень аскетичных вселенных и стоит дорого.
199* год рождения - это молодой?)
Я попадаю в эти рамки и у меня уже 10+ лет опыта, описанные в статье задачи довольно простые, с ними должен справляться кто угодно.
У меня скорее к вам вопрос - почему вы систематически работаете не с теми, хотя на рынке полно хороших специалистов.
Лично я и мои друзья 199* года рождения могут решить ваши задачи на любом стеке технологий, включая монолит на Си или С++ быстро и качественно.
В связи с чем вопрос - почему мы у вас не работаем и не живём счастливо?
Подозреваю что что-то с наймом, репутацией или банально зарплатой.
Интересно, а в реальности он тоже затирает этот бред про то, чему там радуется гендиректор?
?желание писать код, когда уже сонный
Что же дискуссию развели, вопрос о том, в том, что не знаешь не проблема пойди разберись, почитай инструкцию, не знаешь. я тебе помогу, направлю.
Вот и все!
А красивые истории почему нет - не хочу слышать поддержку топик-стартера.
Что я обычно говорю аспирантам в таких ситуациях: самое лучшее оправдание всё равно хуже, чем самый плохонький результат)
Проблема похожая на мою с кафкой в несте. Но у меня 3 решения было - написать сервис, кастомный транспорт(сделал так), или сделать правки в транспорте в репе. И в несте именно так, чуть шаг влево, вправо и ничего нет. Документация только по самым верхам. Вводится куча абстракций а зачастую как они ложатся на различные библиотеки непонятно. И тут видимо подводят к тому что надо платить.
А знаете, что такое ответственность?
Ответственность бывает гражданской, административной и уголовной :)
Вообще, то что сервис падает, когда теряет соединение с транспортом или базой, это by design, ИМХО. Так как смысл в сервисе, который без доступа к данным? Так что, как писал тут один комрад, смахивает на ошибку XY все это точно. На лицо ошибка архитектора, которого, судя по всему - не было :) В итоге пострадал бедный джун, которого пытались заставить исправить нормальное поведение NestJS... Но выводы сделаны абсолютно неправильные. Правильно, зачем нам ФТ, НФТ, когда можно написать ТЗ в виде "API из 5 эндпоинтов"
Возможно, Василий мог задуматься, если бы после второй неудачной попытки решить задачу, она была назначена на другого инженера, который решил бы ее в срок и без отговорок. Тогда бы он мог задуматься, что он делает не так и почему этот парень сделал за 1 день то, что он не смог сделать за неделю. (Я понимаю, условия, контракты, сроки и т.п. ) Это так, размышления, увольнение это прям как то жестковато...
На собеседовании спрашивали как деревья сортировать, а в реальной работе оказалось, что надо проект поднимать когда Редис падает. Вася, видимо так и не понял что ему отсортировать-то надо в итоге
Человек нанял каменщика что бы построить 100 этажный дом в то время как надо было нанять архитектора?
А почему притензии к каменщику? Пианист играет как умеет.
Менеджер завалил проект - его и надо наказывать.
Не будьте как этот менеджер. Не пытайтесь в то, что не умеете, не обвиняйте в своих провалах ваших подчинённых.
Играть чужими жизнями - плохо. По возможности - избегайте этого.
я лично в этой статье вижу типичные оправдания и перекладывания ответственности.
Почему-то наняли джуна
Почему-то с другим стэком
Почему-то дали выбирать джину стэк
Почему-то не описали эдж кейсы
Но виноват ясен пень джун
Я уже давно уверен, что признак хорошего руководителя это уметь найти те области, которые хорошо закрывают те или иные сотрудники. А чморить своих сотрудников это как раз признак очень плохого руководителя
О. Почувствовал себя Василием.
Меня увольняли всего пару раз в жизни и один раз ровно потому же почему и Василия. Поставили задачу, я проваландался достаточно долго, но реализовать её идеально так и не смог. На мой взгляд виноват не я. Но вероятно и Василий себя виновным не считает.
Вообще было бы прикольно почитать эту же историю со стороны Василия.
Вообще было бы прикольно почитать эту же историю со стороны Василия.
Согласен, нельзя составлять мнение не выслушав доводы другой стороны.
В конце концов, в чем-то я Василия тоже понимаю. Меня в своё время, лет 15 назад, уговорили поработать в компании в должности супер-универсального специалиста-системного администратора. Знакомые посоветовали меня им, а хозяин уже пригласил на встречу и уболтал меня. Я не хотел туда идти, но будучи молодым и недостаточно самоуверенным согласился - на меня повешали парк компьютеров в пару сотен, разработку сайта на php и поисковую оптимизацию. Бюджет на контент не выделяли, поэтому приходилось самому заниматься им. Сложно было всё совместить и обязательно проседало направление, на которое не хватало времени. Либо ты занимаешься техникой, но проседает сайт и позиции в результатах поиска, либо занимаешься сайтом, тогда у множества людей проблемы с техникой и они жалуются директору. Искренне старался всё успеть, но почувствовав, что не вывожу сам ушел.
Целиком и полностью поддерживаю автора статьи.
Автор, не надо считать что все приходящие к тебе - Василии. Это не так.
Если человек начал оправдываться, прежде чем "ооо...с этим все понятно"... Прочитай лекцию про оправдания, вот как в статье описал также и вживую. Потому что это действительно важно.
Ору с комментаторов-умников. Придираются к частным примерам, когда в целом посыл статьи очень и очень крутой. Типичные люди которые везде найдут "не слава богу". Спасибо за статью! Дает пищу для размышления и рефлексии
Ты — программист. Значит что ты должен уметь заставлять компьютеры делать то, что от них требуется заказчику.
Вам не программистов на работу нанимать надо, вам волшебники нужны.
С общем посылом скорей согласен.
По поводу ситуации с сотрудником скорее не согласен, хотя, хз, возможно, текст не передаёт всего, что было и я бы тоже был рад, что подобный сотрудник ушёл.
Но, если бы я брал джуна и давал ему подобную задачу(я кстати не синьор ещё ни разу), я бы ему конкретно сказал на чём делать и описал бы как делать в общих чертах, детали пусть идёт гуглит или смотрит на похожик проектах в репозитарии или приходит ко мне, я бы ему подсказал, если для меня это как два пальца обоссать.
Тем более, что как вы говорите, человек никогда сам ничего не делал кроме литкода. Короче, у меня скорее негативные эмоиции к автору остались, чем к сотруднику. Короче веет от этого вот этим - "Эээ, а ты чё такой выёбистый пиздюк? Научился литкоды делать и резюме писать и думаешь круче всех? Или, бля, думаешь ты программистом стал от этого? Ааа? А ну иди сюда, щас я тебе покажу какое ты на самом деле говно."
Похоже на то когда батя пиздит, чтобы ты привыкал, что тебя по жизни будут пиздить :)
Кстати, помню похожую статью, когда начальник будучи раздражённым насколько джун ходил и выёбывался со всеми по поводу знания новомодных технологий(типа React) и он дал ему зубодробительную задачу и напиздел, что она очень важная и срочная и потом смотрел, как человек месяц мучился и в итоге ушёл из компании. Браво, как говорится.
И ещё добавлю, заебись конечно, когда человек мотивированный и прям тащит, но такой человек и без вас затащит и всё найдёт и во всём разберётся. А тому, кому похоже нужна была помощь вы помочь не смогли и ещё пост написали, что он говоно)
В тему джунов и карьер:
я вакансию на hh видел, TypeScript разработчик.
Требуемый опыт 3-6 лет.
Там видно, сколько желающих откликнулось.
Я был бы 871-м.
Интересно, на что рассчитывают люди, когда откликаются, видя, что они уже не в первой сотне?
Ну да, ответственность - способность ответить. И не только по всей строгости закона, а в первую очередь способность ответить на вопрос почему оно вот так вот работает.
На самом деле, ответственность — это когда пахнет деньгами.
Когда ты идёшь по коридору, а мимо проходит Гендир с Замом, и оба они тебе подмигивают, и говорят: "Вот он! Идёт! Спасибо за отличную работу!" вот тогда ты понимаешь, что на самом деле значит ответственность.
А ловко с денег на "спасибо" перескочили. )
Спешу сообщить что я "плохой программист" и не горю желанием писать вне своего стэка. Впрочем обещаю подумать если автор готов платить х3 как минимум. С другой стороны если речь идёт о знании своей работы то с большего согласен с автором. Но разбираться в golang исключительно потому что кастомуру впадлу нанять гофера, я могу но не обязан
У меня был опыт разбираться в проблемах до конца, но мне за это не платили. Только я себе своим опытом. Это вы такой пушистый и готовы дальше работать с человеком, который создает в проекте по времени фейлы. Большинство нет. Они формируют рынок. По этому многие разработчики лезут в ниши, где время относительно предсказуемо заниженной сложности устраивает работодателя, а фейлы оговорено перекладыватся на людей с более широкими ресурсами. Закрывать то кто-то проект должен.
И насчет ответсвенности. Их много, а не только та, что перед вами. Есть ответсвенности перед собой, женой, детьми, родителями, коллегами и т.д. Когда одна ответсвенность, то это просто, а когда их нужно согласовывать и сохранять ресурс, то все не так просто. Оправдание? Но и вы себя оправдываете через ответсвенность. Ту что для вас важней.
Анекдот в тему, найденный где то на просторах Сети:
Заходят как то в тренажерный зал Большой-и-Важный-Чсвшник из центра вселенной и маленький спортсмен Василий из далекой страны.
Большой-и-Важный-Чсвшник: "ну што, Василий, видишь вон ту штангу? Подымай! Я в тебя верю!"
Василий: "ээ....500кг?! Нет, не могу, да вы что!"
Большой-и-Важный-Чсвшник: "ну што же ты, Василий, не оправдывайся, возьми и сделай...я рядом постою, подбадривать тебя буду! С такой то помощью точно справишься! Эх, Василий, вот я то в твои годы!..."
Василий: "да я же под ней все кости переломаю! Она ж меня задавит блин!"
Большой-и-Важный-Чсвшник: "ну што же ты, Василий, это всего лишь штанга, а ты уже сдаешься....тыжпрограммист спортсмен, ты должен уметь все даже из моих самых сокровенных фантазий!"
Василий: "нет."
Большой-и-Важный-Чсвшник: "ну што же ты, Василий, я хотел сделать из тебя мужчину, а ты оправдываешься и во всем винишь штангу! "
"Пойду-ка я отсюда от греха подальше" - оглядевшись вокруг, подумал Василий и ушел искать более адекватную среду.
"Пойду-ка я расскажу всем, как я, такой хороший, люблю превращать мальчиков в мужчин! А они, такие безответственные, не выдерживают и сдаются!" - подумал Большой-и-Важный-Чсвшник, надеясь найти себе новых мальчиков, которые наконец-то возьмут всю ответственность на себя.
Хорошо лезть в исходники когда у тебя уже имеются представление о том как они могут быть устроены. А если там абстракция на абстракции то там всё запутанно и страшно, и с каждым шагом ты всё меньше веришь в себя. Можешь сравнивать не со штангой, а с походам в лес. С опытом ты можешь ориентироваться по солнцу, звёздам, мху. А без опыта просто плутать.
Пост выглядит как оправдание за то, что уволил сотрудника.
>>Когда ты идёшь по коридору, а мимо проходит Гендир с Замом, и оба они тебе подмигивают
Ага, щас. Гендир с Замом общаются с ИТ-манагерами. И тут как в известном произведении:
-Кто строил эту дорогу?
-П.А. Клейнмихель
Жаль, что сегодня в резюме не указывают информацию о семейном положении. И многие HR не понимают зачем это надо.
А ведь это ярчайший показатель уровня ответственности человека.
У меня был один программист, который вот такой вася: нихрена до конца не разбирался, не хотел и дрожжал в коленках. Но у него была замечательная тактика: он задалбливал меня вопросами. Якобы он хочет разобраться, вот-вот, ещё чуть-чуть, вот он весь в деле, бомбит вопросами меня с 9 утра до 23 вечера. Через некоторое время я понял, что это просто такой способ морочить голову, и дал пинка. Удивляло только, сколько времени и энергии человек тратил, чтобы скрыть свою некомпетентность. Хотя это можно было потратить на изучение материала и уже давно преуспеть в своей профессии!
Как там говорят - простота хуже воровства?
Классическая ситуация любого проекта - это разработка в спешке. Разумеется, хороший код, авто-тесты, документация, если и делаются, то по остаточному принципу. Разумеется, через пару лет такой проект превращается в комок костылей и багов, с которым сложно работать даже тем, кто его писал, не говоря уже о новых программистах.
И вот сидит руководитель, или тимлид такого проекта, и говорит мне "вот пришел к нам на работу, и давай, не жалуйся, что у нас тут все плохо, бери и делай!"
Серьезно? Во первых, моя задача, как программиста - выявить таких "работодателей" на уровне собеседований. Если не получилось - выявить в первый же день работы, высказать все, что я думаю о работе с таким проектом и уволиться.
И уж точно я не буду подыгрывать всевдоруководителям, которые не соответствуют занимаемой должности, и молчать о проблемах.
P.S. Прочитав заголовок статьи, ожидал содержание вроде "программист, хватит оправдываться за то, что ты что-то не знаешь, или не умеешь - программирование большое, сложное и разное, и нормально всю жизнь тут работать, всю жизнь что-то изучать, и все равно многое не знать и не уметь"
Разумеется, через пару лет такой проект превращается в комок костылей и багов, с которым сложно работать даже тем, кто его писал, не говоря уже о новых программистах.
Угу, а обратная сторона проектов, разрабатываемых неспешно, с хорошим планированием, проектированием, красивым кодом в том, что через пару лет они нередко всё ещё пилятся, не выходя на рынок, а там уже и бабло инвесторов начинает заканчиваться. Вам-то в принципе оно без разницы — ну развалился один стартап, и фиг с ним, пойду в следующий такой же. Но вот руководителю всё же хотелось бы, чтобы он не развалился. Поэтому приходится лавировать между «делать красиво и правильно» и «делать так, чтобы оно приносило доход».
Откуда эта мантра про то, что если проект делается хорошо, то он никогда не будет сделан? Нет, конечно, если руководство не умеет планировать, адекватно оценивать сроки и бюджет - да, не будет. Но это не проблема хорошей разработки. Что вообще за манера кидать в камни в сторону нормальной адекватной и разработки? Давайте еще дома строить с таким же подходом, мол строить по-нормальному долго, давайте тяп-ляп. А то, что дом через 5 лет после постройки станет аварийным, и из него придется людей выселять - ну, с этим будут разбираться другие люди.
Вот прямо на текущей работе, часть команды год потратила на то, чтобы переписать старый проект, который 3 года писали в спешке тяп-ляп, и там все так плохо, что решили написать с нуля.
Надо ли говорить, что проект с нуля делали так же в спешке, и без авто-тестов? И что в нем также куча багов?
Откуда эта мантра про то, что если проект делается хорошо, то он никогда не будет сделан?
Это не мантра, это многолетний опыт :)
Вот прямо на текущей работе, часть команды год потратила на то, чтобы переписать старый проект, который 3 года писали в спешке тяп-ляп
Но тем не менее, его
а) написали
б) запустили
в) он вам приносил прибыль.
Есть очень простое правило: написанная в спешке программа приносит доход уже сейчас. Программа, которую вы пишете долго, просто жрёт ваши деньги до того, пока вы её не запустите. Поэтому «написать на коленке, тяп-ляп, но запустить как можно быстрее, а потом через какое-то время переписывать по-нормальному уже работающий проект» — это действительно в большинстве случаев намного дешевле, чем писать сразу по-нормальному.
Нет, конечно, если руководство не умеет планировать, адекватно оценивать сроки и бюджет -
А это как раз та чудесная штука, которая отличает упомянутое вами строительство домов от разработки софта. Строительные работы, они все прекрасно нормируются и осмечиваются. В разработке софта есть большая доля неопределённости плюс изменяющиеся требования (эджайл же не наша прихоть, а вынужденная необходимости). Поэтому никакое руководство не оценит адекватно сроки и бюджет, только если проект не совсем уж тривиальный.
Это не мантра, это многолетний опыт :)
А я много лет наблюдаю, как компании переделывают одно и тоже по несколько раз, вместо того, чтобы сделать один раз и нормально. Иногда бюджета на переделывание не остается, и компании закрываются.
а) написали
б) запустили
в) он вам приносил прибыль.
Десять раз. Пришел как-то на один проект. Его до меня 3 года пилили. На момент моего прихода работало только 10% от общего функционала. Остальные 90% "работали, но надо починить" - а начинаешь вникать - костыль на костыле, и непонятно, как оно вообще работало. В итоге через 3 месяца после моего прихода проект и компанию закрыли. Спрашивается что кому принесло прибыль?
В разработке софта есть большая доля неопределённости плюс изменяющиеся требования
Вот именно. И вместо того, чтобы хорошенько подумать, бизнес идет по пути "спустим задачу на программистов, пускай быстренько там делают, а мы на ходу поймем, что нужно делать"
Дурная голова рукам покоя не дает (с)
А я много лет наблюдаю, как компании переделывают одно и тоже по несколько раз, вместо того, чтобы сделать один раз и нормально.
Давайте не путать кейсы «сделать грязно, но быстро» и «посадить на проект непрофессионалов». Это два разных случая. Первый взлетает, второй — нет.
И вместо того, чтобы хорошенько подумать
Дык, «хорошенько подумать» неопределённость и изменяющиеся требования тоже не устранит.
Я пока что выполнял таски без оправданий, но иногда это занимает слишком много времени - кодовая база большая.
К сожалению вынужден согласиться с автором. Есть сейчас такая странная тенденция среди (не только кстати молодых) сотрудников - искать оправдания невыполненной работе. И этих оправданий будет 1000 и 1. Однако как говорил мне мой первый начальник: "мне не интересно почему у тебя не получается, расскажи мне что ты сделал чтобы получилось."
Люди, найдите пожалуйста свою профессиональную гордость. Если что-то не получается, если где-то в вашей работе обнаружен косяк - потратьте время, разберитесь почему это произошло и исправьте его. Ошибаются все. Это нормально. Даже если эта ошибка стоила компании денег. Возможность эту ошибку исправить (желательно оперативно, но понятно что не всегда это возможно) - это гораздо важнее. Это уверенность в том, что завтра фирма в принципе не исчезнет оставив клиентов с неработоспособным набором файлов.
Полностью согласен с автором.
К сожалению, проблема поиска виноватых и причин невозможности что-то выполнить присутствует не только в программировании, она везде.
Некоторые примеры из моей жизни за последнее время:
Говоришь копирайтеру, что нужно исправить так-то и так то статью, потому что в ней отсутствует ориентация на коммерческие запросы. Как итог копирайтер не хочет исправлять то, что сделал. Но ведь у него до этого спрашивали "знаешь что такое коммерческие запросы", он говорил "да".
Просишь в ЖЭКе чтобы тебе сделали нормальную температуру батарей. Опять отговорки, то говорят "температуру воды подают низкую", то говорят "давление воды низкое". Но ведь проблему можно решить обратившись к поставщику горячей воды. А реально никто и не собирается это исправлять.
Приходишь в бассейн. Температура воды зимой стала очень некомфортная. Но я ведь деньги за бассейн плачу в том числе и за нормальную температуру в бассейне. Говоришь об этом администратору. Опять отговорки "давление газа низкое" и т.д. Проблему можно решить, если поставить электро-нагреватели. Но проблему так и не решают.
Хоспади. Это ж буквально манифест токсичности русского/российского айти. Послание хейта "неосиляторам". "Ниасилил? Айтишечка не для слабых духом, не для лошков, не для таких, как не я, не для слишком молодых, для слишком старых, не для маркетологов, не для вкатышей, не для клерков. Вход закрыт, выход вон туда".
Боюсь, меня заминусят, но палка о двух концах:
Один конец — бездельничал или ставил неправильные приоритеты
Другой конец — выживал как мог, развиваться не мог. Или даже жертвовал временем "здесь и сейчас" в пользу долгосрочных дел, к примеру, год учил английский вместо программирования, рассчитывая потом наверстать по англоязычным учебникам.
К сожалению, у нас в России больше боятся первого конца, а надо бы и второго.
Автор( профессиональный программист) аж слюной все забрызгал, настолько его задела эта ситуация). Василий тут мало в чем виноват. Задачи надо ставить исходя из опыта человека, опыт проверять на собесах, а не смотреть на 300 решенных задач на литкод. Насчет "сдался" не все тут бойцы как вы ( профессиональный программист). Пока вы писали статью Василий уже наверно нашел адекватную контору в которой более опытные ( непрофессиональные программисты) поставили вменяемые задачи исходя из его уровня. Впрочем главное начальству улыбнуться, а как правильно нанимать Василиев всяких ....ааа просто на хабр статью напишу. Да?))
Прекращайте оправдываться