Какая часть вашего рабочего дня тратится на кодирование?

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

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

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

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

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

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

Ответов (9)

Решение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Рекомендую взглянуть на The Programmers 'Stone:

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

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

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

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

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

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