当一个新项目到来时,比如建立一个社交网络网站,我应该如何将项目分解为小任务。通常每个项目会有2-4名程序员,通常没有专门的测试人员。我是否应该从一开始就将整个网站分解为4小时的任务呢?我们应该分阶段进行吗?关于测试,让程序员来测试代码可以吗?
感谢您的时间。
当一个新项目到来时,比如建立一个社交网络网站,我应该如何将项目分解为小任务。通常每个项目会有2-4名程序员,通常没有专门的测试人员。我是否应该从一开始就将整个网站分解为4小时的任务呢?我们应该分阶段进行吗?关于测试,让程序员来测试代码可以吗?
感谢您的时间。
这是一个关于论坛的大问题,所以我先推荐一本书:
《敏捷估算与规划》,作者是Mike Cohn。
从书名可以看出,它提供了一种敏捷的方法。
在你购买并阅读这本书之前,这个极其简短的版本可能会有些用处:
先进行粗略的计划。例如:我们计划在两个月内部署第一个版本,其中包含使其真正可用的基本功能。之后每个月都会有一个新版本。确保不要过于详细地规划。因为现实将摧毁所有详细的计划。你可以将此计划中的步骤视为阶段,但请注意,它们与经典的阶段分析、设计、实施、测试、部署不匹配。
对于第一个阶段,更详细地规划你要做什么。使用垂直切片进行规划,即不要规划:“首先我们将制作GUI,然后是模型,再然后是数据库”,而是使用完整的功能,通常被建模为用户故事。例如,“作为用户,我想将订单输入系统中”。这将是一个用户故事。该用户故事的实现将意味着从用户界面到持久性的所有内容,包括测试。(Google搜索“用户故事”和“迭代计划”以获取更多信息。)
对于你的测试问题:开发人员测试他们的代码比不进行测试要好。但是有更好的方法来确保代码的高质量。我建议采用以下方法:
进行测试驱动的开发,即先编写测试,然后再编写实现。这种方法强制你和你的团队使代码结构良好,它支持快速更改代码,因为测试会告诉你哪些东西出了问题。
至少一部分时间进行配对编程(越多越好)。这确保至少有两个人理解每行代码。它还作为隐式培训,并最终作为代码审查,这是一个好事,因为众所周知,代码审查比测试更有效地发现错误。
你仍然需要手动测试完整的应用程序。
更多阅读和搜索的内容:敏捷、Scrum、XP、TDD、BDD、Planning Poker。