你如何pipe理自己的小项目?
既然我有工作,而且我想在业余时间写一些自己的软件,我想知道你们如何组织,规划和开发这样的小项目。 既然这不是一份工作,你可能会被其他很多事情打断,那我怎么能让它继续下去呢?
以下是我发现的一些有用的东西:
- 找出您的高峰生产力小时:有些人在上午6点工作更好,有些人在下午6点,有些在午夜。 你也许还有其他的承诺,所以要确定你已经搞清楚了最好的时间,把事情做好。
- 完成任务: David Allen有一本伟大的书 (同名),用来处理如何pipe理所有的时间,无论是工作,娱乐还是小型项目。 我发现他的技术非常有用。 他们不会帮助您直接布置您的项目时间表,但他们将帮助您最大限度地提高您的时间。
- 制定一个项目进度计划:给自己一个到期date,以及项目各个阶段的一些中间目标date。 即使花费一个小时为您的项目制定路线图,也可以帮助巩固您的思维过程,并确定您可以实际达到的日程安排。 我发现,安排奖励(晚餐,一天rest,一个新的video游戏)的会议目标有很大的帮助。 一定要每周跟踪一次你的进度。 这将帮助你保持专注于项目。
- 保持您的工作区域清晰 :在工程项目上预留一个区域(最好是家庭办公室或类似的地方)。 当你在那个地方时, 只能在项目上工作。 即使你的办公室只是一个小angular落,那个地方也应该留给这个项目。 当你有时间工作时,坐在那个地方。 当是放松或做其他事情的时候,坐在其他地方。
- 花点时间放松一下:你不会持续很长时间,每天工作8个小时,照顾所有其他的工作,然后把剩下的每一个清醒时间花在你的项目上。 你的身体(和精神)需要时间来放松和恢复活力。
- 不要害怕失败:许多小项目都失败了。 如果你想做点什么,那就试试吧。 接受它可能不会奏效,但是如果你决定努力,就要对自己成功的想法承担责任,不要回头。
- 玩得开心:如果你不喜欢,找一个方法让工作愉快。 听你最喜欢的音乐,把你的代码写在一个舒适的小咖啡店里,或者干脆在项目的不同部分工作一段时间。
关掉你的手机,放弃你的电视,并断开互联网。
根据你的情况可能需要进一步的步骤:倾倒你的女朋友,find你的妻子的爱好,卖掉你的孩子,雇用一个pipe家。
更严肃的说,我觉得清晨比晚上工作的时候更有成效,因为那里有太多分散注意力的事情。 作为一个早睡的副作用,使我成为一个更有活力,更快乐的人。
我学到的最有效的方法之一就是抓住一个伙伴 。 当你开始冒险进入一个项目时,它会变得非常孤独和压抑。 一个男人的秀可以让你轻松折叠商店,回家。
与合作伙伴一起,您可能会find履行承诺的义务,应该是“我们要成功”。 另外如果你有一个伴侣,你可以反弹他的想法。 开箱思考会容易得多。
其他技巧可能是。 设置里程碑,每周,如果不是每天。
我坐在笔记本上(笔和纸),在漫长的火车上往返于我的实际工作。 我大概平均每3个小时的实际编码计划和写作。 因为我花了很多时间进行规划和devise,所以当我坐下来写一些代码的时候,代码质量更高,不需要经常重写。 如果我把所有的时间都花在编写代码上,我可能会稍微低下一点成果。
除此之外,您还可以免费在家中使用FogBugz ,尽pipe我并不喜欢它作为项目pipe理工具。
更实用的答案…
- 确保你有远程修订控制(subversion和git都非常好)。
- 将您的修订控制托pipe在备份的服务器上(无论是您的服务还是免费服务)
- Trac用于错误跟踪/票据,项目里程碑,wiki等。与大多数开源版本控制系统集成。 (如果你是一个git用户,那么我推荐github而不是trac)
把它放在code.google.com(或者你select的其他开源托pipe引擎)上,把它放在邮件列表,网站和c中,这些可能让人真正热衷于这个概念,让我们来呃。 除非你在svn或者hg中有一些半工作的代码,否则你不可能获得太多的牵引力,但是,你永远不知道!
开源是关键:如果你只能在偶尔的时间抢夺项目,那么这个项目就没有什么意义了,除非你能得到其他贡献者 – 这意味着开放源代码;-)。
我有一个非常大的c + +项目多年。 (只有编码器…)我的提示:如果你需要rest一下:强制代码==不好的代码。 此外,即使你的手指没有打字,你的头仍然会继续…(propably)
我不得不build议你给FogBugz一个尝试。 我倾向于在一些项目上工作,而我不能保持事情的顺利进行。 我喜欢它的一些快速的东西:
- Wiki用于项目计划和文档。 如果项目需要文档作为交付给客户,我也使用维基作为起点,并在完成后将其复制到PDF中。
- 错误跟踪跟踪function开发的进展情况和我发现的错误。 我认为,即使对于小型项目来说,最终的结果也比代码中的纸质清单或TODO更具可扩展性。
- 与我的SVN仓库集成,所以我的提交显示附加到适当的票。
- 我所有的客户帮助查询都通过API直接进入了FogBugz。 便于跟踪支持请求并保存未来的信息。
正如在线程中的其他地方所提到的,FogBugz拥有多达2人的免费版本。 如果你正在设置一个源代码回购,请尝试Beanstalk(beanstalkapp.com) – 他们也有一个免费的版本。
你也可以考虑Basecamp(basecamphq.com)。 我个人不使用它,但大多数人似乎喜欢它。
2个简单的任务:1)build立每周目标2)每天设置1个小时来实现这些目标
如果你没有明确的监禁,你什么也得不到。 另外,如果你不设定时间来处理它,那么很可能你永远不会为你的项目出演。
亲切的问候。
我处于同样的情况。 业余时间我有自己的小项目。
这里的关键是要坚持相信你的玩具。 不要因为速度太慢而感到沮丧。 当然,如果时间不多的话,会很慢。 这可能需要几个月或几年。 只要相信它,并继续努力,没有设定最后期限(你肯定会错过的)。
在白天,你可以思考今天晚上你会做什么,研究互联网,收集一些信息,阅读一些博客和例子,然后在晚上,你已经知道该怎么做,如何处理它。
我一直在做一个10年以上的宠物项目,我做了什么来保持规划的理智和动机在同一年发生变化。 我目前使用谷歌代码问题跟踪系统让我pipe理我想要做的工作(和用户错误)在一个理智,简单的方法。 它也很好地集成了源代码控制和问题跟踪,使得两者同步的很好,很容易。 这是我find的用于pipe理项目的最好的系统(成本最低)。
为了跟踪工作,我为接下来的三个版本定义了一系列里程碑,并将我想要做的事情放入这些里程碑中,然后剔除。 尽pipe这个项目对我来说是一部分,所以不时出现这种情况是很重要的,所以偶尔会增加一个新function,或者随便写一个大块。 当然,这不是在计划中,但没有人付钱给我准时交货和预算内:)
为了与用户进行交互,我以前运行了邮件列表,但是现在这些用户似乎不太受欢迎,并且需要更多用户的感知投资。 我添加论坛到我的网站(感谢bbPress ),并看到更多的接受和利益。 我运行的主要网站是一个非常简单的WordPress的顶部皮肤,使它看起来不像一个博客 – 使用一套预build的工具来pipe理您的网站意味着你不花时间在非核心活动。 我想花时间开发我的文本编辑器,而不是CMS。 最后,对于文档,我经历了许多不同的方法,但是目前正在为我工作的那个方法是托pipe一个wiki。 对于人们来说,这是非常低的摩擦力,对于我来说,随时都可以在论坛上回答一些问题。 我用来构build的预编译的帮助文件正在变得完全过时。
我学到的最重要的教训之一是如何说不。 一旦你得到了一堆用户,他们将开始请求数百个function/configuration选项/错误修复,并且到了这样的地步,我觉得我生活在一个我不想做的工作之下。 从观看其他项目我学会了如何说:“当然,好主意,但我不会在这个工作”。 开源的好处是,别人可以做到这一点,如果它足够重要。
为了激励,我发现想要使用你正在构build的东西是非常重要的 – 如果你不是通过食用你的代码或者从中赚钱,那么你可能会感到无聊,继续前进。
最后,请记住,您可以从项目中度过一个假期 – 这有助于以新的热情重新焕发活力。
大部分的工作都是那种停工时间很长的工作(等待垃圾发生),更不用说公交车上下class了。
因此,我一直在与我保持一个项目书(例如一个美元商店的地址簿),我把我的所有项目和想法都放在了纸上。然后,我可以在纸上绘出东西(这总是更快更简单比在电脑上)。 这样我就可以完成所有的devise以及伪代码(而不是伪代码)。
每当我在计算机上工作时遇到困难,我都会尝试打印出相关的代码块,以便能够看到整个画面(在监视器上有更好的分辨率),并且可以做各种笔记和更改用铅笔,更容易和更快。
我发现我用铅笔/纸更加高效。 更好的是,通过这种方式,我可以在最短的rest时间(比如上电梯或在商店排队等候)完成工作(甚至是快速的工作)。 通过这种方式,我可以在“无用的时间”里为我的项目做大量的工作,否则就会浪费掉。
除了我的编码项目之外,我还有其他所有的想法(电影剧本,草图,各种各样的清单,发明等等)。这种方式每当我有一个空闲的时刻,我总能find某种有生产力的事情来做。 唯一的问题是,过了一段时间,它变得非常臃肿,我不得不修剪完成/死亡的项目,等等:)
至于物stream方面,我只能推荐我总是推荐的东西:做个清单! 无论是使用程序还是纸张,都要列出您的任务(以及子任务和子子任务等)。如果您必须尝试跟踪您的头脑中的任务,则无法提高工作效率。 我甚至连数不清的次数都没有计算出我对母亲大吼大叫的次数,因为有太多的事情要做,而且不知所措,尽pipe我让她把血腥写下来。 我记得曾经去挪威见过她一个月的母亲,所以我不得不把她所有的责任都放在这里。 我一直告诉她,因为我已经把事情做了一个清单,我设法做到了这一切,而没有被压倒。
列出清单,并随时将任务交给你。 当你看到眼前的任务和进度时,你会惊奇地发现有多容易。
基本上,我组织了一天。 就好像我要安排其他的例程一样,比如去健身房。
我特意告诉自己,我会在一天中的特定时间里为我的个人项目工作。 现在,因为他们是个人的,所以他们应该很乐意去做,所以不要花太多的精力。 但是,如果事情打断你,那完全没问题。
最后,我只是告诉自己,这是值得追求的,特别是当你从事个人项目的时候,有很多需要了解软件开发的东西。
我目前也是这样做,并不想要任何花哨,简单而有效的解决scheme。 使用免费的代码托pipe解决scheme来pipe理版本控制,我使用MonkeyGTD来logging和跟踪项目中的所有操作。 我也可以设置ticklers,定时动作警报。 组织我的想法
然后,我使用MonkeyPirateTiddlyWiki来logging任何我觉得有用的东西,并且可以在将来重用。 坚持我的想法。
所有这一切都在自动备份简单的HTML文件。
那么我不pipe理我的小项目…它pipe理我!
当我玩的时候,它会吸收我所有的能量。 这通常会持续几天。 然后我放弃它(但当然只是暂时的)。
底线:如果是爱好,当你感觉喜欢的时候就去做,不要让它给你带来压力。
一般来说,最好是指定一个固定的一天,当你想每周花一些时间在你的项目上。 规律性对于长时间的事情是非常重要的。
除此之外,我build议使用版本控制pipe理(Google Code),因为您已经在远程计算机上备份了,所以这是一个好主意,另外还有OpenSVN或SourceForge 。使用OpenSVN,您可以使用TRAC ,与方便跟踪你的进展和错误)。
剩下的就取决于你的项目规模,但是一些有date的粗粒度里程碑当然不会损害这个过程。 除此之外,在一个小项目上做太多的项目pipe理没有什么意义。 🙂
我发现这篇博客文章也非常有用: 让自己进入“区域”,以及一些关于编程的注意事项
在你的床上放一个笔记本。 凌晨3点我总是有最好的想法。
至于规划一个小型项目,你可以在电子表格中做很多项目pipe理,然后它变得笨拙。 如果只有你们中的一个,那不太可能。 每天花10分钟注意完成的任务。 保持最新的整个事情。
我有一家小型的咨询公司,我在旁边运行。 这些年来我有几个项目 – 其中一些项目足够大,我不得不带上其他开发人员。 对我来说,最重要的事情是要让我的客户了解时间限制和预算。 我知道我可以做全职工作 – 在周末每天工作2个小时,周末工作5个小时。 除此之外,我不得不为更多的员工而不仅仅是自己。 我知道很多人可能会说周末一天5个小时不算多 – 但是我对他们说 – 你以前是否付钱给客户呢? 生活必需品也必须照顾 – 一天只有这么多的时间。 到目前为止 – 我没有任何失望的客户使用这个系统 – 对我来说 – 这是最重要的。
我知道你们中的一些人即将说“但是等等 – 他说自己的小项目”。 这是事实,但他是他自己的客户。 如果他想“保持下去”,他需要把每一个项目都当作有客户来回答,即使客户是他自己。 他可以设定自己的时间要求,并相应地“预算”开发者的时间。
祝好运。
GTD总是很好的帮助。 一口咬住大小可操作的物品清单,随着你走,保持进步和士气最大。 留出时间和空间来工作也是关键。
另一个不可或缺的工具是让别人在自己的项目上工作,或者有人了解你的动机来帮助你追究责任。 每周更新几次与其他人的更新通常会使你保持高效率,因为在会议上很难把事情弄得一团糟。 即使只是一个电话交谈,也可以为您的项目增加惊人数量的生产力。
尽可能保持项目无处不在。 我发现,如果我可以在工作和家中使用我的TODO /项目规范,这确实可以帮助我提高工作效率。 我可以参考一下,如果我有工作的想法,并检查我的想法,当我回家工作的事情。 我使用Evernote作为我的规格/ TODO和Moleskine笔记本电脑,用于一个随时随地的创意捕手。
为了保持你的责任,你也可以设置一个博客来做状态post。 这将提供许多好处。 一个它可以让你把工作分解成后期大小的部分,这样你就可以一次处理不同部分的项目,然后写下它们。 其次,通过将内容input到文字中来巩固你的想法,类似于教别人如何做某事。 最后,当您完成为客户提供的内容时,可以更轻松地了解产品是如何产生的,了解您的故事并开始您的营销/品牌推广。
我的推荐:
试试PivotalTracker 。 把“故事”放到你的项目应该达到的地方,插入发现的错误。 既然我们使用PivotalTracker,那么团队中的动机就更多了,在我自己的项目中也是如此。 你真的在跟踪你做了什么,还有什么要做。
但最重要的是:您可能随时被打断。 即使被另一个项目打断也很有趣(通常发生在我身上),因为这只是一次点击而已,而且与其他项目的进度保持同步。 并且可以告诉您的客户(如果该计划不仅适合您),您在上周做了什么。
当然,这只是一个工具,但从我看到的,我最喜欢的。
使用/ w项目pipe理网站来跟踪你的任务和源代码。 关于下class后工作的最糟糕的部分只能在短时间内处理,所以能够尽快从停止的地方起飞。
我个人使用Codespaces.com并高度推荐跟踪小项目。 它有一个任务板,wiki和SVN存储库。 最好的是500MB以下的项目是免费的!
保持下去的最好方法就是像工作一样认真考虑。 如果可能的话,我build议在项目中包括几个更像志同道合的朋友。 我甚至build议包括你的家人做一些像可用性testing,文档等项目的杂事。这样,它不会听起来像一个例行的工作,你会喜欢的工作,因为每个人都是支持,热诚和希望看到该项目成功。
关于项目组织,我自己正在做一个大型项目,有很多方面需要我考虑。 我有编码和开发大型网站的经验,但这将是我自己的100%。 在开始解决代码之前,我使用了两个工具来帮助我整理思路,避免浪费时间如下:
- FreeMind – 免费思维导图软件,可以让你头脑风暴的function和function,并以有组织的方式显示它们
- 黑莓Storm上的Voice Notes Recorder – 每当灵感触及,或者我想起一个错过的项目时,我都会很快留下自己的声音并保存下来,直到可以将它添加到思维导图。
我一直在研究全方位的思维导图3周左右,以确保我不会遗漏任何方面的发展,我不觉得我已经准备好开始编码。 思维导图将会很好地散列已完成的项目,并获得跟踪我的过程的视觉方法。
希望这可以帮助。
- 如果这是一个小项目,你应该能够跟踪你脑海中的概况。 如果不行,那太大了。 话虽如此,一个错误和function列表(在Excel中说)是一个好主意。
- 计算一般你能在一个单一的工作时间内工作多长时间,并准备一份在那段时间内适合的任务列表。 例如,如果你在下class后的茶歇之前(假设)一个小时,可以列出半小时的任务。 它们应该很小(例如“排列这些控件”,“重构这个单一类”,“添加一个额外的input域”)。 除了说“我在这个大任务上做出了1%的进步”之外,最好还是去做一件小事。
- 保持小。 修剪,修剪和修剪更多。 弄清楚什么是绝对最小的v1。 即使这没有赚钱的希望,它可以产生广告收入或至less一些networking讨论。 一旦你完成了v1,你可以担心v2。 如果你每晚pipe理一个小时,那么一个六个月的项目将需要近三年的时间。
- 使用源代码pipe理,并使用备份。 有多台机器? 我使用笔记本电脑作为SVN服务器,并在我的主机上工作。 我使用一个batch file来每周一次将存储库转储保存到Dropbox。 免费,轻松。
- 不要抛弃你的女朋友 – 买入。 他们可以帮助这个项目吗? 写文档? 促进它? 平面devise? testing? 码?
我使用www.manymoon.com
它是一个非常简单的使用,但足够小的项目的权力。
你应该试试看。 基本版本是免费的。
我使用Codebase(codebasehq.com)为我的git服务器和代码pipe理。 还有许多其他基于SaaS的项目pipe理应用程序相对便宜,如Basecamp。
然而,我build议的一件重要的事情是find另一个人与你一起编码 – 当你与另一个志同道合的人一起工作时,这会让项目变得更加有趣。 我发现,我所做的所有项目都比我用“编码伙伴”完成的项目要多得多。
祝你好运!
获得一个免费的FogBugz账户
首先,做Alex Martellibuild议的事情……他们都是很好的提示。
其次,获得一个fogbugz帐户…它是免费的一个小项目,如你的。 用它来logging你的想法,分解任务等
当你有一些时间来处理项目的时候,有一个计划对你的项目有多大的帮助是很有意思的。
http://www.fogcreek.com/FogBugz/StudentAndStartup.html?isl=140855