通过最优地排序任务来缩短开发时间
这篇简短的文章解释了开发顺序的选择如何延迟或加快您的发布日期。
引言
本文指出了开发顺序对交付日期产生的影响,尤其是在敏捷项目中。
做出选择
每天,软件开发人员都会面临许多需要编写代码或解决错误的功能。做出的选择决定了产品或迭代是否能按时完成。对于敏捷开发人员来说,这个选择比瀑布式开发人员更重要。从定义上来说,敏捷开发人员在需求、架构和设计方面 upfront 投入较少的分析时间。减少分析带来的风险是架构和设计中存在缺陷的可能性更大。因此,敏捷开发人员需要采取措施尽快暴露其设计和架构中的缺陷。
发现设计缺陷的一种技术是基于设计实现代码。您基于设计编写代码越早,就越早发现设计中的缺陷。您应该编写至少足够多的代码来证明设计在尽可能多的领域中的可行性。例如,我们开发了一个应用程序,其中包含许多使用 nHibernate 与 SQL Server 和 Oracle 配合使用的业务类。我们希望使用事务一次更新多个表,并且希望悲观地锁定记录。我们开发了一个客户类,可以进行选择、插入、更新和删除操作。该类尚未实现我们想要的所有属性,因此我们有多种开发路径可以选择,我们可以
- 花时间向客户类添加更多属性
- 花时间为其他类编写选择、插入、更新和删除操作
- 花时间实现锁定
- 或者花时间实现事务。
从表面上看,所有工作都需要同时完成,因此可能看起来顺序无关紧要。但对于我们来说并非如此。我们选择在客户类中接下来实现锁定代码,并发现我们需要更改客户类的现有代码和数据库结构。如果我们等到最后才编写锁定代码,我们将不得不重构和重新测试大量的类和表。
在瀑布式开发中,您通常会花费更多的时间进行设计以防止此类问题,因为重做大量现有代码需要太多的时间。在敏捷开发中,您也可以通过在流程早期测试设计来减少设计更改的影响。
在选择下一个任务时,选择一个能够测试您设计新方面的任务。