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

Сабина
Уже с Приветом
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 »

User avatar
valchkou
Уже с Приветом
Posts: 4195
Joined: 27 Apr 2011 03:43
Location: Сергели ->Chicago

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

Post by valchkou »

Bobeg wrote: 05 Jan 2022 19:32 май праймари опинион из: аджайл маст дай.
май секондари опинион: если релиз не автоматический, то у вас нет девопс.
если имеется ввиду нормальный CI/CD то это неотъемлемая часть нормального аджайл процесса
User avatar
valchkou
Уже с Приветом
Posts: 4195
Joined: 27 Apr 2011 03:43
Location: Сергели ->Chicago

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

Post by valchkou »

Bobeg wrote: 05 Jan 2022 19:56 тотальное отсутствие документации как часть аджайл философии меня люто бешенно бесила все последние десять лет или сколько уже нам всем полощут мозг аджайлом.
наличие или отсутствие документации не имеет к аджайлу никакого отношения. где написано что аджайл это отсутствие документации?
одно другому не мешает. Пусть вам мозг не полощут, живите своим умом. Либо требуйте документацию если положено по рангу либо создавайте личным примером.
покажите другим каким должен быть правильный аджайл
ystar
Уже с Приветом
Posts: 1039
Joined: 27 Apr 2014 17:13
Location: USA

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

Post by ystar »

xrundel wrote: 05 Jan 2022 17:19 - сократили время билда ( сложный был продукт) в разы. Прошлись по 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.
у меня скорость кодинга падает если я перехожу на чисто маковскую клаву, не то что с мобилы это делать, эффективность снижается очень быстро.
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

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

Post by Сабина »

В смысле mechanical keyboard предпочитаете ?
https://www.youtube.com/watch?v=wOwblaKmyVw
User avatar
John Smith
Уже с Приветом
Posts: 1680
Joined: 04 Oct 2006 23:30
Location: Las Vegas

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

Post by John Smith »

valchkou wrote: 06 Jan 2022 02:45
Bobeg wrote: 05 Jan 2022 19:56 тотальное отсутствие документации как часть аджайл философии меня люто бешенно бесила все последние десять лет или сколько уже нам всем полощут мозг аджайлом.
наличие или отсутствие документации не имеет к аджайлу никакого отношения. где написано что аджайл это отсутствие документации?
одно другому не мешает. Пусть вам мозг не полощут, живите своим умом. Либо требуйте документацию если положено по рангу либо создавайте личным примером.
покажите другим каким должен быть правильный аджайл
а как же

Working software over comprehensive documentation

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

девелоперам пофиг все эти пляски с бубном
User avatar
KVA
Уже с Приветом
Posts: 5347
Joined: 03 Feb 1999 10:01
Location: NJ, USA

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

Post by KVA »

Andriy777 wrote: 05 Jan 2022 19:46 - каждодневная "планерка" по 30 мин "что делал вчера, буду делать сегодня, над чем убился". Это самая полезная вещь, особенно если планерка проводится среди 3-5 человек реально работающих над одним сценарием.
Wow, что там можно 30 минут обсасывать каждый день. :pain1: И главное нафига. Нафига Владу слушать 10 минут что у Анны SSRS server глючит и девопсы ее уже неделю к network guys отфутболивают. :pain1: Пусть кодирует в это время.

10 минут максимум пару раз в неделю еще куда не шло.
User avatar
valchkou
Уже с Приветом
Posts: 4195
Joined: 27 Apr 2011 03:43
Location: Сергели ->Chicago

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

Post by valchkou »

John Smith wrote: 06 Jan 2022 04:35
valchkou wrote: 06 Jan 2022 02:45
Bobeg wrote: 05 Jan 2022 19:56 тотальное отсутствие документации как часть аджайл философии меня люто бешенно бесила все последние десять лет или сколько уже нам всем полощут мозг аджайлом.
наличие или отсутствие документации не имеет к аджайлу никакого отношения. где написано что аджайл это отсутствие документации?
одно другому не мешает. Пусть вам мозг не полощут, живите своим умом. Либо требуйте документацию если положено по рангу либо создавайте личным примером.
покажите другим каким должен быть правильный аджайл
а как же

Working software over comprehensive documentation

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

девелоперам пофиг все эти пляски с бубном
у меня видимо с логикой проблемы. Где тут противоречия?
туча гуманитариев занимается документацией
девелоперы пишут работающий софт.
Andriy777
Уже с Приветом
Posts: 1486
Joined: 28 Jan 2002 10:01

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

Post by Andriy777 »

KVA wrote: 06 Jan 2022 04:36
Andriy777 wrote: 05 Jan 2022 19:46 - каждодневная "планерка" по 30 мин "что делал вчера, буду делать сегодня, над чем убился". Это самая полезная вещь, особенно если планерка проводится среди 3-5 человек реально работающих над одним сценарием.
Wow, что там можно 30 минут обсасывать каждый день. :pain1: И главное нафига. Нафига Владу слушать 10 минут что у Анны SSRS server глючит и девопсы ее уже неделю к network guys отфутболивают. :pain1: Пусть кодирует в это время.

10 минут максимум пару раз в неделю еще куда не шло.
Потому что у Влада есть дружбан Саша из дев-опсов, который как раз объяснил неделю назад Владу схему обхода проблемы глюков SSRS сервера. И Влад, не будучи жопой, внимательно слушал и тут же вызвался поделиться знаниями с Анной.

Я недаром отметил планерку как самый лучший элемент. Это еще и стимул. Не так будешь бить баклуши, если каждый день надо придумывать ответ на вопрос "что конкретно я делал вчера и что конкретно буду делать сегодня".

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

30 минут - это случаи, когда команда разрослась, но еще не распалась на более мелкие. Вот, наймется еще один тим лид и более мелкие группы управятся в 15 минут в большинстве случаев.
ystar
Уже с Приветом
Posts: 1039
Joined: 27 Apr 2014 17:13
Location: USA

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

Post by ystar »

Сабина wrote: 06 Jan 2022 04:27 В смысле mechanical keyboard предпочитаете ?
да, при этом к клавиатуре ещё пару месяцев нужно привыкнуть, для максимальной скорости
Mmodel
Уже с Приветом
Posts: 8210
Joined: 27 Mar 2016 23:56

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

Post by Mmodel »

Bobeg wrote: 05 Jan 2022 19:56 тотальное отсутствие документации как часть аджайл философии меня люто бешенно бесила все последние десять лет или сколько уже нам всем полощут мозг аджайлом.
моё мнение.
Ну да, так как это процесс как сделать так чтобы работу можно было заменить либо отдать контракторам.
Отдать контракторам соотвественно дешевле.
За intergrity большинство уходит денег, обратная сторона intergrity - hypocricy, тобишь "барыги" которых можно набрать на контракт и которые сами ничего не решают.

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