Среди издателей программного обеспечения возник странный феномен. Похоже, что у людей существует тенденция перевернуть свое понимание того, что делает качественный продукт лучше, или, по крайней мере, это верно, когда речь идет о тех, кто занимается маркетингом.
Это звучит примерно так: «В их продукте один миллион строк кода, а в нашем — два миллиона, поэтому наш продукт должен быть лучше».
Никто не знает, откуда взялось это мышление «больше значит больше», когда в те времена все так усердно работали над созданием философии «меньше значит лучше».
Вероятно, все началось с потребительской журналистики, потому что многие писатели пытаются произвести впечатление на аудиторию, цитируя большие цифры. В большинстве случаев это работает — этот крошечный флэш-накопитель содержит 200 терабайт данных, а процессор может обрабатывать 48 миллиардов инструкций в секунду — и авторы не всегда достаточно технологически подкованы, чтобы понять, что то же самое не относится к исходному коду.
Но эффективность в кодировании заключается не только в создании сложных алгоритмов. Это также возможность уменьшить количество отходов. Это означает трату времени с точки зрения того, сколько времени вы тратите на решение проблем, трату времени с точки зрения использования слишком большого количества компьютерных ресурсов и даже траты с точки зрения количества коробок с пиццей, которые ваша команда выложила в офисе к концу недели. В идеале вы хотите сократить все эти вещи.
Как повысить эффективность кодирования за 8 простых шагов
Поэтому в этой статье мы рассмотрим, что вы можете сделать, чтобы повысить эффективность и повысить производительность.
1. Создать благоприятную рабочую среду
Каждый кодер работает в уникальных условиях, и наши читатели очень разные, поэтому некоторым из вас будет легче реализовать эти предложения, чем другим.
Если вы фрилансер, поздравляю, потому что вы уже владеете своей рабочей средой. Конечно, ситуация изменится, когда вы отправитесь навестить клиента и поработать на месте, но это все равно приятная позиция, если вы сможете добиться успеха.
Если вы являетесь менеджером команды разработчиков, эти предложения также могут помочь вашей команде добиться максимальной эффективности. Или, если вы работаете в команде разработчиков, вы можете предложить некоторые из этих идей своему менеджеру или, по крайней мере, отправить ему или ей ссылку на эту страницу и надеяться на лучшее.
Подумайте о том, чтобы разрешить членам команды дистанционно
Программирование — это отчасти упражнение на логику, но в еще большей степени это творческая задача. Лучшие программисты могут в равной степени задействовать обе стороны своего мозга для решения любой задачи.
Наука давно признала, что творческие люди лучше всего работают ночью, и мы все это испытали. Так почему же большинство менеджеров настаивают на традиционном распорядке дня с 9 до 5?
На самом деле, мы уже знаем ответ на этот вопрос. Частично речь идет о контроле, а частично о том, как сделать вещи более удобными с точки зрения бизнеса (или, по крайней мере, с точки зрения управления). Но это требование рутины и местоположения вредит эффективности и продуктивности команды.
Вам нужно понимать, что ваши программисты, вероятно, не спали всю ночь, пробуя последнюю игру, или, возможно, они ходили на вечеринки или просто должны были пообщаться с семьей.
Это означает, что, когда они приходят на работу в понедельник утром, вы не только не достигаете их максимального уровня продуктивности, но они уже истощены и устали как собака.
Предоставление работникам выбора о том, когда они работают, а в идеале и где - это отличный способ повысить производительность и моральный дух. Пока они выполняют свою работу и получают отличные качественные результаты, вам не нужно заботиться о том, когда, где и как они ее достигают.
Исключением являются случаи, когда вам необходимо тесное сотрудничество, но на самом деле большинство программистов добиваются большего успеха, если им предоставлено право делать что-то по-своему, а необходимость в тесном сотрудничестве возникает редко.
Возможность войти в офис по-прежнему должна быть, но нет реальной причины, по которой она должна требоваться, если только вы не работаете над сверхсекретными военными проектами.
Как фрилансер, вы также можете увидеть ключевой момент в том, что если вы выполняете большую часть своей реальной работы по программированию ночью, вы, вероятно, сделаете больше. Поздно ночью меньше отвлекающих факторов, тише, и вы будете чувствовать себя более креативно.
Избегайте музыки
Мы все видели те сумасшедшие стереотипы кино, где какой-то супер-безобразный überhacker надевает свои наушники и джемы вместе с death-metal, при этом без усилий набрасывая скрины кода, даже не останавливаясь, чтобы дышать. И все мы, кто действительно кодирует в реальном мире, знают, как нелепо это изображение.
Но если вы слушаете музыку во время работы, будьте осторожны. Очень легко обнаружить, что вы думаете о музыке, а не о работе, а некоторые виды музыки могут оказывать усыпляющее действие.
Когда вы идете на тренировку в тренажерный зал, правильная музыка может вдохновить вас сделать несколько дополнительных повторений. Но никому еще не удавалось создать музыку, которая вдохновила бы вас найти строку с пропущенной точкой с запятой или сделать правильный выбор между использованием цикла for или цикла while. Ближе всего к этому мы когда-либо подходили – Electric Dreams.
Стараться держать в порядке
Беспорядок может быть странно утешительным, но он также может замедлить вас. Вы можете легко потерять минуты 20 в поисках чего-то, что было потеряно в беспорядке, а затем забыть, зачем вам это нужно.
Итак, несмотря на все неудобства, которые это причиняет, почему мы — по крайней мере некоторые из нас — так пристрастились к беспорядку? Эксперт по организационным вопросам и автор Джули Моргенштерн утверждает, что это потому, что эти вещи связывают нас с нашим прошлым и играют роль в определении нашей идентичности.
Маркус Гедулд, преподаватель и режиссер из Нью-Йорка, предполагает, что это происходит потому, что беспорядок предпочтительнее «стерильной» среды, и сравнивает хаос беспорядка с утверждением свободы и творчества.
Однако нет никаких сомнений в том, что уменьшение беспорядка поможет вам избежать отвлечений и дезорганизации. Таким образом, это достойная цель.
В любом случае, держите несколько священных предметов рядом, которые заставляют вас чувствовать себя лучше и меньше нервничать, но не переусердствуйте. Расхламление — одна из самых сложных задач для большинства людей, и в расхламлении нуждаются не только наши физические рабочие столы, но часто и наши компьютерные рабочие столы.
Если вас это действительно беспокоит, вы можете попробовать использовать минималистский DTE, такой как Fluxbox, который на самом деле не позволяет вам создавать беспорядок.
Но посреди всей этой уборки не идите за борт. Есть много хороших научных данных, предполагающих, что немного хаоса в окружающей среде может фактически способствовать творчеству. Одним из наиболее часто упоминаемых исследований в этой области является запись в журнале «Психологические науки», разработанная Vohs, Redden & Rahinel для Университета Миннесоты, под названием Физический порядок создает здоровый выбор, щедрость и условность, а беспорядок - творчество. Вероятно, причина, по которой журналисты цепляются за эту газету, заключается в том, что в ней ясно сказано: «… участники беспорядочной комнаты были более творческими, чем участники упорядоченной комнаты».
Гораздо менее популярны несогласные взгляды, такие как Экологическое расстройство ведет к саморегулирующему провалу (Chaye & Zhu, 2014), опубликовано в журнале потребительских исследований. Это исследование показало, что люди, работающие в беспорядочной обстановке, были лишены способности выполнять задачи.
Так, где это оставляет тебя? Вы должны работать в хаосе или бесплодии? Кажется, что ответ заключается в том, чтобы найти баланс, когда он достаточно хаотичен, чтобы вдохновлять вас, но не настолько, чтобы вы отвлекались или испытывали проблемы с поиском вещей.
Оставьте немного места для себя, чтобы расшевелить свои мысли
Это хорошая идея, чтобы иметь достаточно места для прогулок, когда вы размышляете. Многие из лучших адмиралов и генералов в истории были известны тем, что они тратили время на прогулку по палубе, планируя боевые стратегии.
Этой практике следуют не только бойцы. Многие буддийские монахи также выступают за «медитацию при ходьбе» и считают, что она способствует ясности ума. Всякий раз, когда вам нужно решить особенно сложную проблему программирования, вы можете обнаружить, что это помогает немного размять ноги с помощью медитативной прогулки по площадке. Очевидно, что и здесь отсутствие беспорядка поможет вам сделать это, не попадая в больницу.
Как начальник, осторожно подходи к критике творческих усилий
В конструктивной критике нет ничего плохого, но вам нужно выбрать подходящий момент и правильно подойти к нему, иначе это может иметь неприятные последствия, сделав ваш персонал менее продуктивным в будущем. Вместо того, чтобы вдохновлять их и давать представление, вы можете заставить их бояться рисковать, что является хорошим способом убить креативность. Марике Роскес, в Ограничения, которые помогают или мешают творческому исполнению: мотивационный подход, предоставляет основу для того, как бороться с мотивацией творческих работников, а также, как избежать непреднамеренной демотивации их (Управление творчеством и инновациями, том 24, выпуск 2, 2015).
2. Установить хороший СОП
Есть много броских тенденций в управлении бизнесом и процедурах программирования, которые звучат гораздо более разумно в теории, чем на практике. Работает ли конкретный подход для вас или нет, зависит от вашей цели и того, что вы лично считаете успешным результатом.
Одним из примеров методологии, которую попробовала компания, в которой я работал, — и так же быстро от нее отказались — является парное программирование (не путать с PEAR-программированием).
Хотя некоторые люди действительно восхищаются этой методологией работы и хвалят ее место в парадигме гибкой разработки, мы обнаружили, что она крайне неэффективна.
Во-первых, на каждую рабочую станцию требовалось два программиста, поэтому вы платили вдвое больше за меньшую фактическую работу по разработке. Мы также обнаружили, что работать таким образом гораздо медленнее из-за частых остановок/запусков и тенденции к ненужным диалогам.
Преимущества парного программирования заключались в том, что оно привело к более естественной документации и более строгой документации. Это также позволило легче обнаруживать ошибки и вносить предложения по ужесточению алгоритма. В то же время, однако, те же самые преимущества также создавали проблемы, потому что иногда настройки и корректировки не были действительно необходимы.
Еще один риск, связанный с этим подходом, заключается в том, что вы можете получить эффект, идентифицированный Роскесом, когда программисты могут колебаться, пытаясь что-то предпринять, потому что они не хотят исправляться. Вы можете столкнуться с личными столкновениями, когда один разработчик очень педантичен и традиционен, а другой более креативен и спонтанен.
Программисты часто заявляют, что они предпочитают парное программирование. Возможно, это потому, что они наслаждаются социальным взаимодействием, которое оно предоставляет, но это никак не влияет на эффективность производства, за исключением, возможно, повышения морального духа.
Так что вам нужно установить, что на самом деле работает для ваших разработчиков, а что нет. За вещи, которые не работают, лучше отказаться от них, даже если они очень популярны. Что бы ни помогало команде быстро прогрессировать, это хорошо. Но если их утяжелить методологией, которая не соответствует их стилю, это в конечном итоге приведет к проблемам.
3. Поощрять подробную документацию
Хотя может показаться, что многословие увеличило бы неэффективность, небольшое количество времени, которое требуется, чтобы дать больше деталей и точности в комментариях, может сэкономить много проблем, когда проект перемещается или подвергается пересмотрам.
4. Откажитесь от ненужной документации
Хорошо написанный код часто самодокументируется. Если совершенно очевидно, что функция делает из имени, которое вы ей даете (что почти всегда должно быть так), добавление дополнительного описания является излишним. То же самое касается именования переменных и возвращаемых значений. Из названия должно быть ясно, что они делают, и в тех случаях, когда это невозможно, вы должны включить их описание в комментарии.
5. Пустое пространство твой друг
Правильное использование пустого пространства в вашем коде помогает облегчить чтение, просмотр и понимание кода. Он идет рука об руку с хорошим документированием и написанием самодокументируемого кода. Любой опытный программист (или, может быть, даже не программист) должен иметь возможность взять копию вашего исходного кода и сразу понять, для чего предназначена каждая функция и как она работает. В идеале, кто-то должен научиться программировать не более чем за счет изучения хорошо написанного кода.
6. Предпочитаю простоту над сложностью
Чем сложнее вы делаете свой код, тем сложнее его распутать. По иронии судьбы это относится к ярлыкам программирования, таким как использование условных сокращений вместо того, чтобы записывать их полностью. Это экономит время при написании, но менее опытный программист, пришедший позже, чтобы просмотреть ваш код, может не понять ваших намерений.
7. Тест исчерпывающий
Код должен проверяться постепенно и часто. Перед тем, как что-либо развертывать, вам следует провести как можно больше внутренних испытаний, даже если ваш первый выпуск будет называться Alpha.
8. Использовать контроль версий
Вы должны быть сумасшедшими, чтобы не использовать контроль версий в крупном проекте. Без этого вы не защищены от собственных мелких ошибок, а также для другого члена команды очень легко случайно (или умышленно) саботировать ваш код, перезаписывая его чем-то, что вас не устраивает.
Заключение
Приняв во внимание эти восемь ключевых предложений, вы сможете разработать собственную стратегию для достижения максимальной эффективности для себя и всех членов команды, с которыми вы работаете.
Вам не обязательно применять их все, и, конечно, некоторые из них могут быть даже непрактичны для вас, но любая их комбинация, скорее всего, приведет к тому, что вы выполните свою работу с меньшими хлопотами. Более продуктивный рабочий процесс со временем окупится, даже если это просто с точки зрения снижения стресса и предоставления вам больше времени для себя. Это цель, к которой стоит стремиться.
Комментарии Ответы 0