你会如何在这里使用AGILE?

时间:2009-11-23 08:33:06

标签: project-management agile

我是敏捷的忠实支持者,但是我的一个朋友(他不知道敏捷 - 他是一个管理类型^^)问我如何计划和开发一个复杂的分布式项目,用数据库层,通信层,接口以及与嵌入式设备的集成。

敏捷方法强调早期发布和迭代的概念,但是在具有许多相互连接的组件的项目的场景中,所有这些组件都需要起作用才能使整个事物发挥作用,因此很难发布早期版本没有处理所有组件。敏捷如何帮助我的朋友?他最好如何利用它?

5 个答案:

答案 0 :(得分:3)

我公司的团队面临同样的问题。我们正在构建具有大量活动部件和建筑层的项目,这使得很难在早期创建工作产品。此外,通常需要安排专业资源或与团队略微不同步。我们采取的一些方法如下所述它具有挑战性,但这些方法似乎有所帮助。

尽可能垂直构建

  • 换句话说,尽可能快地端到端地努力工作。我们通常会在9-16个月的项目中进行一些冲刺。
  • 您经常会发现可以模拟或阻止大量图层。
  • 通常,面向客户的初始组件是占位符。我们创建了一些有限的功能,就像客户想要的那样,但在最终项目中可能会有很大不同。这使我们能够在系统级别证明产品的其余部分,并从系统角度提供可见性。

将基础架构与产品分开

我们的早期冲刺通常以基础设施/建筑为中心。例如,线程子系统,性能监视,通信和测试框架。

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

答案 1 :(得分:2)

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

一旦你清楚地了解了组件如何相互作用,就构建每个组件的骨架。也就是说,实现只有通信部分就位的“存根”组件,其余的功能只是不做任何事情或返回测试数据。进行专门用于此任务的交互(包括测试组件通信机制)。

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

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

答案 4 :(得分:0)

如果您无法将大型项目分解为有用的较小部分(即启用某些用例),敏捷可能无法帮助您完成此项目。您可以选择一些技术,如结对编程,重构等,但总体规划是以传统方式完成的。