Сколько вашего рабочего дня уходит на программирование?

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

Когда вам нужно оценить, сколько времени вы потратите на работу над чем-то, сколько часов дня вы тратите на программирование? Что занимает другие часы без кодирования?

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

Каковы ваши условия работы? Личный кабинет, общий офис, комната команды? Кодирование в одиночку или в паре? Как ваше рабочее состояние изменило количество времени, которое вы тратите на кодирование каждый день? Если вы можете работать из дома, это помогает или ухудшает вашу производительность?

Какую методологию развития вы используете? Водопад? Agile? Влияет ли переход с одной методологии на другую на ваши часы кодирования в день?

Самое главное: довольны ли вы своей производительностью? Если нет, то какое единственное изменение вы бы произвели, которое оказало бы на него наибольшее влияние?

9 ответов

Решение

Я корпоративный разработчик, которого Джоэл Спольски назвал "подавленным" в паре подкастов Stackru. Поскольку моя компания не является компанией, занимающейся разработкой программного обеспечения, у нее мало коммерческих причин для внедрения многих мер, которые эксперты по программному обеспечению рекомендуют компаниям для повышения производительности труда разработчиков.

У нас нет частных офисов и двойных 30-дюймовых мониторов. Наша система контроля версий - Microsoft Visual Source Safe. Достаточно сказано. С другой стороны, я делаю много вещей, которые заполняют мой день и добавляют разнообразия моей работе. Я участвую в бизнес-анализе, управлении проектами, разработке, поддержке производства, внедрении на международном уровне, поддержке обучения, планировании команды и улучшении процессов.

Я бы сказал, что на коде у меня 85% рабочего дня, когда я могу сосредоточиться и у меня есть основная задача программирования. Но чаще я получаю около 50% своего дня на программирование. Если производственная поддержка (не связанная с кодированием) тяжелая, я могу получить только 15% своего рабочего дня.

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

Иногда я работаю дома и с детьми, это ужасно. Я более продуктивен на работе.

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

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

  • Лучшие инструменты тестирования / методологии для ускорения модульного тестирования
  • Лучшие инструменты / навыки бизнес-анализа для улучшения качества новых разработок и ограничения их вклада в нагрузку поддержки производства

Реально это, вероятно, составляет в среднем до 4 или 5 часов в день. Хотя это "комом" - могут быть дни, когда может быть 8 или 9 часов.

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

И если честно, там много промедлений. Я нахожу его немного похожим на писателей. иногда просто трудно начать, но тогда хороший двухчасовой сеанс - МНОГО проделанной работы. Это просто вся подготовка, которую вам нужно пройти, эксперименты, чтобы убедиться, что вы выбираете правильный подход. Бесконечное количество глаз в окно, проверка электронной почты и т.д...

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

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

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

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


Я рекомендую взглянуть на камень программистов:

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

Я работаю 37,5 часовую неделю.
30 из этих часов (80%) я должен выставлять счета нашим клиентам.
В действительности я обнаружил, что я использую около 60% кодирования в реальных клиентских системах, 20% экспериментируют с новыми методами и читают блоги, а 20% тратятся на офисную политику и "общение".

Я рад этому?
Хотел бы я, чтобы я мог смотреть на экран 30 часов в неделю, кодируя мои заданные задания?

Что ж. Так как 20% времени используется для улучшения моего мастерства, в 60% это эффективное кодирование, я, вероятно, произвожу больше, чем я бы сделал в 90% своего времени, если бы я этого не делал.
Опять же, попробуйте объяснить этот факт для более высоких взлетов;)

Я трачу около 40% своего дневного кодирования. 40% идет на не кодирующие действия (такие как борьба с нашим отрывочным сервером сборки или выяснение причины сбоя NUnit без повторного сообщения об ошибке или попытка выяснить, почему наш код перестал общаться с сервером Oracle внизу... таким барахлом). Остальные 20% обычно тратятся на проволочки или на собрания.

Доволен ли я своей производительностью? Точно нет. Я работаю 7 часов в день, и я трачу около 2,5 этого кода. Я бы предпочел потратить 5-6 часов своего дневного кодирования, и только час был посвящен всем остальным вещам (к сожалению, единственное, что могло бы сделать это - то, что премьер-министр перестал работать со скриптами сборки каждый день -- не произойдет). К сожалению, так как я являюсь корпоративным разработчиком, руководство не видит, что время истощается. Поскольку за эти 40% моего дня я выполняю гораздо больше, чем большинство дронов в здании, выполняемых за неделю (включая ПМ), они думают, что я продуктивен.

@Bernard Dy: я провел, вероятно, 30% своей карьеры в корпоративных настройках (сейчас нет). Обычно его после некоторой неудачной (или не неудачной, но потерпевшей неудачу) идеи запуска или какого-то выгорания / изменения. Немного хорошо, приятно встречать людей совершенно разного происхождения (которые могли бы подумать, что с адвокатами и актуариями может быть так весело тусоваться), но в конце концов, мне просто трудно получить утром с мотивацией (или после страха перед возвращением) - вероятно, по причинам, которые вы определили (просто отсутствие заботы). Но его хороший опыт и источник идей по крайней мере. И вы можете встретить замечательных людей повсюду (это не просто умные программисты - я всегда пытался выяснить, кто настоящий мозг стоит за бизнесом).

Интересно, что единственный раз, когда я практиковал строгий agile/XP, был в корпоративной обстановке - в этом случае, вероятно, 7 часов в день были настоящими практическими занятиями по коду (в паре) - я никогда не был так измотан после такого дня. не уверен, что это хорошо, возможно, я просто ленивый.

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

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

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

Когда я мало работаю, мне нравится читать блоги по программированию, а также я люблю изучать программирование.

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

Чтобы ответить на некоторые из моих собственных вопросов:

Нынешняя команда, в которой я работаю, выполняет только грубую оценку задач, поэтому сложно отследить часы в сутки. Я бы сказал, что в моей карьере время, затрачиваемое на программирование, составляло от 25% (в основном менеджмент) до 85%+ (работая дома 4 дня в неделю, собираясь на встречу по полдня раз в неделю). Хотя, если бы мне пришлось угадывать, среднее значение, вероятно, где-то около 60%.

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

Я разработчик программного обеспечения в отделе исследований и разработок, работаю по 40 часов в неделю.

Я трачу примерно 10% своего времени на кодирование. В мои часы без кода я в основном тестирую, оцениваю, сравниваю и записываю результаты. Я также трачу много времени на написание спецификации для кода, который я напишу, и на поиск кода, который я напишу, я участвую в мозговых штурмах для текущих проектов и т. Д.

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

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

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

Я доволен своей производительностью, связанной с моими сроками и целями.

Другие вопросы по тегам