我是敏捷的忠实支持者,但是我的一个朋友(他不知道敏捷 - 他是一个管理类型^^)问我如何计划和开发一个复杂的分布式项目,用数据库层,通信层,接口以及与嵌入式设备的集成。
敏捷方法强调早期发布和迭代的概念,但是在具有许多相互连接的组件的项目的场景中,所有这些组件都需要起作用才能使整个事物发挥作用,因此很难发布早期版本没有处理所有组件。敏捷如何帮助我的朋友?他最好如何利用它?
答案 0 :(得分:3)
我公司的团队面临同样的问题。我们正在构建具有大量活动部件和建筑层的项目,这使得很难在早期创建工作产品。此外,通常需要安排专业资源或与团队略微不同步。我们采取的一些方法如下所述它具有挑战性,但这些方法似乎有所帮助。
尽可能垂直构建
将基础架构与产品分开
我们的早期冲刺通常以基础设施/建筑为中心。例如,线程子系统,性能监视,通信和测试框架。
答案 1 :(得分:2)
使您的第一次迭代专注于架构设计,包括必要组件的识别以及它们之间的关系和通信的定义。
一旦你清楚地了解了组件如何相互作用,就构建每个组件的骨架。也就是说,实现只有通信部分就位的“存根”组件,其余的功能只是不做任何事情或返回测试数据。进行专门用于此任务的交互(包括测试组件通信机制)。
然后,您可以计划迭代,以适当的顺序完全开发每个组件,以便系统可以按顺序增长。
答案 2 :(得分:1)
答案 3 :(得分:1)
每个层都不可能完整,因为它可以被其他层使用 - 例如,持久层最初可以将对象序列化为文件,并在需要时转换为使用数据库。我会考虑实现初始故事所需的每一层的最小值,并在系统增长时充实添加功能。
以这种方式发展系统意味着您只需要实现所需的功能,而不是您认为在未来某个不确定时间可能需要的所有功能。
答案 4 :(得分:0)
如果您无法将大型项目分解为有用的较小部分(即启用某些用例),敏捷可能无法帮助您完成此项目。您可以选择一些技术,如结对编程,重构等,但总体规划是以传统方式完成的。