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

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

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

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

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

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

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

16.08.2008 20:30:56
9 ОТВЕТОВ
РЕШЕНИЕ

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

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

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

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

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

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

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

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

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

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

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

2
16.08.2008 23:05:47

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

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

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

17
16.08.2008 21:38:59

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

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

5
16.08.2008 21:47:45

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

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

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

6
16.08.2008 22:30:51
Ларс, ты поднял замечательный вопрос: самосовершенствование на работе. Заставляет меня хотеть задать отдельный вопрос о "расслабленном" времени!
Brad Wilson 16.08.2008 23:07:36

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

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

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

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


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

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

6
17.08.2008 00:34:27

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

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

4
17.08.2008 03:27:08

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

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

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

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

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

2
17.08.2008 07:34:31

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

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

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

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

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

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

1
21.03.2012 07:33:49