2010-07-15 64 views
1

我是一个软件开发团队的成员,致力于一个小型项目。 我们认为,我们可以在连续工作2或3个月后发布测试版产品。哪种软件开发方法?

由于这是我们的第一次团队合作,我决定问一下,对于少数开发人员(少于10人)的小型项目,您会采用哪种软件开发方法?

+0

究竟你“的开发方法”这里是什么意思?这有点宽泛,尤其是不知道你打算做什么,你的团队经验如何...... – 2010-07-15 08:56:12

+1

嗯...也许你的意思是方法论?像敏捷,tdd,bdd还是这样? – cRichter 2010-07-15 08:57:36

回答

6

有两种软件开发方法:

  1. 写下你要做什么,做到这一点,那么同意,你都做到了。
  2. 开始开发东西,同意你所做的是好的,重复直到完成。

两者都有其追随者,并且都以各种名义反复弹出。每一代新一代软件开发人员(即大约每两年一次,这是一个快速变化的行业,软件开发人员拥有may lif一生的寿命)拒绝上一代的方法,重新发现前一代使用的方法,将其重命名为时髦,并宣布它是一个真实的方式。

方法之间的选择应该取决于(a)客户组织的文化和(b)较小程度上的供应商组织文化(即软件开发团队)。

因此,如果您为一种按钮式保守企业方法工作1,如果你向下看,看到你正在穿冲浪短裤,今天早上在你的滑板上来上班,用方法2进行。

而且,如果你已经阅读了这个,最严重的一点就是在最后一个之前,即开始“选择......”的那一个。这是一个文化/组织问题,而不是技术问题。这两种方法已被用于许多许多成功的项目,既没有对不成功的项目进行垄断。

+1

我喜欢这个答案。我可能应该指出,这两种方法可以在不同层面上使用:例如,您可以写下总体目标并使用(2)来达到目标​​。 – 2010-07-15 14:45:07

2

这确实取决于您打算构建的内容。如果该项目将成为你想要建立的东西,并且经常有类似Agile/Scrum的内容,那么它将非常适合。

但它确实取决于项目是如何确定的释放迭代之类等

1

这确实取决于您的客户。

  • 如果客户能接受固定 时间,固定的资源,固定质量 (100%工作的代码),并稍微 变量的作用域,我建议选择 敏捷方法。

  • 如果客户不能接受上述 ,即,使用敏捷方法的前提条件 不 目前,我建议选择任何 方法你喜欢。

重要的是你有一个方法论,学习什么在你走的时候工作,并使用知识来调整方法。

0

不要做瀑布,这从来没有工作,永远不会工作。思考瀑布是一种工作方法,就像想着把头撞在墙上一样好,因为即使是最坚固的墙也必须在某个时候崩溃。

我会采用合理的敏捷方法,比如Scrum(XP有点苛刻)。此外,介绍像TDD,DDD,DBC的东西,你应该没问题。

+0

-1:瀑布已经工作了很多次。不,我不会为@Turing Complete提供理由而证明这个陈述是正确的。 – 2010-07-15 09:33:39

+0

是的,瀑布在非技术性管理人员(和所谓的“顾问” - 哈哈)的象牙塔的梦想中起作用。然而,它是开发软件的最糟糕的方法,我宁愿做RAD(我讨厌)和牛仔风格的开发比...瀑布。 – 2010-07-15 09:35:12

+1

我见过瀑布工作。如果您能够提前确定您将需要的内容,并且实施过程非常简单,那么它的运行情况相当好。其最大的弱点是它对要求的改变确实不灵活,而且它对实验开发确实非常不利。其糟糕表现的一个原因可能在于,它所不利的情况通常比它所擅长的情况更有趣。 – 2010-07-15 14:43:13

0

我不认为这是最好的答案,没有更好的背景和环境的想法,但我个人正在成为精益/看板方法的粉丝。总的来说,我发现很多敏捷/混乱的方法可能都是以开发人员为中心的,而且有时甚至是反管理者,这有时是合适的,但并非总是如此。精益方法倾向于解决整个价值流,而不仅仅是发展本身。

您可以阅读更多关于它:http://www.limitedwipsociety.org/