2009-06-12 66 views
13

了解了源代码控制后,我做的第一件事就是用svn做一个项目。在了解了git之后,我在一个个人项目中使用了它。在学习了关于UML /设计模式/设计原则/ TDD之后,我将它们应用于个人项目。我怎样才能实现敏捷开发?对于团队和大项目来说敏捷吗?我如何设置这些迭代的东西?如何将敏捷应用于个人项目?

回答

16

我认为敏捷绝对不只适用于团队项目。敏捷提倡一套适用于多种类型项目(甚至是个人项目)的价值观。我刚刚处于你的情况,试图将敏捷开发应用于个人大学项目,并在此过程中学到了很多东西。一些有用的东西,敏捷的思维可以给你包括:对东西

  • 的工作,增加价值,最终产品。让自己积累一些功能并优先考虑它们,就好像你是客户一样。然后训练自己根据对产品的价值对功能进行处理,而不是现在想要执行的功能。这可以为您节省大量不必要的,过度设计的代码,您不会使用它。如果你有期限,那更重要。

  • 有一个进化的设计:从最简单的事情开始,可能工作和重构残酷。

  • 推迟决定,直到最后负责任的时刻。

  • 时间盒自己进入冲刺或迭代(上大学的项目很重要)。

  • ...

如果你去一些敏捷方法再次,我想你会发现很多,你可以自己申请的价值观和做法。

在写这个答案的时候,至少有3个其他的答案出现了,并且打败了我。我同意所有这些。 :)

0

例如,如果结果更加灵活和健壮,不要害怕重构自己的代码,即使它有效。

+0

所以我重复迭代?或者我先开发一些功能然后迭代它们然后继续? – kthakore 2009-06-12 18:05:37

+0

单元测试你的代码。 *然后*采取kmarsh的建议和重构。通常情况下,特定卡片的估计值会考虑到重新构造新特征所涉及的代码区域所需的时间。 – JeffH 2009-08-04 14:07:41

2

很难真正将敏捷编码应用于单人项目,因为其许多好处都针对小团队,您可以在专注领域快速合作。

这就是说,你可以采取一些技巧:

  • 发行往往
  • 专注于用户需求
  • 随意从主要版本的计划偏离 - 你可以改变方向时,你感觉需要
  • 花费更少的时间建立主要框架,尽快获得工作。然后返回并重构以完成您的原始需求(如果它们仍然适用)
+0

无论如何,很多独立开发者可能会遵循敏捷技术,因为他们没有其他人的负担,这取决于他们的代码结构从一天到另一天都是一样的。最大的不同在于项目的开始。你仍然需要计划的东西,但得到*的东西*工作ASAP比其他方法(如瀑布)更关注 – Oli 2009-06-12 18:08:32

3

在您的应用程序中创建您想要的任务和功能列表。把这些任务放在card wall上。

你自己真的不能开会,但早上决定你今天会做些什么,以及你昨天做了些什么。采取这些任务,做他们,然后移动到下一个。确保在每一点上您都能提供持续集成的工作软件,并更新您的积压工作。你可能有“bug bash days”,你只需修复bug。这将是一个单人混乱。 :)

+0

是一个方法来拿出故事卡片? TDD?设计和架构在哪里完成? – kthakore 2009-06-12 18:35:14

+1

对于单人项目,我会说Feature Driven。设计完成后,你知道你正在建设什么功能。 – 2009-06-12 23:58:30

1

是可能使用Scrum的一个男人项目。

  • 创建积压
  • 最佳时间选择一个冲刺是

半天在周五创造下周并为每个项目每半天更新burndowns计划。

0

在这几个想法:

  • 迭代只要你想他们是
  • 的IPM仍然是可能的,你选择你想要做主持的时间长度是什么
  • 演示结束时仍然看到一个有点专业的方式工作的功能,而不是你自己的小调试区域可能不干净有序的
  • 回顾展仍然看是什么,是不工作有用有用为自己在一个点,你可以选择e森林树木在某种意义上

在IMO这样的个人单人项目中,很有可能成为Agile。

0

这里的所有建议都很好,但是敏捷的一个重要方面通常没有提到:监控。

敏捷要求你看看你做了什么,你在做什么,你要去哪里,并根据需要进行适当的修正方向。

我觉得大可见图表和燃尽/燃耗图表是非常有用的,我写了一个程序,Task Analytics,容易使这些图表。它非常适合小型或单人项目。

祝你好运。

2

除了成对发展之外,如果您愿意扮演多个角色,则可以执行其余的练习。如果你有愿意和你一起工作的人,你也可以配对开发。

首先,您会构建产品积压。这将是您希望开发的功能或故事卡的优先列表。没有一张卡应该比你在一次迭代或冲刺中完成的工作更大。如果您的冲刺周数为一周或两周,这将决定您的优先级产品待办事项中功能或故事卡的大小。作为产品所有者,您可以更改每次迭代的产品积压优先级。从产品积压中,您可以构建您的迭代和发布计划。

由于您正在扮演多个角色,您需要留出时间让您创作故事卡片。故事卡应该勾画GUI,描述主要和次要工作流程,最重要的是具有验收标准。

一旦你签署了书面故事卡,你就可以开始在卡上进行开发。您可以使用TDD(测试驱动开发)先编写测试,然后再编写代码。你会重复,直到卡完成。验收标准将帮助您确定要编写哪些单元测试。

卡的开发完成后,您可以编写自动功能测试。您可以使用Quick Test Pro,FIT,黄瓜或其他一些最受欢迎的自动化单元测试工具。我会远离任何游戏和录制功能,因为这会在您重构时在未来推动返工。

一旦单元测试完成和该卡道,它可被添加到所有其他自动功能测试,并且可在每张支票至少每日如果不运行。

在迭代的结束和在将工作软件移至生产之前,您可以执行用户验收测试。

作为开发人员,您应该使用持续集成,自动化构建将随每次频繁检入您的源代码控制系统而启动。

在故事卡写完之后,开发卡片进行迭代之前,您可以完成任务(即,为开发卡片所需的每项任务提供估计值)。您可以确定是否可以在您的估算中完成所需的任何重构,或者您需要创建一个新的故事卡片来捕获您确定的技术债务。如你所见,你可以把一个单一的成员敏捷团队带到很远的地方。鉴于敏捷管理实践有助于协作并确定重要的事情,您也可以从这些实践中受益。鉴于工程(XP)实践使代码保持健康,从而支持可持续的步伐,您的代码将保持灵活性,包含强大的单元和功能性自动化测试工具,使您可以无限期地以可持续的速度继续开发。