Pull to refresh

Comments 51

UFO just landed and posted this here
Вы знаете, в последнее время я склоняюсь к мысли, что KISS — это не для джуниоров. Пусть лучше сначала научатся делать хорошо, хоть и избыточно, а уж потом, когда подучатся и станут как минимум regular developers, можно будет начинать бороться с избыточностью. Этапы «делаю как в умной книжке написано» и architecture astronautics тоже еще надо пройти.

В противном случае KISS выливается в «здесь не нужна авторизация», «здесь не нужна валидация», «ошибок не бывает», «функция, которую я вызываю, всегда работает правильно» и т.д.
Сначала делаешь кое-как, чтобы оно просто начало работать.
Потом делаешь, соблюдая ВСЕ известные рекомендации правильной работы.
А потом, набравшись опыта, делаешь, соблюдая свои собственные рекомендации.
Самое главное правило для новичка — спрашивай, для ведущего — отвечай.
А мудаков лучше называть в лицо, для этого обычно даже устраивают ретроспективы, где можно вдоволь пройтись по свои и чужим ошибкам и заслугам.

p.s. Ходит легенда, что если проанализировать действия лётчика во время полёта, то почти каждое содержит хотя бы небольшую ошибку, но он не бросает штурвал, исправляет ошибки, двигается дальше и достигает цели.
Новичок не всегда знает что именно нужно спрашивать из-за каши в голове.
Такой новичок профнепригоден, ему место за партой, а не в приличной команде продакшена.
Пусть сначала учится, читает, «смотрит видео», колхозит какой-то свой софт, выкладывает его на гитхаб и т.п.
Пока он будет учится до уровня, когда его можно подпускать к репозиторию — проект закончится. Ну и смысл такого нанимать?
Смысл немного в другом: человек умеет писать код, и квалификация его именно как «кодера» не вызывает сомнений. Но у него страдает внимательность. Услышав лишь начальные условия задачи, он, зажжённый идеей быстрее писать код, не зная всех нюансов, спешит делать выводы, зачастую неверные.
Если человек пишет код, не понимая решаемой задачи, он профнепригоден. И здесь не в опыте дело.
Есть разница между «он не понимает» и «ему кажется, что он понимает и поэтому у него нет вопросов».
Я а вот согласен с vanxant, только очень уж резко он выражается. Бывает, что работодатель, который в свою очередь является подрядчиком заказчика, нанимает кучу джуниоров — эникейщиков (кодеров, как ни назови) на должность, где должны быть настоящие программисты — т.е. те, кто не просто умеет код, но понимает для чего и как он это делает.

Вывод сделаю такой — кесарю кесарево. Таких джуниоров нужно учить на мелких аутсорсовых проектах, небольших автономных модулях системы за жестким API и покрытых тестами, также хорошо учатся на багфиксинге уже существующего кода (хорошего). Но наш мир не идеален, и зачастую получается, что в целях сиюминутной выгоды таких вот кодеров садят за архитектурные вещи, а у более опытного товарища банально нет времени смотреть что тут не так.
Это из серии: «уметь играть в шахматы» и «знать как ходят фигуры».
Предлагаю вам посмотреть на ситуацию с другой стороны.

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

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

Что я пытался объяснить: если новичок не хочет становиться профи, он всегда будет новичком. Т.е. это не односторонний процесс: не только «тимлид» должен думать, на что лучше направить новичка, но и новичок должен думать, чего он хочет от своей работы: печенки с изюмом, печенки без изюма, изюм без печенек, опыт или мастерство.
Чтобы новичок так думал, кто-то должен что-то подобное ему сказать. Убедительно.
Вот как Вы, например, сказали.
Ретроспективы немного для другого придуманы — для того, чтобы решать проблемы в процессах, по которым работают все, а не для того, чтобы устраивать разборы полетов отдельным членам команды.
1. User login with read access to Invoice view
2. Admin remove access for user to Invoice view
3. User refresh page with Invoice view
4. User still has access to Invoice view
5. User relogin to the system
6. User has not access to Invoice view

Автора этого чуда отправили на принудительные курсы английского?
А бывает сделаешь коллеге замечание по жутко кривому английскому в багтрекере — реакция большинства @«да какая разница, это только для нас», @«нам понятно», @«зато он хороший программист, зачем ему английский»…
Может это по тому что багтрекер — не курсы английского?
На хабре например про опечатки в статье принято писать в ЛС, тут мне кажется логика та самая.
Тут, мне кажется, неоднозначность между «сделать замечание в багтрекере» и «сделать (где-то) замечание об уровне английского, который коллега продемонстрировал в багтрекере». Надо попросить iago пояснить, что он имел в виду.
Спасибо, конечно же я имел в виду замечание в качестве совета лично, без багтрекеров, хотя и не выходил для этого специально из комнаты. Если честно, у меня вызывает подозрения программист, который не уверен в написании слова и не сверится с гугл транслэйтом в переводе, а лепит абы что. Есть мнение, что и в коде у него такой же бардак — у всех плохих программистов, который я знал, был плохой английский, но были конечно и плохие с хорошим английским. Пусть не даются языки — мне тоже не очень дается — но сверить со словарем особых талантов не надо.
А вот здесь я бы порекомендовал сменить гугл-транслейт на словарь получше. Сам пользуюсь вот этим: multitran.ru. Фразеология, переносные значения и тому подобное помогают избежать лишних конфузов.
Бог с ней с пунктуацией, даже с порядком слов, но когда встречаешь что в коде товарищей, что в багтрекере неграмотную орфографию, т.е. человек просто ленится свериться со словарем — это уже печально…
Скорее не ленится, а хуже. Уже встречал таких, когда человек ничтоже сумняшеся пишет так, как слышит (один ещё пропускает буквы), даже порой по-разному в одном и том же тексте. При коррекции говорят, что какая разница, смысл понятен или уверяют, что это я неправ.
От души плюсую собрата по несчастью!
Пусть лучше по-русски пишут, этот набор слов вообще не похож на задание
3. Выяснить, что тебя окружает
Правильный совет, жаль что иногда люди на уточняющие вопросы начинают потихоньку выходить из себя, как будто бы объясняют тупому и ты ещё себя чувствуешь неловко. Но это не происходит там, где обе стороны заинтересованы в результате.

4. Не допускать двусмысленных формулировок своих мыслей
Есть более общее правило: передавайте информацию так, чтобы её понял принимающий человек.
Т.е. нужно учитывать что знает человек или группа людей и правильно преподносить информацию. Это вообще проблема общения.
Ох, прямо за живое…
Был один заказчик, который 4 пункту не следовал ровным счетом никогда, но в ответ на мое выполнение третьего всегда злился и возмущался.
При этом, самому ему приходилось иногда элементарные вещи разжевывать как для дошколят… И его это ни капли не смущало!
Ненавижу двойные стандарты :(
UFO just landed and posted this here
ну как по мне, чтобы не было этих самых «двойных стандартов» нужно перед созданием тз, максимально разжевывать каждый из элементов, и да, иногда и разжевывать элементарные вещи. Ведь заказчик всегда прав… Ну или практически всегда
Но это не происходит там, где обе стороны заинтересованы в результате.
Позволю себе не согласиться, не всегда это работает. Особенно феерично выглядит на стройке, когда, получив задание, надо: во-первых, продумать за несколько секунд (пока начальник в теме) все последствия/преграды/где взять материал (да, и так бывает!); во-вторых, прорваться через всевозможные «меня не е**т те потолки» и «что ты все переспрашиваешь». Поэтому все опытные бригадирА, которых я видел, держат в голове возможные задания (т.е. узнают и просчитывают всё заранее) и обладают непоколебимой стойкостью и упорством.

Есть более общее правило: передавайте информацию так, чтобы её понял принимающий человек.
Очень многие не понимают одной простой вещи.
Если вы разговариваете с человеком и хотите, чтобы он принял вас всерьез,
говорите с ним на его собственном жаргоне. Если же вы цитируете Шелли, но
говорите, как простолюдин, они находят, что вы милы, вроде обезьянки у
шарманщика, но на смысл ваших слов они не обращают внимания. Необходимо
говорить на жаргоне, который они привыкли принимать всерьез. И наоборот.
Половина политической интеллигенции, выступая перед рабочей аудиторией,
ничего не может добиться — и не столько потому, что она стоит выше этой
аудитории, сколько из-за того, что большинство ребят слушают голос, а не
слова; они пропускают слова мимо ушей, потому что слова эти очень уж
вычурные, а не обыкновенная человеческая речь. И вот я рассудил, что надо
сделаться двуязыким и каждый язык употреблять в подходящей обстановке, а
время от времени — вдруг и не тот язык не в той обстановке. Это действует
без промаха.
Д.Уиндем, «День триффидов»
— Хрущ, Хрущ, снеси меня домой! У меня ножки болят.
— А ты где живешь?
— В муравейнике за лесом.
— Далеконько… Ну что с тобой делать? Садись, довезу.
Есть много людей, которые боятся переспрашивать. Думают: «блин, я спросил и мне ответили, а я не понял :( Не буду переспрашивать, а то подумают, что я дурак и не профпригоден».

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

Вот тут-то и начинаются разброд и шатания :)

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

Как мне кажется, основная сила этой статьи — это третий пункт, остальное, скорее, в стиле кэпа. Хотя, я понимаю что без этих пунктов статья была бы не полной и все было бы хуже. Но вот третий пункт отличный. НЕ очевидные но простые вещи, на мой взгляд.Отличные цитаты и примеры. Спасибо.
Особенно исчерпывающие, похожие вопросы разбираются в книге «Эмоциональный интеллект». Крайне рекомендую
Прекрасная статья. Многие люди, как уже отметили выше, боятся переспросить. А некоторых даже бесят уточняющие вопросы. С этим нужно как-то бороться, и понимать, что если на твой вопрос тебе задают еще 10, то это не ради праздного любопытства. Ну и, к слову:

профессиональные игроки не нервничали
Да бросьте, конечно они нервничают, как и все нормальные люди. Другое дело, что они умеют с этим бороться.
Вот именно, умеют бороться, и к моменту старта игры уже не нервничают.
Про англицизмы — есть такая жуткая калька «спросить вопрос». Правильно — «спросить» или «задать вопрос», на выбор. И не говорите мне, что без этой кальки у Вас в тексте что-то непонятно станет :).

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

Интереснее, с моей точки зрения, то, почему такие явления имеют место быть. Очевидно, что если проблема столь массовая, значит дело не в индивидуальных особенностях конкретных личностей.
И вот сейчас мне кажется, что корень проблемы — в раннем детском возрасте, во взаимодействии юного человека с семьёй и школой. Родителей вечно бесит, что их чада задают слишком много вопросов — и те не стесняясь орут на них и затыкают, чтобы просто ощутить тишину. Учителей бесит, когда ученики задают вопросы, которые кажутся им неуместными, и авторы таких вопросов подвергаются всяческому унижению и осмеянию, в результате которого уже сами сверстники понимают, что можно невозбранно гнобить тех, кто лишний раз открывает рот.
В итоге, мы имеем то что имеем: люди, вырастая, продолжают жить по принципу «меньше скажешь — целее будешь», а тех кто, следуя логике из статьи, старается быть многословным и недвусмысленным, подкалывают за «избыточность» и «занудство». И такой подход уже настолько глубоко забит в сознании, что достать его через рефлексию или ретроспективные техники крайне сложно.

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

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

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

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

я всегда объясняю дважды, а потом прошу рассказать, что поняли и как правило приходится рассказывать третий раз.
Вы всегда объясняете четырежды по вторникам и средам после цунами или… Ну как-то так. Короче — я все понял, иду кодить.
Вот про двусмысленность все верно написали. Являюсь новичком и иногда допускаю двусмысленность, так же, бывает, тороплюсь. Уже осознал эти две вещи. Пытаюсь над собой работать в этом отношении.
Sign up to leave a comment.

Articles