Эффективность работы программиста
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Эффективность работы программиста
Вынесла в отдельную тему, потому что проходит красной нитью через другие, но все равно выводы не сделаны.
Давайте поговорим почему одна и та же задача может занимать сильно разное количество времени.
Тут в общем то давно все известно. Помимо «просто девелопер медленный, не справляется» есть ещё куча других разных причин, особенно если не справляется он местами временами, а не все время. Например:
- неавтоматизированные процессы
- плохая инфраструктура
- неправильные приоритеты ( вина обоих и девелопера и его менеджмента)
- плохая архитектура ( это если у него не было выбора)
Про 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.
Если у вас все как я описала вверху про свою предилущую команду , пожалуйста ( я умоляю ), расскажите что за компания/команда. Можно в личку. Как я теперь поняла они нынче на вес золота и пришла пора составлять отдельный список
Давайте поговорим почему одна и та же задача может занимать сильно разное количество времени.
Тут в общем то давно все известно. Помимо «просто девелопер медленный, не справляется» есть ещё куча других разных причин, особенно если не справляется он местами временами, а не все время. Например:
- неавтоматизированные процессы
- плохая инфраструктура
- неправильные приоритеты ( вина обоих и девелопера и его менеджмента)
- плохая архитектура ( это если у него не было выбора)
Про 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
-
- Уже с Приветом
- Posts: 5283
- Joined: 27 Sep 2008 21:48
- Location: Moscow-Seattle-SFBA
Re: Эффективность работы программиста
У меня был первый вариант пока у нас была маленькая команда и очень узкий scope. Как только мы пошли в Мега рост, мы перетекли в ваш второй вариант.
-
- Уже с Приветом
- Posts: 1459
- Joined: 01 Mar 2019 17:02
Re: Эффективность работы программиста
- сократили время билда ( сложный был продукт) в разы. Прошлись по 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.
--
Более того, сейчас переносим всё на сервер. Т.е. локальное IDE a код и весь билд и вся инфраструктура на дев сервере под каждого пограмиста. Задержки нет, мега сервер с 64 CPUs/256G Ram где всё летает. Запустить проект для нового програмиста/эндпоинта будет занимать пару минут. Можно даже на телефоне будет кодить
- отточили процесс планирования спринта, выполнения задач и проч. Время митингов сократилось до минимального, tracking в Джире был близок к идеальному, там можно было все отследить и были видны реальные dependencies и статус без тормошения и отвлечения миллиона людей.
--
Более того, в тикете полная интеграция с ProductBoard - т.е. можно не просто отследить баг а вообще всю цепочку. От фидбека от юзеров до приниятия решения, дизайн итераций, релизов, бизнес логики и вот конкретного бага. В коде тоже обратные линки - т.е. можно понять а почему тут сделано именно так.
- убрали все задержки связанные с ожиданиями on shared test environments
--
На стейжнигне есть переключалка между бранчами. Можно мгновенно переключится на любой бранч и потестить. Все бранчи пересобираются автоматом.
- code reviews по большим проектам начинали с митинга со всеми заинтересованными лицами, где автор расказывал вкратце что и как. Потом людям давали время до конца дня дать фидбек и не ждали что они в этот день будут делать столько же основной работы как обычно.
--
Тут у нас проще - 2 аппрувала от коллег и код уходит в QA.
-
- Уже с Приветом
- Posts: 1190
- Joined: 26 Nov 2021 12:38
Re: Эффективность работы программиста
почему у меня ощущение как будто я юных пионеров читаю.
-
- Уже с Приветом
- Posts: 64661
- Joined: 12 Jul 2002 16:38
- Location: г.Москва, ул. Б. Лубянка, д.2
Re: Эффективность работы программиста
хрюндель, ну так найми Сабину, пусть ей тоже обломится от твоих биллионов.
-
- Уже с Приветом
- Posts: 1481
- Joined: 28 Jan 2002 10:01
Re: Эффективность работы программиста
Задача кажется похожей, но ни разу не "одна и та же". Код - это описание решения задачи одним конкретным мозгом (или уже группы людей, когда перешло в стадию письма Дади Федора к родителям).
Мозги у людей очень разные. Борьба путем введения design and coding patterns идет с переменным успехом.
Проклятые капиталисты не выделяют времени на документацию решений и tribal knowledge. Код - единственная документация. Все остальное - устаревщие обрывки воспоминаний.
Стоит только уйти с проекта первоначальному кодировщику и прийти новым, так уходит куча времени просто разобраться с ментальной моделью предыдущего товарища.
Переписать заново - это "оргазм" для пришедшего разработчика. Не надо копаться в мозгах предшественников.
Мозги у людей очень разные. Борьба путем введения design and coding patterns идет с переменным успехом.
Проклятые капиталисты не выделяют времени на документацию решений и tribal knowledge. Код - единственная документация. Все остальное - устаревщие обрывки воспоминаний.
Стоит только уйти с проекта первоначальному кодировщику и прийти новым, так уходит куча времени просто разобраться с ментальной моделью предыдущего товарища.
Переписать заново - это "оргазм" для пришедшего разработчика. Не надо копаться в мозгах предшественников.
-
- Уже с Приветом
- Posts: 1190
- Joined: 26 Nov 2021 12:38
Re: Эффективность работы программиста
у меня один главный вопрос: из аджайл дед ор элайв?
май праймари опинион из: аджайл маст дай.
май секондари опинион: если релиз не автоматический, то у вас нет девопс.
май праймари опинион из: аджайл маст дай.
май секондари опинион: если релиз не автоматический, то у вас нет девопс.
-
- Уже с Приветом
- Posts: 1481
- Joined: 28 Jan 2002 10:01
Re: Эффективность работы программиста
Пока остаются неплохие вещи:
- каждодневная "планерка" по 30 мин "что делал вчера, буду делать сегодня, над чем убился". Это самая полезная вещь, особенно если планерка проводится среди 3-5 человек реально работающих над одним сценарием.
- разбиение задач на спринты. Но и даже это уходит. Наиболее благоприятная атмосфера, когда идут постоянные обновления и всегда можно легко перенести незаконченную работу просто на следующую неделю. Инструменты закодированные под аджайл используются, но даже понятие спринта уже не существует. Есть понятие "деплоймента" и оценки "что уже готово и мы выкладываем сейчас".
Полностью ушло:
- спринт планирование. Стало понятно, что "клясться мамой", что в следующие 3 недели получится сделать Х - это просто дать обещание, которое выполнить можно только если все было и так ясно. Т.е. оценка точна для эелементарных задач или задач, которые были уже сделаны и в этом спринте нужно было поставить точку. Особенно быстро ушла фигня оценки в "поинтах".
- психологические разборки "что было хорошо и было плохо".
-
- Уже с Приветом
- Posts: 1190
- Joined: 26 Nov 2021 12:38
Re: Эффективность работы программиста
приятно мне это читать, просто бальзам на душу.Andriy777 wrote: ↑05 Jan 2022 19:46Пока остаются неплохие вещи:
- каждодневная "планерка" по 30 мин "что делал вчера, буду делать сегодня, над чем убился". Это самая полезная вещь, особенно если планерка проводится среди 3-5 человек реально работающих над одним сценарием.
- разбиение задач на спринты. Но и даже это уходит. Наиболее благоприятная атмосфера, когда идут постоянные обновления и всегда можно легко перенести незаконченную работу просто на следующую неделю. Инструменты закодированные под аджайл используются, но даже понятие спринта уже не существует. Есть понятие "деплоймента" и оценки "что уже готово и мы выкладываем сейчас".
Полностью ушло:
- спринт планирование. Стало понятно, что "клясться мамой", что в следующие 3 недели получится сделать Х - это просто дать обещание, которое выполнить можно только если все было и так ясно. Т.е. оценка точна для эелементарных задач или задач, которые были уже сделаны и в этом спринте нужно было поставить точку. Особенно быстро ушла фигня оценки в "поинтах".
- психологические разборки "что было хорошо и было плохо".
-
- Уже с Приветом
- Posts: 1190
- Joined: 26 Nov 2021 12:38
Re: Эффективность работы программиста
тотальное отсутствие документации как часть аджайл философии меня люто бешенно бесила все последние десять лет или сколько уже нам всем полощут мозг аджайлом.
-
- Уже с Приветом
- Posts: 545
- Joined: 07 Jan 2016 13:04
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: Эффективность работы программиста
Вы один из тех у кого многолетний тик от слова аджайл ? Мы уже поняли и сучувствуем, можно больше не отвлекать от разговора по существу ?
https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: Эффективность работы программиста
Никогда не видела проблему в спринтах.Andriy777 wrote: ↑05 Jan 2022 19:46Пока остаются неплохие вещи:
- каждодневная "планерка" по 30 мин "что делал вчера, буду делать сегодня, над чем убился". Это самая полезная вещь, особенно если планерка проводится среди 3-5 человек реально работающих над одним сценарием.
- разбиение задач на спринты. Но и даже это уходит. Наиболее благоприятная атмосфера, когда идут постоянные обновления и всегда можно легко перенести незаконченную работу просто на следующую неделю. Инструменты закодированные под аджайл используются, но даже понятие спринта уже не существует. Есть понятие "деплоймента" и оценки "что уже готово и мы выкладываем сейчас".
Полностью ушло:
- спринт планирование. Стало понятно, что "клясться мамой", что в следующие 3 недели получится сделать Х - это просто дать обещание, которое выполнить можно только если все было и так ясно. Т.е. оценка точна для эелементарных задач или задач, которые были уже сделаны и в этом спринте нужно было поставить точку. Особенно быстро ушла фигня оценки в "поинтах".
- психологические разборки "что было хорошо и было плохо".
Все отписанное мной из базового - как наиболее эффективно потратить рабочее время с целью получения нужного результата ? Тут сразу вопрос - кому нужного ? Потому что если жто девелопер, то он бы с радостью выкинул все митинги и аджайл. А если менеджер, то его работа в координации, отчете. То есть ему они наоборот очень нужны. Нужен разумный компромисс и причина та же - team work.
В общем это азы вроде как .
Я считаю маразм с repetitive tasks и lack of environments, беготня за девопсами ( в неправильной компании) -это куды побольше времени отнимает
https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 1190
- Joined: 26 Nov 2021 12:38
Re: Эффективность работы программиста
-
- Уже с Приветом
- Posts: 1190
- Joined: 26 Nov 2021 12:38
-
- Уже с Приветом
- Posts: 4185
- Joined: 27 Apr 2011 03:43
- Location: Сергели ->Chicago
-
- Уже с Приветом
- Posts: 4185
- Joined: 27 Apr 2011 03:43
- Location: Сергели ->Chicago
Re: Эффективность работы программиста
наличие или отсутствие документации не имеет к аджайлу никакого отношения. где написано что аджайл это отсутствие документации?
одно другому не мешает. Пусть вам мозг не полощут, живите своим умом. Либо требуйте документацию если положено по рангу либо создавайте личным примером.
покажите другим каким должен быть правильный аджайл
-
- Уже с Приветом
- Posts: 1029
- Joined: 27 Apr 2014 17:13
- Location: USA
Re: Эффективность работы программиста
у меня скорость кодинга падает если я перехожу на чисто маковскую клаву, не то что с мобилы это делать, эффективность снижается очень быстро.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: Эффективность работы программиста
В смысле mechanical keyboard предпочитаете ?
https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 1679
- Joined: 04 Oct 2006 23:30
- Location: Las Vegas
Re: Эффективность работы программиста
а как жеvalchkou wrote: ↑06 Jan 2022 02:45наличие или отсутствие документации не имеет к аджайлу никакого отношения. где написано что аджайл это отсутствие документации?
одно другому не мешает. Пусть вам мозг не полощут, живите своим умом. Либо требуйте документацию если положено по рангу либо создавайте личным примером.
покажите другим каким должен быть правильный аджайл
Working software over comprehensive documentation
аджайл это способ прокормить тучу бездарей и гуманитариев, которым иначе в айти вход был бы заказан
девелоперам пофиг все эти пляски с бубном
-
- Уже с Приветом
- Posts: 5346
- Joined: 03 Feb 1999 10:01
- Location: NJ, USA
Re: Эффективность работы программиста
Wow, что там можно 30 минут обсасывать каждый день. И главное нафига. Нафига Владу слушать 10 минут что у Анны SSRS server глючит и девопсы ее уже неделю к network guys отфутболивают. Пусть кодирует в это время.
10 минут максимум пару раз в неделю еще куда не шло.
-
- Уже с Приветом
- Posts: 4185
- Joined: 27 Apr 2011 03:43
- Location: Сергели ->Chicago
Re: Эффективность работы программиста
у меня видимо с логикой проблемы. Где тут противоречия?John Smith wrote: ↑06 Jan 2022 04:35а как жеvalchkou wrote: ↑06 Jan 2022 02:45наличие или отсутствие документации не имеет к аджайлу никакого отношения. где написано что аджайл это отсутствие документации?
одно другому не мешает. Пусть вам мозг не полощут, живите своим умом. Либо требуйте документацию если положено по рангу либо создавайте личным примером.
покажите другим каким должен быть правильный аджайл
Working software over comprehensive documentation
аджайл это способ прокормить тучу бездарей и гуманитариев, которым иначе в айти вход был бы заказан
девелоперам пофиг все эти пляски с бубном
туча гуманитариев занимается документацией
девелоперы пишут работающий софт.
-
- Уже с Приветом
- Posts: 1481
- Joined: 28 Jan 2002 10:01
Re: Эффективность работы программиста
Потому что у Влада есть дружбан Саша из дев-опсов, который как раз объяснил неделю назад Владу схему обхода проблемы глюков SSRS сервера. И Влад, не будучи жопой, внимательно слушал и тут же вызвался поделиться знаниями с Анной.
Я недаром отметил планерку как самый лучший элемент. Это еще и стимул. Не так будешь бить баклуши, если каждый день надо придумывать ответ на вопрос "что конкретно я делал вчера и что конкретно буду делать сегодня".
Еще в командах бывают начальники с отличной памятью, которые выслушивают, переспрашивают других и сводят с правильными людьми, чтобы задача, которую можно выполнить за пол дня не растянулась на два просто из-за того, что человек тупо не знал где копнуть.
30 минут - это случаи, когда команда разрослась, но еще не распалась на более мелкие. Вот, наймется еще один тим лид и более мелкие группы управятся в 15 минут в большинстве случаев.
-
- Уже с Приветом
- Posts: 1029
- Joined: 27 Apr 2014 17:13
- Location: USA
-
- Уже с Приветом
- Posts: 8192
- Joined: 27 Mar 2016 23:56
Re: Эффективность работы программиста
моё мнение.
Ну да, так как это процесс как сделать так чтобы работу можно было заменить либо отдать контракторам.
Отдать контракторам соотвественно дешевле.
За intergrity большинство уходит денег, обратная сторона intergrity - hypocricy, тобишь "барыги" которых можно набрать на контракт и которые сами ничего не решают.