首页 > 其他分享 >【产品经理修炼之道】-需求太复杂?试试FDD框架管理流程

【产品经理修炼之道】-需求太复杂?试试FDD框架管理流程

时间:2025-01-16 12:28:55浏览次数:3  
标签:FDD 项目 试试 建模 Feature 修炼 feature 团队

面对需求相对复杂以及合作方众多的情况下,产品经理该如何处理这些需求?作者结合行业资料及其自身经验,与大家探讨如何利用FDD框架,管理我们的需求管理和研发构建的流程。

2022年,我司承接了两个车厂的软件项目,中国与欧洲团队深度合作,旨在做好项目交付的同时,打造公司级的产品平台。

针对这样需求相对复杂(两个项目需求、一个产品平台化需求)、合作方众多(多国多地、以及多个供应商)的情况,欧洲团队提出了用FDD(Feature Driven Development,特性驱动开发)的框架,管理我们的需求管理和研发构建的流程。

什么是FDD、为什么用FDD,本文将结合行业资料和实际操作,加以阐述。

一、敏捷和精益的管理框架

近些年,敏捷和精益已经越来越深入人心,FDD是其核心方法之一。

敏捷精益核心方法:

  • Scrum:单一团队的管理实践
  • 看板:丰田生产系统的“招牌”
  • XP:极限编程,轻量级、迭代的软件开发过程,强调人与人的合作
  • FDD:特性驱动开发,着重迭代和增量

敏捷精益辅助方法:

  • Scrum Of Scrum
  • Scaled Agile Framework
  • Crystal
  • Behaviour Driven Development
  • Disciplined Agile
  • Agile Unified Process
  • Large Scale Scrum
  • Dynamic Systems Delivery Method

二、什么是FDD

针对中小型软件开发项目的开发模式,强调简化、易用、易于被开发团队接受,适用于需求经常变化的项目。FDD 是一个以架构(Architecture)为中心,采用短迭代期,特性(Feature)驱动的开发过程。

FDD在实践上,分以下五个步骤:

  1. 开发一个全局的模型:在有经验的组件/对象建模专家(首席架构师)的指导下,业务领域需求人员与开发人员一起协调工作。业务领域需求人员提供一个初始的、具有一定高度的、可以覆盖整个系统和业务场景的介绍。业务人员和开发人员依此产生初始的模型,然后组成单独小组,进入详细讨论阶段。将模型描绘出来,最后丰富之前产生的初始模型。
  2. 建立特性列表:将这些特性进行分类、合并和整理。如功能需求中有用户注册、用户修改注册资料和用户用于登录功能,难么输入特性列表中之后就可能是围绕对象模型用户(User)的新增、修改、删除及查询等功能。
  3. 依据特性制定计划:将这些特性排序和计划,然后分配相应的程序员组。
  4. 依据特性进行设计:程序员组针对自己的特性列表按迭代进行设计。
  5. 依据特性进行构建:程序员依据特性进行构建。

图片来源:https://www.geeksforgeeks.org/fdd-full-form/

三、FDD的历史

Jeff De Luca 是全球信息技术战略家和软件开发方法论领域的作者。他被认为是功能驱动开发 (FDD) 的主要架构师。 Jeff 于 1993 年从 IBM 辞职,担任高级系统战略师。在 IBM 之后,Jeff 成立了自己的咨询公司 Nebulon Pty Ltd,总部位于澳大利亚墨尔本,并使用 Java、UML 对象建模和 FDD 开发了广泛、复杂的软件系统。

1997年,FDD 是Jeff De Luca 为满足新加坡一家大型银行为期 15 个月、50 人的软件开发项目的特定需求而设计的。这个项目里诞生出FDD的5个流程——overall model,feature listing,plan by feature, design by feature,build by feature。

第二次使用是在一个250人、为期18个月的项目上。此后,FDD在多个项目上得以实施。 1999 年,Peter Coad、Eric Lefebvre 和 Jeff De Luca 在 Java modeling in Color with UML一书的第 6 章首次向世界介绍了 FDD 的描述。后来,在 Stephen Palmer 和 Mac Felsing 的书 A Practical Guide to Feature-Driven Development[2](2002 年出版),对 FDD 进行了更一般的描述,与 Java 建模分离。

四、FDD的最佳实践

FDD建立在一组核心的软件工程最佳实践之上,旨在从客户价值的feature角度出发。

1. 领域对象建模(Domain Object modelling)。 领域对象建模包括探索和解释要解决的问题的领域。 生成的域对象模型提供了一个用于添加功能的总体框架。

2. 按功能开发(Developing by Feature)。 任何过于复杂而无法在两周内实现的功能将进一步分解为更小的功能,直到每个子问题都小到足以称为一个功能。 这使得交付正确的功能以及扩展或修改系统变得更加容易。

3. 单一类别(代码)所有权(Individual Class (Code) Ownership)。 单人类所有权意味着将不同的代码片段或代码组分配给单个所有者。 所有者负责类的一致性、性能和概念完整性。

4. 特色团队(Feature Teams)。 功能团队是一个小型的、动态组建的团队,负责开发小型活动。 每个设计决策始终采用多种思想,并且在选择一个之前会评估多个设计选项。

5. 检查(Inspections)。 执行检查主要是通过检测缺陷来确保良好的设计和代码质量。

6. 配置管理(Configuration Management)。 配置管理有助于识别迄今为止已完成的所有功能的源代码,并在功能团队增强类时维护类更改的历史记录。

7. 定期构建(Regular Builds)。 定期构建确保始终有一个可以向客户演示的最新系统,并有助于及早突出显示功能源代码的集成错误。

8. 进展和结果的可见性(Visibility of progress and results)。 管理人员根据已完成的工作,使用来自项目内外各个级别的频繁、适当和准确的进度报告来指导项目。

五、FDD与Scrum对比

六、FDD的优劣势

优势:

FDD适合复杂、中长期项目。它的五步相对简单的流程,可以指导团队,将复杂问题拆解为更小的问题,用预定义的开发标准,实现快速融入项目、快速开发交付。 FDD为团队成员提供了更有效的沟通机会,另一方面鼓励团队创造和创新。它使得团队可以定期更新他们的项目,观察任何错误,并随时为用户/客户提供有价值的信息。

劣势:

FDD对于较小的项目效率不高,也不适用于开发人员较少的团队。它高度依赖于首席开发人员或程序员,它他需要充当新团队成员的协调员、领导、设计师和导师。 它可能不适用于遗留系统维护,因为已经有一个系统并且没有定义它的整体模型。因此,它需要一个团队重新开始并从头开始工作。

总结

FDD是行业里成熟的、有成功案例的管理理论。它适合中大型复杂项目,化繁为简,从而实现迭代、增量交付,减少团队的混乱和返工。

纵观我司欧洲团队的FDD,与行业里FDD的概念与实践也有较高的匹配度:比如领域对象建模(Domain Object Modelling),欧洲团队有架构图来解构产品全局,运用“Thin Slice” Customer Function,切分功能,形成Feature list, 然后强调Feature team的Leadership和Ownership,实现Plan by feature、Design by feature和Build by feature。同时利用Jira的Structure插件也是项目进度可视化的较好方案。

FDD成立之初,在领域建模部分,是与Java建模耦合的,设想这其中不乏丰富的工程实践值得探究。在2002年,FDD与Java建模分离,成为更普适、更容易接近业务的管理框架。关于领域对象建模(Domain Object modelling),业界里另一个被讨论得比较热烈并被一些大公司采用的是DDD(Domain Driven Design领域驱动设计)。

FDD和DDD珠联璧合,或许是解决复杂项目的一把利刃。

更多阅读材料

  1. 敏捷开发的常见框架
  2. Feature Driven Development Explained with Examples
  3. Jeff DeLuca on FDD and Transforming Large Organisations to Product Thinking
  4. Feature-Driven Development: Best Practices
  5. Archive of previous discussion about Feature Driven Development

标签:FDD,项目,试试,建模,Feature,修炼,feature,团队
From: https://blog.csdn.net/xiaoli8748/article/details/145172177

相关文章

  • 读〈程序员修炼之道:从小工到专家〉第七章有感
    这一章节深入挖掘了软件开发领域中至关重要的元素。或许它在代码的质量把控、可维护性以及高效性等方面有着精彩的论述。在现实的编程环境里,程序员们很容易被功能实现的紧迫性所驱使,从而仓促地编写代码。然而,第七章犹如一阵警钟,提醒着我们不能忽视代码质量这一基石。代码的可维护......
  • 【产品经理修炼之道】-每日复盘时,可以从这四个象限的结构开始
    在日常工作中,复盘能够及时查缺补漏,提高工作效率。不过,并不是每项工作都需要复盘,对于一名产品经理而言,需要了解哪些工作需要复盘、如何复盘,从而节省时间,提高效率。接下来,我们看看作者对此的分享。随着互联网行业的发展,对于产品经理要求在不同领域的要求越来越细分,随着产品的成......
  • 电脑老是弹出360广告怎么办?试试教程中的方法关闭广告
    在日常使用电脑的过程中,弹窗广告不仅会影响用户体验,还可能带来潜在的安全风险。对于使用360安全卫士的用户来说,幸运的是,有多种方式可以有效地减少或完全阻止这些烦人的广告弹窗。本文将介绍两种简单的方法来帮助您实现这一目标:一是下载并使用360安全卫士极速版;二是通过软件内部......
  • 还在为版权问题困扰?试试这7个商用素材网站
    在数字创意时代,版权问题一直是困扰许多创作者和企业的难题。为了避免侵权风险,寻找合法且高质量的商用素材变得尤为重要。本文将为您推荐7个商用素材网站,帮助您轻松解决版权困扰。1.制片帮素材制片帮素材是国内领先的商用素材交易平台,专注于为创作者和企业提供高质量、版权......
  • 【产品经理修炼之道】-陕西煤炭交易中心平台数字化建设案例分享
    在前面的文章中,我们分享了不少公司数字化的案例。但大多都是偏互联网企业,本文我们来看一个传统的煤炭交易平台,此类平台做数字化建设,都有那些经验可以借鉴。一、陕西煤炭交易中心平台概况陕西煤炭交易中心有限公司(以下简称“交易中心”)是根据陕西省关于促进煤炭产业健康发展和......
  • 《程序员修炼之道:从小工到专家》读书笔记(八)
    这篇读书笔记主要为第七章“在项目开始之前”的内容。这一章通过五个小节,详细阐述了在项目正式开始之前,程序员和团队需要面对和解决的一系列关键问题。“需求之坑”这一节让我意识到,需求的不明确或频繁变动是软件开发中常见的问题。它提醒我们,在项目启动之初,就必须投入足够的时间......
  • 2025年广告第一单,试试这款永久免费的开源BI工具
    元旦之后,我们和国内领先的开源软件公司飞致云达成了重要合作,合作分两部分,一是推广飞致云旗下的免费开源软件,一是双方合作推出联合会员。飞致云旗下有多款免费开源软件,1月6日上线了第一个文字链广告,推广的是是飞致云旗下永久免费的开源BI工具——DataEase。人人可用的BI......
  • 春节期间企业项目如何高效运作?试试这四个方法
    春节临近,作为一年中最重要的传统节日,几乎所有企业都面临着员工放假、年终任务冲刺和假期管理等多个压力点。对于项目经理和团队来说,春节期间的项目管理往往充满挑战:任务繁重、沟通困难、进度滞后等问题使得整个团队的效率大打折扣。那么,如何在这个特殊时期保持高效的项目管理,确保......
  • 视野修炼-技术周刊第116期 | NB Ping
    欢迎来到第116期的【视野修炼-技术周刊】,下面是本期的精选内容简介......
  • 【产品经理修炼之道】-电子商务演变进程如何推进仓储物流协同优化
    随着消费者对快速配送和高效服务的需求日益增长,传统的仓储物流模式已难以满足市场的需求。本文将深入探讨如何通过协同优化策略,整合数字技术,提升供应链效率,降低成本,并增强整个物流生态系统的适应性和竞争力。一、背景与仓储物流协同优化的重要性当代物流和仓储领域,传统时间和......