Это не полный ответ - уже есть несколько очень хороших, в которых упоминаются такие важные вещи, как, как использовать вашу VCS и ваше программное обеспечение для управления проектами, - скорее добавление, добавляющее несколько моментов, которые я не видел ни в каких других, которые я найти очень полезным, и я надеюсь, что другие люди могут найти полезным также.
1. Ни одна задача не является слишком рано или слишком маленькой, чтобы записать
Люди обычно составляют списки TODO для того, что они планируют делать в будущем , но поскольку программирование требует концентрации, и поскольку мы можем быть прерваны в любое время , я считаю полезным записать даже то, что я делаю сейчас, или что я собираюсь начать в считанные секунды . Вы можете чувствовать, что находитесь в зоне, и вы не можете забыть решение, которое просто поразило вас в тот ага момент, но когда ваш коллега заглядывает к вашему кубу, чтобы показать вам фотографию его зараженного пальца , и вы только в состоянии наконец избавиться от него, начав грызть собственную руку , вы можете пожелать, чтобы вы записали быструю заметку, даже если только на заметку Post-It ™.
Конечно, может быть лучше другой более устойчивый носитель (особенно мне нравится OmniFocus ), но суть в том, чтобы хотя бы где-то его иметь , даже если вы закончите через 20 минут, а затем выбросите Post-It ™. Хотя вы можете обнаружить, что эта информация становится полезной, ставить клиенту табели учета рабочего времени или счета, или когда ваш начальник / клиент спрашивает вас, над чем вы работали, и вы не можете вспомнить. Если вы поместите все эти заметки в ящик, ящик или папку, то, когда произойдет большое прерывание - прерывающий проект, - вы сможете просмотреть их и вспомнить многое из того, что вы сделали, чтобы привести свой код к точке, в которой вы найти его, когда вы вернетесь к проекту.
2. Используйте доску на своем столе, чтобы запечатлеть идеи с большими картинками
У меня есть доска 3 х 4 дюйма рядом с моим столом, поэтому, когда я начинаю проект, я могу найти способ решения всех проблем, которые я вижу в проекте. Это могут быть архитектурные схемы, варианты использования, списки рисков и препятствий или что-то, что кажется вам подходящим.
Некоторые более формализованные подходы требуют от вас создания диаграмм и вариантов использования и так далее в качестве «результатов» в каком-либо бумажном или электронном формате, но я считаю, что это может создать много дополнительной работы и просто стать серией подпроектов, которые заканчиваются быть отделенным от фактической цели основного проекта, и просто частью формализованного процесса, который вы должны сделать, но на который никто не обращает особого внимания. Доска - это самая простая вещь, которая действительно работает, по крайней мере, по моему опыту. Он настолько устойчив, насколько вы хотите (с камерой) и, что важнее всего, позволяет немедленно изложить свои идеи.
Я думаю, что лучше с ручкой в руке, так что выкидывание мыслей на белую поверхность естественно для меня, но если вы не находите, что это так, вот некоторые вопросы, которые могут помочь вам решить, что имеет значение :
- Если бы я был ведущим разработчиком, собирался отправиться в свадебное путешествие на 3 месяца, пока другие разработчики завершили проект, какое общее направление я бы хотел им дать? О каких идеях я хотел бы знать, чтобы они знали, или о подходах, которые я хотел бы использовать? Какие библиотеки или другие полезные решения я бы хотел, чтобы они знали?
- Если бы этот проект был моей идеей на миллион долларов, которая, как я знал, обеспечила бы мою будущую финансовую независимость, но я был намечен на критическую операцию, которая вывела бы меня из строя на 3 месяца, что бы я хотел, чтобы моя будущая личность имела, чтобы обеспечить успешное завершение проект?
(Когда я впервые набрасываю идеи, я беспокоюсь только о том, чтобы они имели смысл для моего нынешнего «я». Когда они опускаются, я могу более критически смотреть на них и вносить изменения, чтобы убедиться, что они имеют смысл для моего будущего «я» или для других. сообщение об общении с другими при первоначальном их написании может привести к блокировке писателей - уму, забитому конкурирующими целями. Сначала спускайся с делом, потом забудь о ясности.)
Я рекомендую потратить деньги, чтобы купить приличную доску размером не менее 3 х 4 и повесить ее в том месте, где вы обычно работаете. Есть много преимуществ физической доски по сравнению с любой виртуальной системой.
- Это большой. Занимая много места, он ощущает свое присутствие, и планы на него кажутся частью вашего рабочего пространства, помогая постоянно указывать вам правильное направление.
- Он постоянно присутствует: вам не нужно запускать определенное приложение или веб-сайт для доступа к нему, и вы не рискуете забыть, как к нему добраться, или забыть, что оно есть.
- Он сразу доступен, когда у вас есть идея, которую вы хотите продумать.
Вы потеряете многие из преимуществ, если просто используете доску в комнате для совещаний, а затем делаете снимок с помощью своего телефона. Если вы зарабатываете на программировании, это стоит денег на приличную доску.
Если у вас есть еще один проект прервать тот , который заполнил вашу доску, вам , возможно , придется прибегнуть к снимку на телефоне, но , по крайней мере , вы будете иметь , что через 3 месяца , когда «неотложный» проект закончен , и вы должны вернитесь к другому. Если вы захотите воссоздать его на своей доске, тогда это, вероятно, займет всего 15 минут, и вы можете обнаружить, что можете значительно улучшить его в процессе, что делает эти небольшие затраты времени очень полезными.
3. Информировать заинтересованные стороны о стоимости прерывания проекта
Я нахожу метафору самолета полезной: начинать и завершать проект - все равно что летать на самолете. Если вы выйдете из полета на полпути, самолет не просто будет сидеть в воздухе, ожидая, когда вы вернетесь к нему, и вам понадобится какой-то способ перелета из текущего проекта / полета в следующий. На самом деле, если вы находитесь в середине полета из Феникса в Фарго, и вам говорят, что вам нужно прервать этот рейс, чтобы сесть на другой самолет из Денвера в Детройт, вам нужно будет приземлиться первый самолет в Денвере (который к счастью, недалеко от вашего маршрута полета - не всегда в случае реальных перерывов), и кто-то должен выяснить, что делать с грузом и пассажирами. Они не будут просто сидеть и ждать вечно.
Смысл этого в проектах заключается в том, что переход от одного проекта к другому требует больших затрат времени и оставляет много потерь, с которыми приходится иметь дело.
В проекте, очевидно, неизбежно многое происходит в вашей голове, пока вы работаете, и не каждая мысль может быть сериализована в письменный носитель, и не каждая йота из тех мыслей, которые сериализуются, останется при десериализации. Хотя мы можем частично зафиксировать наши мысли в письменном виде, это очень большой формат с потерями.
Проблема (на мой взгляд) состоит в том, что менеджеры проектов и другие бизнесмены думают о проектах как о последовательности шагов, которые часто могут быть переупорядочены по желанию (если нет явной зависимости от их диаграммы Ганта) и могут быть легко распределены среди людей. или отложено, пока это не будет наиболее удобно для бизнеса.
Любой, кто занимался программированием, знает, что программные проекты нельзя рассматривать как блоки Lego, которые можно перемещать так, как вам нравится. Я нахожу, что метафора воздушного путешествия, по крайней мере, дает заинтересованным сторонам что-то конкретное, о чем они могут думать, что явно нельзя рассматривать как серию разрозненных шагов, которые должны быть переупорядочены по прихоти. Это, по крайней мере, облегчает понимание вашей точки зрения, что такие перерывы обходятся дорого. Конечно, это все еще их решение, но вы хотите, чтобы они знали об этом, прежде чем они прервут один проект, чтобы дать вам другой. Не бойтесь, но предлагайте полезную информацию и полезную точку зрения разработчика, готового сделать от вас все, что им нужно, но просто предлагайте информацию, о которой они могут не знать, если вы им не скажете.
Короче говоря:
- Запишите все, что вы собираетесь сделать, даже если вы не думаете, что вам когда-нибудь понадобится это записать. Даже короткий карандаш бьет долгую память.
- Мозговой штурм большой картины на физической доске, к которой у вас есть постоянный доступ.
- Вы можете избежать прерываний проекта, если вы будете информировать лиц, принимающих решения, о том, что такие прерывания обходятся дорого, и, по крайней мере, у вас будут определенные ожидания, чтобы они знали, что проект займет немного больше времени, когда вы возобновите его.