Простые уловки для повышения эффективности кодирования

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

Никто не знает, откуда пришло такое мышление «больше - это больше», когда в те времена все так усердно работали, чтобы создать философию «меньше значит больше». Вероятно, это началось с журналистики потребительского уровня, потому что многие писатели пытаются произвести впечатление на публику, цитируя большие цифры. В большинстве случаев это работает - этот крошечный флэш-накопитель содержит терабайты данных 200, этот ЦП может обрабатывать миллиарды инструкций 48 в секунду - и авторы не всегда достаточно технологически подкованы, чтобы понимать, что это не относится к исходному коду.

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

Поэтому в этой статье мы рассмотрим, что вы можете сделать, чтобы повысить эффективность и повысить производительность.

1. Создать благоприятную рабочую среду

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

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

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

Подумайте о том, чтобы разрешить членам команды дистанционно

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

На самом деле, мы уже знаем ответ на этот вопрос. Частично речь идет о контроле, а частично о том, как сделать вещи более удобными с точки зрения бизнеса (или, по крайней мере, с точки зрения управления). Но это требование рутины и местоположения вредит эффективности и продуктивности команды.

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

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

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

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

Избегайте музыки

Мы все видели те сумасшедшие стереотипы кино, где какой-то супер-безобразный überhacker надевает свои наушники и джемы вместе с death-metal, при этом без усилий набрасывая скрины кода, даже не останавливаясь, чтобы дышать. И все мы, кто действительно кодирует в реальном мире, знают, как нелепо это изображение.

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

Стараться держать в порядке

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

Итак, несмотря на все неудобства, которые это вызывает, почему мы - по крайней мере, некоторые из нас - так зависимы от беспорядка? Организационный эксперт и автор, Джули Моргенштерн, утверждает, что это потому, что этот материал связывает нас с нашим прошлым и играет роль в определении нашей идентичности. Маркус Гедулд, учитель и режиссер, базирующийся в Нью-Йорке, предполагает, что это потому, что беспорядок предпочтительнее «стерильной» среды, и уподобляет хаос беспорядка утверждению свободы и творчества.

Однако нет никаких сомнений в том, что уменьшение беспорядка поможет вам избежать отвлечения внимания и дезорганизации. Таким образом, это достойная цель для достижения. Обязательно держите рядом с собой несколько священных предметов, которые помогут вам чувствовать себя лучше и меньше подвержены стрессу, но не переусердствуйте. Обезжиривание - это одна из самых трудных вещей для большинства людей, и не только наши физические рабочие столы нуждаются в обеззараживании, но часто и наши компьютерные рабочие столы. Если вы действительно боретесь с этим, вы можете попробовать использовать минималистский DTE, такой как Fluxbox, который на самом деле не дает вам беспорядка.

Но посреди всей этой уборки не идите за борт. Есть много хороших научных данных, предполагающих, что немного хаоса в окружающей среде может фактически способствовать творчеству. Одним из наиболее часто упоминаемых исследований в этой области является запись в журнале «Психологические науки», разработанная Vohs, Redden & Rahinel для Университета Миннесоты, под названием Физический порядок создает здоровый выбор, щедрость и условность, а беспорядок - творчество, Вероятно, причина, по которой журналисты цепляются за эту бумагу, заключается в том, что в ней однозначно делается вывод, что: «… участники в беспорядочной комнате были более креативны, чем участники в упорядоченной комнате».

Гораздо менее популярны несогласные взгляды, такие как Экологическое расстройство ведет к саморегулирующему провалу (Chaye & Zhu, 2014), опубликовано в журнале потребительских исследований. Это исследование показало, что люди, работающие в беспорядочной обстановке, были лишены способности выполнять задачи.

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

Оставьте немного места для себя, чтобы расшевелить свои мысли

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

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

Как начальник, осторожно подходи к критике творческих усилий

В конструктивной критике нет ничего плохого, но вам нужно выбрать подходящий момент и правильно подойти к нему, иначе это может иметь неприятные последствия, сделав ваш персонал менее продуктивным в будущем. Вместо того, чтобы вдохновлять их и давать представление, вы можете заставить их бояться рисковать, что является хорошим способом убить креативность. Марике Роскес, в Ограничения, которые помогают или мешают творческому исполнению: мотивационный подход, предоставляет основу для того, как бороться с мотивацией творческих работников, а также, как избежать непреднамеренной демотивации их (Управление творчеством и инновациями, том 24, выпуск 2, 2015).

2. Установить хороший СОП

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

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

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

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

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

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

3. Поощрять подробную документацию

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

4. Откажитесь от ненужной документации

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

5. Пустое пространство твой друг

Правильное использование пустого пространства в вашем коде помогает облегчить чтение, просмотр и понимание кода. Он идет рука об руку с хорошим документированием и написанием самодокументируемого кода. Любой опытный программист (или, может быть, даже не программист) должен иметь возможность взять копию вашего исходного кода и сразу понять, для чего предназначена каждая функция и как она работает. В идеале, кто-то должен научиться программировать не более чем за счет изучения хорошо написанного кода.

6. Предпочитаю простоту над сложностью

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

7. Тест исчерпывающий

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

8. Использовать контроль версий

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

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

Богдан Рэнца

Богдан является одним из основателей Inspired Mag, накопив за этот период почти 6-летний опыт. В свободное время он любит изучать классическую музыку и изучать изобразительное искусство. Он тоже одержим исправлениями. У него уже есть 5.