将项目拆分成小任务

5

当一个新项目到来时,比如建立一个社交网络网站,我应该如何将项目分解为小任务。通常每个项目会有2-4名程序员,通常没有专门的测试人员。我是否应该从一开始就将整个网站分解为4小时的任务呢?我们应该分阶段进行吗?关于测试,让程序员来测试代码可以吗?

感谢您的时间。

5个回答

9
我们使用一个相当简单的系统。
首先,我们将项目分成用户故事或“垂直”部分。例如,“更新客户”。
在您的电子表格的第一列中列出所有垂直部分的列表。
然后,在顶部放置层或活动。例如数据层、UI、记录。
对于矩阵中的每个元素,您可以分配一个估计并决定谁应该开发它。
将其分解为4小时的元素很好,因为每个开发人员都可以说:“今天我要完成这两项任务”在Scrum中。
我们通常为每个Sprint执行此操作,以完成Sprint内的活动。
在测试方面,程序员应通过编写单元测试来测试代码,但是测试人员应执行系统测试。

6

这是一个关于论坛的大问题,所以我先推荐一本书:

《敏捷估算与规划》,作者是Mike Cohn。

从书名可以看出,它提供了一种敏捷的方法。

在你购买并阅读这本书之前,这个极其简短的版本可能会有些用处:

  • 先进行粗略的计划。例如:我们计划在两个月内部署第一个版本,其中包含使其真正可用的基本功能。之后每个月都会有一个新版本。确保不要过于详细地规划。因为现实将摧毁所有详细的计划。你可以将此计划中的步骤视为阶段,但请注意,它们与经典的阶段分析、设计、实施、测试、部署不匹配。

  • 对于第一个阶段,更详细地规划你要做什么。使用垂直切片进行规划,即不要规划:“首先我们将制作GUI,然后是模型,再然后是数据库”,而是使用完整的功能,通常被建模为用户故事。例如,“作为用户,我想将订单输入系统中”。这将是一个用户故事。该用户故事的实现将意味着从用户界面到持久性的所有内容,包括测试。(Google搜索“用户故事”和“迭代计划”以获取更多信息。)

对于你的测试问题:开发人员测试他们的代码比不进行测试要好。但是有更好的方法来确保代码的高质量。我建议采用以下方法:

  • 进行测试驱动的开发,即先编写测试,然后再编写实现。这种方法强制你和你的团队使代码结构良好,它支持快速更改代码,因为测试会告诉你哪些东西出了问题。

  • 至少一部分时间进行配对编程(越多越好)。这确保至少有两个人理解每行代码。它还作为隐式培训,并最终作为代码审查,这是一个好事,因为众所周知,代码审查比测试更有效地发现错误。

  • 你仍然需要手动测试完整的应用程序。

更多阅读和搜索的内容:敏捷、Scrum、XP、TDD、BDD、Planning Poker。


为什么不选择代码审查而不是结对编程呢? - ChrisW
1
我不会放弃配对编程,因为它们在培训方面非常有效。我建议两者都做,但这可能对一个刚开始进行严肃开发工作的团队来说有些过于繁琐。 - Jens Schauder

2

你可能会发现另一本有用的书是

《软件估算:揭秘黑魔法》

作者是Steve McConnell

除此之外,我只能重复其他人所说的:基本上就是“分而治之”。


1
你需要选择一本关于项目管理的基础书籍,阅读并实践所学。查看维基百科关于项目管理的文章是一个很好的起点:http://en.wikipedia.org/wiki/Project_management 拆分项目的一种方法是设定里程碑并进行粗略估算以达到这些里程碑。不要过于复杂化事情。通常,在项目开始时,项目规划和估算是不可靠的。但随着您了解正在构建的内容,估算和计划会得到改善。
你可以将项目分解为4小时的任务,但那将是微观管理(除非你真的可以在4小时内完成一项工作单元:)),我建议在项目开始时尤其不要这样做。
关于程序员测试他们的代码:
今天让程序员测试他们的代码是相当普遍的,测试就像项目管理一样是一个巨大的领域。例如,在系统开发生命周期的不同阶段进行不同类型的测试。
在开发过程中,你可以采用测试驱动开发的方式——让开发人员先编写测试,在其代码通过测试验证后再提交到所使用的源代码库。
一旦所有代码都提交完成,并且你拥有了软件的早期版本,你可以进行内部测试,例如系统测试,其中包括测试人员或程序员来测试应用程序。
当你对系统测试感到满意时,你可以在将其部署到任何地方之前进行用户验收测试。用户验收测试应该由目标用户来执行。
祝你的项目顺利成功 :)

0
关于测试,程序员自己测试代码可以吗?
如果没有质量保证团队,程序员必须测试他们的代码!
我建议程序员进行代码审查(相互审查彼此的代码)。作为团队领导,我曾经审核过新员工的所有内容,然后再让他们提交:
  • 质量控制(确保他们不会提交错误)
  • 此外,培训(看看是否有他们不知道但应该知道的东西,我可以告诉他们)
当我的审核不再发现错误时,我就会停止审核一个人的代码,这通常是因为他们已经学会了如何测试自己的代码。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接