Какие вещи имеют тенденцию замедлять разработчика?
Пожалуйста, постарайтесь не публиковать ответы, которые:
- медленно, но полезно в функции. (TDD, Рефакторинг, ...)
- перечислите отвлечение .
Какие вещи имеют тенденцию замедлять разработчика?
Пожалуйста, постарайтесь не публиковать ответы, которые:
Ответы:
О, это легко:
StackOverflow, programmers.stackexchange.com и т. Д. :)
Любая попытка следовать процессу, который не подходит для поставленной задачи.
Это могут быть самые разные вещи, но я вижу такие общие:
Все эти вещи могут быть очень полезными в некоторых проектах или в некоторых ситуациях, но некоторые организации пытаются сделать все одним способом, что приводит к плохому соответствию другим проектам, что часто приводит к снижению производительности.
Политика
Например: когда требования принадлежат более чем одному человеку (или, что еще хуже, двум разным корпоративным интересам), и они вносят конкурирующие и противоречивые изменения в требования во время разработки.
Многие ответы говорят о переключении контекста и выходе из зоны, и шум, особенно разговор, является одной из тех вещей, которые приводят меня к этому.
В моем кубовом мире меня окружают шум и разговоры со всех сторон. В одном ряду команда мэйнфреймов проводит постоянные совещания по планированию в ряду кубов. Иногда они встречаются с консультантами в офисе вдоль стены, и это приводит к громким крикам, крикам и смеху, и я должен подойти и попросить их закрыть двери.
С другой стороны, конференц-стол веб-команды находится на другой стороне моей стены западного куба, так что я участвую в каждом собрании, нравится нам это или нет. На другой стороне стены южного куба есть принтер, и это всегда хорошо для болтовни людей, которые тусуются в ожидании своих распечаток.
Непосредственный и очевидный ответ « Разве вы не можете просто получить наушники с шумоподавлением» не помогает, когда вы хотите молчать.
Иногда для проверки кода я беру свою стопку бумаг в столовую (конечно, не во время обеда), но там есть телевизор, который обычно гремит. Я выключу, если никто не смотрит. В противном случае я пойду найду пустой куб в другом отделе в другой части здания.
Если вы хотите, чтобы ваши программисты выполняли ту работу, которую им нужно делать, которая в основном продумывает, обдумывает и учитывает, им нужна среда, в которой они могут это делать.
Написание слишком большого количества строк кода без адекватных тестов.
Отсутствие качественного кофе.
делать точные оценки, которые нельзя отклонять от начала разработки, на мой взгляд, это сценарий с куриным яйцом
Исправление чужой сломанной сборки
Встречи без повестки дня.
Медленная машина.
Отсутствие второго монитора.
Старая мышь, у которой вместо хороших новых шариков.
Отсутствие доступа к Интернету на компьютере, что делает запрос MSDN / stackoverflow / etc немного болезненным.
Избегайте всего, что выводит вас из «зоны». Это означает ваш почтовый ящик, всплывающее приложение в Твиттере, корпоративный чат и т. Д.
Наличие тихого рабочего состояния означает также и отсутствие шума на рабочем столе .
Любой запрос на изменение, который было бы проще реализовать, если бы вы знали об этом заранее.
Многое, что замедляет вас - это хороший пост в блоге.
...
Многие проекты повторяют основные функции уровня инфраструктуры снова и снова, замедляя этот бизнес в предоставлении функций, которые отличают бизнес от его конкурентов.
...
Неизбежно, что продукты и инновации помогут сократить время, затрачиваемое разработчиками на недифференцированные задачи. Вопрос в том, какую форму примут эти сервисы и инструменты.
...
Ну, в последнее время самое большое замедление связано с тем, что мы разрабатываем несколько вещей одновременно, которые должны были быть выполнены в определенном порядке. Поэтому я жду, пока (имена не изменятся, чтобы защитить невинных) Джон заканчивает работу над своим компонентом, который мне нужен для моего пакета служб SSIS, и Гарри замедляется, ожидая, пока я импортирую записи, потому что ему нужны некоторые данные, чтобы проверить его экспорт (когда-либо пытаться написать сложный отчет об экспорте, когда нет данных ни в одной из таблиц?) и все замедляются, потому что проектирование еще не завершено, а таблицы базы данных, которые нам нужны для выполнения наших задач, еще не созданы и могут даже не закончиться до того, что они сказали, что они будут и т.д.
Даже если вы просили не перечислять отвлекающие факторы, они могут быть важным фактором. Посмотрите на их рабочую среду, проверьте, часто ли их прерывают или просят сделать другие вещи, не связанные с проектом.
Иногда разработчик может застрять, потому что он делает то, чего никогда не делал раньше, и не знает, где искать помощь. Если это небольшая команда или человек, это может быть еще сложнее. Мы склонны быть немного гордыми и не хотим признаваться, когда не знаем, как что-то делать. Кроме того, нам не нравится просить других о помощи. Нет простого способа заставить разработчика признать это, кроме как спросить, могут ли они уложиться в срок, или что им нужно, чтобы уложиться в срок, а затем надеяться, что они будут честными. Возможно, вам потребуется предложить другую помощь или найти кого-то, кто может им помочь.
Отсутствие четко определенных требований, что приводит к тому, что им приходится разбираться или принимать решения.
Я мог бы продолжить, но сейчас пятница, и я хочу забыть о работе.
Слишком много людей в проекте.
Несколько раз видели, как руководство принимает решение, основываясь на отсутствии реальных данных, которые необходимы им для добавления большего количества людей в проект. Это заканчивается тем, что людям, которые знают, что происходит, нужно все остановить, чтобы держать в руках людей, которые мало знают о том, что происходит. Я видел более одного проектного гриба размером и затем быстро пошел в туалет, тогда как раньше все шло хорошо, хотя, может быть, немного медленно.
Таким образом, вы перестаете опаздывать на месяц из-за недостаточной скорости / слишком большого объема работы, чтобы вообще не выполнять доставку, потому что вы полностью потратили бюджет на всех этих лишних людей.
Помимо вещей, упомянутых другими, долгий путь между принятием решения о компиляции и запуске вашего кода и получением положительного / отрицательного результата . В идеале этот RTT был бы всего лишь секундой, но я видел пример часов. Кстати, модульное тестирование пытается решить эту проблему.
Другой связанный это - общая задержка вашей рабочей среды. Представьте, что вам нужно работать через удаленное соединение с компьютером на другом конце света, через жуткое соединение. Я был здесь. Я ненавидел это.
Чрезмерное оформление документов
Наличие зависимости от кого-то, кого никогда нет рядом (например, от вашего босса - если вам нужно задать вопрос, но он всегда на собраниях)
Неадекватные инструменты и оборудование.
Люди без толку вбивают весло (любое видимое для пользовательского интерфейса изменение подвержено этому) или просто спорят о тривиальных вещах.
Сломанная кофемашина
Быть назначенным неправильные задачи
Это сугубо личное и, возможно, противоречивое мнение, но при этом нужно слишком много думать и планировать заранее или писать «качественный» код. Есть поговорка, что «недели кодирования могут сэкономить вам часы планирования», что может быть правдой в некоторых случаях.
Однако я часто вижу, как программисты пытаются набросать хороший дизайн перед тем, как начать писать код. Я обнаружил, что легче "начать работу", так как во время программирования вы узнаете больше о своей проблеме и решении, что позволит вам быстро преобразовать свое решение в хороший дизайн. Большинство возникающих проблем практически неизвестны в начале написания кода (по крайней мере, на мой взгляд), поэтому тратить много времени на предварительный дизайн - просто трата времени.
По этой же причине мне не нравится TDD, вы тратите слишком много времени на написание тестов, что делает вас либо менее склонными к рефакторингу, либо отнимает много времени, чтобы переписать тесты. Модульные тесты отлично подходят для некоторых случаев и некоторых этапов проекта, но начало одного из них не является одним из них ИМХО :)
Получите что-то работающее быстро и улучшите это.