Подтвердить что ты не робот

Является ли оформление спецификаций для хобби-проектов единственным способом их завершения?

Вот что мне интересно. Каждую ночь, когда наш 3-месячный ребенок позволяет нам спать, я прыгаю на свой компьютер и начинаю кодировать мои хобби. У меня около 20 различных проектов, над которыми я работаю: различные типы проектов, от игр С++ до веб-приложений, а также некоторый вклад в проекты с открытым исходным кодом. Это действительно страсть и была в течение многих лет.

Тем не менее, когда я оглядываюсь назад, я вижу, что я не смог полностью выполнить один из моих проектов по хобби. Я всегда делал прототипы и настраивал наиболее важные функции, но со временем, а не заканчивая свой проект, я в конечном итоге переключился на другой проект, который сейчас кажется "таким крутым". Следовательно, я обычно заканчиваю глючные и неполные игры, у которых нет ни конца, ни истории, 3D-движков, которые имеют самую быструю процедуру PolygonDraw, но не имеют возможности реализовать что-либо еще и т.д. Список длинный. Я думаю, что, должно быть, написал незавершенный Понг более чем в сто раз!

Мне сказали, что средство - написать спецификации для моих хобби проектов.

С одной стороны, я пишу много спецификаций на работе. Я знаю, насколько они важны для определения дорожной карты продукта и пребывания в графике. С другой стороны, спекуляции и хобби проект просто не кажется, что идут! Мне кажется, что кривая обучения построению игры на самом деле делает ее забавной; а не самой игрой. Отсюда удовольствие от потери времени на реструктуризацию всего движка, удовольствие от создания самых бесполезных функций и т.д.

Итак, возникает вопрос: вы когда-нибудь писали спецификации для своих хобби? Чем они отличаются от работы? Как вам удается завершить свои хобби?

Буду рад узнать, когда я работаю над своим новым проектом: генератор сонаты для фортепиано:)

4b9b3361

Ответ 1

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

Если вы просто "программируете для удовольствия", то хорошо, вы преуспеваете. Я не думаю, что писать спецификации - это весело.

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

Ответ 2

Это все о "управлении собственными проектами"... даже для удовольствия.

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

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

Я научился писать свои собственные спецификации для личного использования

to

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

Для меня написание моих собственных характеристик жизненно важно для того, чтобы что-то сделать!

Вы бы не начали бизнес без плана, не так ли?

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

БОЛЬШОЙ РЕДАКТИРОВАНИЕ. На диске для личной эффективности и для завершения проектов. Я прочитал "Getting Things Done"... Несмотря на все хиппи-дерьмо о "психике" и различных уровнях разума (которые, несомненно, не основаны ни на какой науке), советы очень хороши.

Ответ 3

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

Если вы потратите несколько часов на то, чтобы записать спецификации и требования, это будет очень полезно для вас через 6 месяцев, когда вы получите некоторое свободное время или ваши ADD-переключатели в этот проект, и вы попытаетесь вспомнить, что это такое. сделать.

Ответ 4

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

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

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

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

Это только мой личный опыт, и я считаю, что вы должны попробовать. Надеюсь, это тоже поможет вам.

Ответ 5

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

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

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

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

Ответ 6

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

Иногда лучший способ сделать это - просто сделать это.

Зе Франк объясняет это намного лучше меня: http://www.zefrank.com/theshow/archives/2006/07/071106.html (ссылка видео с ругательством)

EDIT: просто добавьте. Если вы находите, что хотите оставить свой готовый проект для новой, великой идеи... сделайте это! Не оглядывайся!

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

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

Ответ 7

Обычно я пишу первый набор спецификаций при запуске.

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

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

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

Ответ 8

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

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

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

Ответ 9

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

Конечно, для этого требуется контроль источника, но вы уже использовали его для своих проектов, не так ли?:)

Ответ 10

Вы хотите закончить их?

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

Может быть, если вы просто нацелитесь на "выпуск" и не будете "закончены", вы будете более удовлетворены. Бетас позволил вам продолжать мечтать.

Ответ 11

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

Я заканчиваю примерно половину того, что начинаю.

Ответ 12

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

Я думаю, это связано с тем, что спецификации обычно скучны для чтения и записи. Джоэл написал интересную статью об этом и как сделать их лучше, если вы их напишете:

Безболезненные функциональные характеристики

К сожалению, у меня не было смелости попытаться сделать мои спецификации более интересными для чтения на работе.

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

Ответ 13

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

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

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

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

Ответ 14

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

Это сказано...

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

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

Ответ 15

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

Ответ 16

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

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

Ответ 17

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

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

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

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

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

Ответ 18

У меня такая же проблема. Одна вещь, я заметил, что ХАС помог, хотя, понижает мои амбиции. как ПУТЬ ПУТЬ низко. Написание спецификации - это один из способов возобладать в амбициях, если у вас есть какое-то ограничение для спецификации, например "Спецификация может быть только одной страницей", или "спецификация может быть не длиннее 300 слов", или "Spec только то, что я могу сделать в один день кодирования". Правильный выбор баланса может занять определенную практику. Если вы перейдете с последним лимитом, вы можете наложить правило отклонения проекта MANDATORY, если вы не можете завершить его за один день.

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

но помните об этом:

"Сложная система, которая работает неизменно обнаруживается, что простая работающая система. обратное утверждение также представляется true: сложная система, разработанная из царапины никогда не срабатывают и не могут быть сделаны работать. Вы должны начать все сначала, начиная с простой работы Система".

-Жон Галль

Слишком много проще сделать этот амбициозный проект, если у вас уже есть проект FINISHED and WORKING, который будет основываться на нем. Тогда "более сложная вещь" МОЖЕТ быть проектом, который вписывается в один день. Это идеал и философия, над которой я работаю, потому что я думаю, что у нее есть лучшие шансы на успех. Рассматривая прошлые успешные проекты, подавляющее большинство из них эволюционировало таким образом, было ли это намеренно или нет.

Ответ 19

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

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

Ответ 20

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

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

Ответ 21

Я думаю, что основная проблема заключается не в отсутствии спецификаций, а в том, что что-то заканчивается чем-то (hard).

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

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

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

Некоторые советы:

  • Убедитесь, что вы действительно хотите завершить проект. I., что награды стоят всей тяжелой работы. (Если нет, то принимайте этот факт и оставайтесь счастливым мастером.)

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

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

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

Ответ 22

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

Ответ 23

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

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

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

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

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