Прокачиваем скилл «быстро разобраться в Н.Ё.Х.»

В одной хорошей фирме жила-была, работала хорошая весёлая команда, и пришёл к ним очередной хороший человек, чтобы вместе с ними работать над проектом.

А проект оказался огромной старой Н.Ё.Х., (почти) без документации, первоначальные разработчики давно растворились в воздухе. А у команды стоит над душой эффективный манагер, уверовавший в то, что после первой недели человек должен там уже во всём разбираться и быстро выполнять задачи.

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

20% знаний можно получить из книг, 80% знаний приходится создавать самому, на ходу. Этот навык определяет всё и убирает разницу между junior, middle и senior. Если его не хватает, то компенсировать нечем. От этого навыка зависит всё — и уровень стресса, и производительность, и карьера.

На каком-то хотя бы минимальном уровне этот навык, конечно, есть почти у всех. Но этого мало.

Есть какой-нибудь способ прокачать этот навык? Помимо «пилите, Шура, пилите»? Какие-нибудь хаки, которые могут помочь.
Если у вас это врождённое, вы можете распознать что-то, что вам в этом помогает?
Если вам удалось это в себе развить, то можете поделиться способами?

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Это как раз тот случай, когда писалось по принципу быстро, дешево..

я не знаю какая у вас должность на этом проекте но я думаю если вы работаете в области тестирования то у вас есть возможнось открыть много багов

Я работал на таком проекте, ну что могу сказать.
1) Навык разбирательства в гомнокоде есть. Достигается упражнением: нужно разбираться, тогда со временем будет получаться лучше.
2) Работать ПРИ ЛЮБОЙ СИТУАЦИИ нужно не больше восьми часов в день. Никакие деньги не стоят здоровья и времени, которое можно потратить на семью. Тем более, если бесплатно:какой смысл делать работодателя богаче на шару?
3) Истерящего менеджера шли на х..й. Ну, можно не нах, но говори что мол я работаю восемь часов в день. Всё, что больше за отдельную плату. Быстрее надо вам, мне не надо.
4) Развивай в себе чувство достоинства и уверенности в своих силах. Для этого, с одной стороны учи мат. часть, с другой помни, что ты мужчина.
5) Имей запас денег, чтобы если уволят спокойно искать другую работу и не бояться.

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

сложное — это куча простых компонентов.

И ещё бОльшая куча связей между ними.

после того как получишь ответы на 100500 вопросов всё становится на свои места

Но испытательный срок может успеть к тому времени уже давно закончиться, и задать все 100500 вопросов можно не успеть.

Тут главная беда вот в чем: все более-менее адекватные люди, которым можно было бы задать 100500 вопросов свалили. А если бы они и остались, то тут ничего не оставалось бы как садиться и часами общаться.

Или свалили вообще все, кто стоял у истоков.
И из сваливших всем было лень в своё время документировать код и архитектуру.
И это ещё не есть наихудший случай.

Качественный текст.
Будто пластырь на поцарапанную душу.

Всю жисть вот так сижу и пилю пилю пилю ... Грызусь, скандалю.

Перестаньте грызться и скандалить.
Бейте задачу на части, естимируйте таски, менеджер пусть их приоритиризирует, это его работа.
Ваш вклад в победу — 8 часов в сутки, а менеджмент пусть рапределяет, куда его применять.
Больше профессионализма и спокойствия.

Бейте задачу на части, естимируйте таски,
И это все в условиях отсутствия техдокументации, тестов, понимания бизнес-логики. Т.е. эстимейт чуть ли не рандомный. Поставил задачу на 5 часов — вылилось в 2 недели.
Больше профессионализма и спокойствия.
Это вода. Когда эффективный менеджер к тебе подбегает каждые 15 минут с упреками тут и профессионал не выдержит.

Переестимируйте, утренний стендап на что?

человек должен там уже во всём разбираться и быстро выполнять задачи

Тогда «заткнись и умри как мужчина» (тм);)

это не выход
После goodbye cruel world — в мире станет меньше нытья;)
Гораздо интереснее слушать девелоперов, стабилизировавших НЕХ юнит тестами и тестеров, убедивших клиента в необходимости автотестов.
И все это в овертаймы, ибо, блжад, хотели развиваться.
И развились.
стабилизировавших НЕХ юнит тестами и тестеров, убедивших клиента в необходимости автотестов.
это как двойной гроб фараона.
.
без осмысленного рефакторинга и документирования
НЁХ -> УГ
maintainability->0

Абсолютно не исключает одно другого.
Слышал также теорию, что автотесты — идеальное место для документации.

А премию они за это получили?

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

Да и вообще, лучшее вознаграждение — опыт работы, и «работать в нашей компании — большая честь» © :-)

«работать в нашей компании — большая честь»
То для студентов(тм) — компании появляются и пропадают в лету, а опыт за плечами не носится.
И это все в условиях отсутствия техдокументации, тестов, понимания бизнес-логики. Т.е. эстимейт чуть ли не рандомный. Поставил задачу на 5 часов — вылилось в 2 недели.
Так а в чём проблема? Коэффициент неожиданности для этого проекта 336/5 =67,2, теперь все естимейты надо умножать на это число, сделали раньше — играйте в пасьянс с тестершами.
Так а в чём проблема?
Насколько я понимаю, компания сорвала все сроки (предыдущие 2 команды постарались), проект завален, надо платить неустойку либо разгребать то что есть. В таких условиях я значит подойду и обрадую своего тимлида познаниями о коэффициенте неожыданности и прочей лабуде. Он сам сидит и не может ничерта разгребсти, ну а на нас зло срывает — пилите мол, нехер расслабляться. Рефакторить боже упаси, писать тесты тоже.

Это все не Ваши проблемы — профессионально возделывайте свой участок 8 часов в сутки, бейте задачу на таски и просите тимлида приоритизировать.
Завален был проект, имхо, именно из-за

пилите мол, нехер расслабляться.

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

Коэффициент неожиданности для этого проекта 336/5 =67,2, теперь все естимейты надо умножать на это число

ПМ решит, что человек бредит.

Это его проблемы (ПМа).

Это вода. Когда эффективный менеджер к тебе подбегает каждые 15 минут с упреками тут и профессионал не выдержит.

Я Вас закидал ссылками на умные книжки?
Вы просили собственный опыт, я его и даю.

Если больше:
— спокойствия,
— профессионализма,
— плевания глубоко в душе на то, что тебя не касается
— делегации принятия решений согласно того что делать 8 часов в сутки

то больше уважения со стороны менеджмента и продуктивность.

— спокойствия,
Поясните какие действия необходимо предпринять чтобы перейти из неспокойного состояния в спокойное
— профессионализма,
Что это означает, и как увеличение этого показателя поможет
— плевания глубоко в душе на то, что тебя не касается
Как это зделать?
— делегации принятия решений согласно того что делать 8 часов в сутки
Тогда я стану не мидлом, а джуном
Поясните какие действия необходимо предпринять чтобы перейти из неспокойного состояния в спокойное
Сказать себе «я работаю 8 — 10 часов в день и все что успею — то успею».
Удивитесь своей продуктивности, Вы больше тратите сил на переживания.
Тогда я стану не мидлом, а джуном
У Вас там что — один таск — «спасти мир»?

Берете маленький таск, подбираете варианты, идете советуетесь с тимлидом, как его лучше выполнить. Что там за пределами этого — Вас не должно волновать.

Джунам в этом плане хорошо. Обходятся фирме недорого — значит им простительны косяки со сроками.

И это все в условиях отсутствия техдокументации, тестов, понимания бизнес-логики. Т.е. эстимейт чуть ли не рандомный.
Делайте эстимейт после того, как разберетесь с бизнес логикой. Говорите ПМ-у «мне нужно 4 часа, чтоб понять как это работает, тогда смогу оценить задачу». Через 4 часа приходите и говорите — «там полный ппц, нужно 2 недели, чтоб это сделать, может это не такая уж критичная фича или может сделаем вот здесь и здесь по-другому?»

А на это ПМ отвечает: «2 недели?!» :-)

Но вообще, согласен, подход хороший.

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

Можно:
— Пилить фичи без изучения монстра, от Вас хотят фич — так пилите их
— Забить на кнут, гонку и перформанс, пусть буйный менеджер верует дальше
— На все вопросы отвечать «мы интенсивно работаем 8 часов в сутки»
— Вовлечь буйного менеджера в процесс, пусть выбирает сам из альтернатив и дает задачам приоритеты
— Просто пытаться делать хорошо
— Юнит тесты + рефакторинг

— Пилить фичи без изучения монстра, от Вас хотят фич — так пилите их
Это реально только находясь вне монстра.
— Забить на кнут, гонку и перформанс, пусть буйный менеджер верует дальше, «мы интенсивно работаем 8 часов в сутки»
Что значит забить?
— Просто пытаться делать хорошо
— Юнит тесты + рефакторинг
Этого никто не даст делать — нет времени. Если проект без документации, то тестами там тем более не пахло.
Это реально только находясь вне монстра.
Не понял задачу — нужно написать документацию по проекту?
Что значит забить?
Это значит, что для успеха проекта Вы лишь можете работать 8 часов в сутки.
А менеджер пусть приоритизирует задачи(составьте ближайший список), планирует и за него отвечает.
Не поддавайтесь на прессинг, аргументируйте списком задач, проблем, методами их решения.
Если будет нервотрепка — то и проект завалите и здоровье подорвете.
Этого никто не даст делать — нет времени. Если проект без документации, то тестами там тем более не пахло.
Алтернативы предлагайте. С «юнит тестами у нас один вариант, без них другой вариант».
Напишите парочку в свободное время, покажите преимущества.
Алтернативы предлагайте.
Свалить, если есть возможность. Проблема только в том, что весь аутсорс состоит из разгребания чужого говна.
Проблема только в том, что весь аутсорс состоит из разгребания чужого говна.
Это глобальная проблема любой деятельности.
Только у некоторых получается найти свой путь в ситуации, кажущейся безнадежной, а некоторые любой праздник могут превратить в УГ.
"И с тех пор у меня одна загадка — почему там где я, там и гадко"© ;)
Это реально только находясь вне монстра.

Совершенно верно.

Пилить фичи без изучения монстра

Это невозможно. Фичи существуют (требуются) только в контексте монстра.

Непонятно чтос НЁХ’ом надо делать. Врядли просто смотреть на него, скорее всего допилить какие-либо фичи или создать новые проблемы.

По себе могу сказать, когда занимался такой фигнёй, как портирование огромных досовских проектов под linux/win/qnx, то первым делом я смотрел каждую строчку исходника на поиск проблемных потенциальных проблемных мест. Потом тоже самое, только уже расставлением комментариев типа // MG: xxxxx, где комментарии содержали предполагаемые телодвижения, которые нужно совершить для достижения цели, вы можете просто расставлять толковые комментарии по готовому коду, как для себя так и для коллег. Следующим этапом было написание стабов для успешной компиляции проекта под новой платформой и затем наполнение стабов и поиск расставленных комментариев с целью выполнения того, что там написано. У вас это может быть переписывание целых функций, ведь часто в НЁХ’ах проще переписать кусок кода, чем его отлаживать и выискивать почему он работает не так. Ну вот и всё. После успешного портирования обычно человек уже владеет всем кодом на достаточном уровне для того, чтобы его развивать, если потребуется. Портирование обычно гораздо сложнее того, что необходимо сделать вам, поэтому только читать и комментировать код.

Врядли просто смотреть на него, скорее всего допилить какие-либо фичи

Да. Я это и подразумевал.

От себя хочу дополнить. Как нужно жить вообще, чтобы постоянно не находиться в такой лаже?

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

Уезжать отсюда.
В Украине такие проекты часто встречаются, на что-то нормальное попасть — удача + внимательность. Наши зарубежные коллеги оставляют себе всё самое интересное.

Смотрите какой я вижу выход из проблемы:
1. Уходить во фриланс
2. Уходить в мобайл
3. Уходить в то, что не длиться более 2 месяцев
4. Брать на себя полную ответственность за сроки
5. Не работать в команде
Лично я не вижу смысла пилить за кем-то чей-то кал. Считаю, что разбираться в чужых говнах ни дает никакого опыта (понятия не имею почему другие считают по другому). Если ты программист, то ты должен отрастить яйца и научиться брать все на себя.

4. Брать на себя полную ответственность за сроки
Есть чудесная методология разработки — Development by Denial, то есть работать интенсивно и продуктивно, но не брать на себя все грехи мира и крест специально обученных и предназначенных для этого коллег.

Берите на себя ответственность за конкретные маленькие задачи, сроки — то проблема менеджмента.
Говорите — «могу быстрее , но качество будет страдать». Пусть менеджмент выбирает, как Вам работать.
Чаще ходите советоваться с тимлидом, без ругани.

1, 2-5
Имхо, лучше начать с себя, везде те же овальные предметы, но с другим колОром, так что можете душегубку принести с собой на новое место.
Мое любимое на эту тему:
habrahabr.ru/post/182458

Краковецкий — программист разговорного жанра.

Сочетание теории, говорильни и практики дает неплохие результаты.

Говорите — «могу быстрее , но качество будет страдать»
Качества там уже нет и впомине. Там буквально переписывалась одна и та же фича минимум раза 3, точнее не переписывалась, а впопихах переделывалась, оставляя при этом ужасные незаметные дыры в логике работы. А я пытаюсь переделать в четвертый раз. Быстрее не могу, потому что не знаю как оно работает/работало. Чуток фикшу — создаю еще с десяток багов.
сроки — то проблема менеджмента.
Вы бы видели как цео, отодрав где-то проект, бежит спотыкаясь к этому менеджменту, чтобы обсудить за 10 минут с людьми не имеющими отношения к программированию сроки выполнения такого 5-летнего проекта и дать ответ, дабы отхватить такой жирный кусок.
Имхо, лучше начать с себя
Посмотри фильм секрет © Поверь в себя ©
Посмотри фильм секрет © Поверь в себя ©
Лучше — попытаться сделать.
Можно начать с какой то мелочи, далее по результатам.
Есть чудесная методология разработки — Development by Denial, то есть работать интенсивно и продуктивно, но не брать на себя все грехи мира и крест специально обученных и предназначенных для этого коллег.
Чего только не выдумают, чтобы попытаться намахать самого себя и не нести ответственность. Вот после таких вот и приходиться допиливать. Это ж надо, понавешуют на доску красивых бумажек, типа все зделали, а как полезешь внутрь так ничерта не работает.
Пусть менеджмент выбирает, как Вам работать.
В пределе у любого менеджмента едентсвенная цель — поиметь меня.
В пределе у любого менеджмента едентсвенная цель — поиметь меня.
Вы слишком много о себе думаете. На... вы им [не] нужны.
В пределе у любого менеджмента едентсвенная цель — поиметь меня.
У любого менеджмента единственная цель — эффективность и прибыль.
На Вас им пофиг, а Ваше нытье — раздражающий фактор.
Инвалидов духа никто не любит.
img6.joyreactor.cc/...auto-26866.jpeg

Вы бы начали пытаться переводить проблемы с языка своей колокольни на язык менеджмента — всем бы стало легче.
В любом проекте основная проблема — это непонимание.

Ещё вариант забыли: уходить в стартап.

Это были не варианты, а все в совокупности. Нащет стартапов — хрен их знает если честно — есть наверное свои минусы. Основная идея моей схемы — не пилить адовые говна 5-тилетней выдержки за сраными дураками.

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

А в стартапе — надо быть очень хорошим и работоспособным спецом, чтобы ничто не мешало быстро и качественно воплощать идею проекта.

лишний стресс за те же деньги
Пусть даже не за те же. Стресс угробит — деньги уже не понадобятся. А то что стресс подтачивает — не выдумка (проверено на себе).

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

В стартапе найдется другой повод для нытья.

Есть нытьё, а есть непримиримая критика. Не стоит их путать.

Бывают и хорошие проекты, но крайне редко.

Підписатись на коментарі