Эффективность работы программиста

Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Эффективность работы программиста

Post by Сабина »

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

Давайте поговорим почему одна и та же задача может занимать сильно разное количество времени.
Тут в общем то давно все известно. Помимо «просто девелопер медленный, не справляется» есть ещё куча других разных причин, особенно если не справляется он местами временами, а не все время. Например:
- неавтоматизированные процессы
- плохая инфраструктура
- неправильные приоритеты ( вина обоих и девелопера и его менеджмента)
- плохая архитектура ( это если у него не было выбора)

Про legacy applications там ещё несколько пунктов можно добавить.

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

Примеры того что было сделано:
- сократили время билда ( сложный был продукт) в разы. Прошлись по build log, убрали все inefficiencies. Убедились что у каждого девелопера unified и максимально заточенная под performance local dev environment ( tools, formatting etc)
- отточили процесс планирования спринта, выполнения задач и проч. Время митингов сократилось до минимального, tracking в Джире был близок к идеальному, там можно было все отследить и были видны реальные dependencies и статус без тормошения и отвлечения миллиона людей.
- убрали все задержки связанные с ожиданиями on shared test environments
- code reviews по большим проектам начинали с митинга со всеми заинтересованными лицами, где автор расказывал вкратце что и как. Потом людям давали время до конца дня дать фидбек и не ждали что они в этот день будут делать столько же основной работы как обычно.

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

У вас был похожий опыт ? Вы согласны что от начальства тоже немало зависит ?

Меня немного напрягают все эти ФААНГовские представления о супер Staff Engineer , который «придёт и боль руками разведёт», по двум причинам:
- это нереально, без правильного начальства не получится
- создаётся культ либо волка одиночки, который все делает сам, либо staff инженера который постоянно указывает другим что делать. Это ни какая ни team work ни разу .

В этом месте тоже интересно мнение других. Возможно я просто сужу по тому в чем варюсь последние 3.5 года и там просто полный писец по всем описанным выше пунктам эффективности работы инженера. С приходом Ковида все ещё немного усложнилось, потому что sometimes it takes a village сделать какую то весьма простую задачу. Обычно это результат того что процессы автоматизации и управления инфраструктурой отдали девопсам, а у них свой начальник , планы и при этом сама инфраструктура обычно оставляет желать лучшего.
Что самое смешное в production эти девопсы ничего не деплоют ( пусть девелопер корячиться и за все отвечает) , но протестировать что то без них невозможно если в environment глюк, а это считай каждый первый случай :). Вот и сидят девелоперы в их слаке и покорно ждут когда ихний oncall соизволит починить. То есть в реалии никто не ждёт конечно - или начинает multitask, что не очень хорошо . Или сам лезет разводить самодеятельность, что тоже не всегда хорошо, точнее предмет вечных тёрок с этой командой. Миллион repetitive tasks, постоянный конфликт с тем что делают они ( их приоритетами) , etc etc.

Если у вас все как я описала вверху про свою предилущую команду , пожалуйста ( я умоляю :) ), расскажите что за компания/команда. Можно в личку. Как я теперь поняла они нынче на вес золота и пришла пора составлять отдельный список
https://www.youtube.com/watch?v=wOwblaKmyVw
User avatar
Херовимчик
Уже с Приветом
Posts: 5284
Joined: 27 Sep 2008 21:48
Location: Moscow-Seattle-SFBA

Re: Эффективность работы программиста

Post by Херовимчик »

У меня был первый вариант пока у нас была маленькая команда и очень узкий scope. Как только мы пошли в Мега рост, мы перетекли в ваш второй вариант.
xrundel
Уже с Приветом
Posts: 1459
Joined: 01 Mar 2019 17:02

Re: Эффективность работы программиста

Post by xrundel »

- сократили время билда ( сложный был продукт) в разы. Прошлись по build log, убрали все inefficiencies. Убедились что у каждого девелопера unified и максимально заточенная под performance local dev environment ( tools, formatting etc)
--
Более того, сейчас переносим всё на сервер. Т.е. локальное IDE a код и весь билд и вся инфраструктура на дев сервере под каждого пограмиста. Задержки нет, мега сервер с 64 CPUs/256G Ram где всё летает. Запустить проект для нового програмиста/эндпоинта будет занимать пару минут. Можно даже на телефоне будет кодить ;)


- отточили процесс планирования спринта, выполнения задач и проч. Время митингов сократилось до минимального, tracking в Джире был близок к идеальному, там можно было все отследить и были видны реальные dependencies и статус без тормошения и отвлечения миллиона людей.
--
Более того, в тикете полная интеграция с ProductBoard - т.е. можно не просто отследить баг а вообще всю цепочку. От фидбека от юзеров до приниятия решения, дизайн итераций, релизов, бизнес логики и вот конкретного бага. В коде тоже обратные линки - т.е. можно понять а почему тут сделано именно так.


- убрали все задержки связанные с ожиданиями on shared test environments
--
На стейжнигне есть переключалка между бранчами. Можно мгновенно переключится на любой бранч и потестить. Все бранчи пересобираются автоматом.

- code reviews по большим проектам начинали с митинга со всеми заинтересованными лицами, где автор расказывал вкратце что и как. Потом людям давали время до конца дня дать фидбек и не ждали что они в этот день будут делать столько же основной работы как обычно.
--
Тут у нас проще - 2 аппрувала от коллег и код уходит в QA.
Bobeg
Уже с Приветом
Posts: 1190
Joined: 26 Nov 2021 12:38

Re: Эффективность работы программиста

Post by Bobeg »

почему у меня ощущение как будто я юных пионеров читаю.
User avatar
Komissar
Уже с Приветом
Posts: 64875
Joined: 12 Jul 2002 16:38
Location: г.Москва, ул. Б. Лубянка, д.2

Re: Эффективность работы программиста

Post by Komissar »

хрюндель, ну так найми Сабину, пусть ей тоже обломится от твоих биллионов.
Andriy777
Уже с Приветом
Posts: 1486
Joined: 28 Jan 2002 10:01

Re: Эффективность работы программиста

Post by Andriy777 »

Задача кажется похожей, но ни разу не "одна и та же". Код - это описание решения задачи одним конкретным мозгом (или уже группы людей, когда перешло в стадию письма Дади Федора к родителям).

Мозги у людей очень разные. Борьба путем введения design and coding patterns идет с переменным успехом.

Проклятые капиталисты не выделяют времени на документацию решений и tribal knowledge. Код - единственная документация. Все остальное - устаревщие обрывки воспоминаний.

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

Переписать заново - это "оргазм" для пришедшего разработчика. Не надо копаться в мозгах предшественников.
Bobeg
Уже с Приветом
Posts: 1190
Joined: 26 Nov 2021 12:38

Re: Эффективность работы программиста

Post by Bobeg »

у меня один главный вопрос: из аджайл дед ор элайв?

май праймари опинион из: аджайл маст дай.
май секондари опинион: если релиз не автоматический, то у вас нет девопс.
Andriy777
Уже с Приветом
Posts: 1486
Joined: 28 Jan 2002 10:01

Re: Эффективность работы программиста

Post by Andriy777 »

Bobeg wrote: 05 Jan 2022 19:32 у меня один главный вопрос: из аджайл дед ор элайв?
Пока остаются неплохие вещи:

- каждодневная "планерка" по 30 мин "что делал вчера, буду делать сегодня, над чем убился". Это самая полезная вещь, особенно если планерка проводится среди 3-5 человек реально работающих над одним сценарием.

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

Полностью ушло:

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

- психологические разборки "что было хорошо и было плохо".
Bobeg
Уже с Приветом
Posts: 1190
Joined: 26 Nov 2021 12:38

Re: Эффективность работы программиста

Post by Bobeg »

Andriy777 wrote: 05 Jan 2022 19:46
Bobeg wrote: 05 Jan 2022 19:32 у меня один главный вопрос: из аджайл дед ор элайв?
Пока остаются неплохие вещи:

- каждодневная "планерка" по 30 мин "что делал вчера, буду делать сегодня, над чем убился". Это самая полезная вещь, особенно если планерка проводится среди 3-5 человек реально работающих над одним сценарием.

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

Полностью ушло:

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

- психологические разборки "что было хорошо и было плохо".
приятно мне это читать, просто бальзам на душу.
Bobeg
Уже с Приветом
Posts: 1190
Joined: 26 Nov 2021 12:38

Re: Эффективность работы программиста

Post by Bobeg »

тотальное отсутствие документации как часть аджайл философии меня люто бешенно бесила все последние десять лет или сколько уже нам всем полощут мозг аджайлом.
tessob
Уже с Приветом
Posts: 549
Joined: 07 Jan 2016 13:04

Re: Эффективность работы программиста

Post by tessob »

Komissar wrote: 05 Jan 2022 19:19 хрюндель, ну так найми Сабину, пусть ей тоже обломится от твоих биллионов.
О каких биллионах идет речь? Хрюндель таки пересек румынскую границу?
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Эффективность работы программиста

Post by Сабина »

Bobeg wrote: 05 Jan 2022 19:32 у меня один главный вопрос: из аджайл дед ор элайв?

май праймари опинион из: аджайл маст дай.
май секондари опинион: если релиз не автоматический, то у вас нет девопс.
Вы один из тех у кого многолетний тик от слова аджайл ? Мы уже поняли и сучувствуем, можно больше не отвлекать от разговора по существу ?
https://www.youtube.com/watch?v=wOwblaKmyVw
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Эффективность работы программиста

Post by Сабина »

Andriy777 wrote: 05 Jan 2022 19:46
Bobeg wrote: 05 Jan 2022 19:32 у меня один главный вопрос: из аджайл дед ор элайв?
Пока остаются неплохие вещи:

- каждодневная "планерка" по 30 мин "что делал вчера, буду делать сегодня, над чем убился". Это самая полезная вещь, особенно если планерка проводится среди 3-5 человек реально работающих над одним сценарием.

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

Полностью ушло:

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

- психологические разборки "что было хорошо и было плохо".
Никогда не видела проблему в спринтах.
Все отписанное мной из базового - как наиболее эффективно потратить рабочее время с целью получения нужного результата ? Тут сразу вопрос - кому нужного ? Потому что если жто девелопер, то он бы с радостью выкинул все митинги и аджайл. А если менеджер, то его работа в координации, отчете. То есть ему они наоборот очень нужны. Нужен разумный компромисс и причина та же - team work.
В общем это азы вроде как .
Я считаю маразм с repetitive tasks и lack of environments, беготня за девопсами ( в неправильной компании) -это куды побольше времени отнимает
https://www.youtube.com/watch?v=wOwblaKmyVw
Bobeg
Уже с Приветом
Posts: 1190
Joined: 26 Nov 2021 12:38

Re: Эффективность работы программиста

Post by Bobeg »

Сабина wrote: 05 Jan 2022 20:49
Bobeg wrote: 05 Jan 2022 19:32 у меня один главный вопрос: из аджайл дед ор элайв?

май праймари опинион из: аджайл маст дай.
май секондари опинион: если релиз не автоматический, то у вас нет девопс.
Вы один из тех у кого многолетний тик от слова аджайл ? Мы уже поняли и сучувствуем, можно больше не отвлекать от разговора по существу ?
оооо, тему можно закрывать.
Bobeg
Уже с Приветом
Posts: 1190
Joined: 26 Nov 2021 12:38

Re: Эффективность работы программиста

Post by Bobeg »

Return to “Работа и Карьера в IT”