Стать самой эффективной командой из одного человека

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

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

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

8 ответов

Решение
  • Ежедневный список того, что я собираюсь сделать.

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

  • Потратьте время, чтобы узнать о других методах кодирования, инструментах и ​​мудрости программирования. Я обнаружил, что это имеет решающее значение для моего развития. Легко просто кодировать и чувствовать себя продуктивно. Как насчет того, что могло бы быть, если бы у вас просто было больше знаний / оружия под вашим поясом, чтобы ударить этот следующий виджет. Я знаю, что это действительно звучит контрпродуктивно, но на самом деле это не так. Знание / знаю, какова наша реальная валюта. Чем больше мы знаем, тем больше мы можем принять лучшее решение о том, как что-то должно быть сделано и сделать это быстрее.

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

  • Научитесь использовать правило 80 / 20 в ваших интересах. Я не имею в виду экономить или быть ленивым. Хотя часто мы отработаем хвост на те 20%, когда в этом не было необходимости.

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

С технической точки зрения рассмотрим:

  • Рассмотрим модульное тестирование / TDD. В своей работе я обнаружил, что это на самом деле экономит время. Требуется некоторое время, чтобы освоиться, но с чем-нибудь вы поправитесь.
  • Заботьтесь о своем коде. Рефакторинг (особенно если вы начинаете юнит-тестирование). Чем лучше ваш код, тем проще его поддерживать, что занимает меньше времени. Чем проще это понять, тем быстрее вы сможете изменить / реализовать функции.

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

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

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

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

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

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

Я пишу и запускаю интеграционные и системные тесты, но не тестирую модули, потому что мне не нужно раннее тестирование (до интеграции): нужно ли тестировать внутреннюю реализацию или только публичное поведение?

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

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

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

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

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

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

Другие вопросы по тегам