这里如何使用敏捷开发(AGILE)?

3
我非常支持敏捷开发,但我的一个朋友(他还不了解敏捷开发 - 他是管理型人才^^)问我如何规划和开发一个复杂的分布式项目,其中包括数据库层、通信层、接口和嵌入式设备的集成。 敏捷方法强调早期发布和迭代的概念,但在一个由许多相互连接的组件构成的项目中,所有组件都需要正常运行才能使整个项目正常工作,如果没有同时处理所有组件,就难以发布早期版本。敏捷方法如何帮助我的朋友?他应该如何最好地利用它?
5个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
3

我们公司的团队面临着相同类型的问题。我们正在构建具有大量移动部件和架构层的项目,这使得很难在早期创建一个可工作的产品。此外,通常需要安排一些特殊资源,这些资源可能与团队略有不同步。以下是我们采取的一些方法。虽然具有挑战性,但这些方法似乎有所帮助。

尽可能垂直地构建

  • 换句话说,努力尽快实现端到端的工作。我们通常在9-16个月的项目中完成了几次迭代。
  • 您经常会发现许多层可以被模拟或保留。
  • 通常,最初的面向客户的组件是占位符。我们创建了一小部分功能,类似于客户想要的东西,但最终项目可能会非常不同。这使我们能够证明其余产品在系统级别上的效果,并从系统角度提供可见性。

将基础架构与产品分离

我们早期的迭代通常围绕基础架构/架构展开。例如,线程子系统、性能监控、通信和测试框架。

  • 将子系统视为单独的可交付成果
  • 完全定义每个子系统
  • 完成(真正完成,而不仅仅是部分实现)每个子系统
  • 在最终产品中使用的上下文中对每个子系统进行负载测试

非常好的评论,感谢您的见解。 - bluebit

2

首先,将第一次迭代专注于架构设计,包括识别必要组件和定义它们之间的关系和通信。

一旦您清楚地了解到组件如何交互,可以构建每个组件的框架。也就是说,实现“存根”组件,只有通信部分已经就位,其余功能什么都不做或返回测试数据。还需要一次迭代来完成此任务(包括测试组件通信机制)。

然后,您可以计划迭代以适当的顺序完全开发每个组件,以便系统可以按有序方式增长。


1

TDD - 在编写测试后,使用不完整的部分进行迭代。Mock 那些还没有准备好的部分。听起来很令人兴奋。


1

每个层级都需要完整才能被其他层级使用的可能性不大 - 例如,持久层最初只需将对象序列化到文件中,需要时再转换为使用数据库。我会考虑实现初始故事所需的每个层级的最小功能,并在系统增长时添加功能。

以这种方式增加系统意味着您只实现所需的功能,而不是您认为未来某个不确定时间可能需要的所有功能。


0

如果您无法将大型项目分解为有用的较小部分(即可以单独实现某些用例),那么敏捷方法可能对该项目帮助不大。您可以选择一些技术,如配对编程、重构等,但整体规划必须以传统方式完成。


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