46、以客户为导向的离岸团队项目管理与敏捷转型

以客户为导向的离岸团队项目管理与敏捷转型

在项目开发过程中,离岸团队与客户团队的有效协作至关重要。从项目启动到进行,再到后期收尾,每个阶段都有其独特的挑战和应对策略。同时,帮助客户团队向敏捷开发转型也是许多项目中的重要任务。

1. 项目启动阶段

在开发的早期阶段,离岸团队应与客户团队密切合作,制定一些指导规则,以促进各方未来的合作。此外,离岸团队还应与客户建立良好的关系,赢得他们的信任。这是一个奠定基础、确定方向和明确责任的过程。

  • 确定需求范围 :这是项目启动阶段的首要任务。业务分析师必须与客户的业务人员保持密切沟通。在早期,应分解产品功能,将每个功能点逐层分解,以确保未来不会遗漏任何内容。通过分解得到的最小工作单元具有独立的业务含义,即“用户故事”。只有达到这种粒度,我们才能估算工作量并安排交付计划。
  • 用户体验需求 :这是我们估算实现某个功能所需工作量的假设。这些假设必须以书面形式清晰列出,并作为需求的一部分交给客户。客户的关注程度会严重影响技术实现的工作量。
  • 确定功能优先级 :团队通常会将优先级可视化(如“优先级金字塔”),然后将看板挂在团队附近的墙上,提醒我们哪些事情更重要。虽然赢在起跑线很重要,但率先冲过终点线的才是真正的赢家,因为这是评判结果的标准。

在项目启动阶段,可能会出现团队协作问题。例如,曾有一个海外电信公司客户,其开发团队有一个独立的设计团队,专门为各个项目团队制作设计原型。但该设计团队与分布式团队的人员合作不紧密,与负责实施的开发人员也没有直接沟通。团队之间的隔离使业务分析师无法准确定义需求,设计团队还经常延迟提交设计图纸,甚至频繁更改。开发人员常发现需求与原型图不匹配,不得不增加与负责人的沟通,影响了每个团队的工作状态。面对这种情况,我们不得不向客户的高层管理报告,并要求他们指定一名设计师与我们沟通,确保此人能与我们的产品经理密切交流。

2. 项目进行阶段
  • 需求积压管理 :需求始终是离岸团队与客户之间纠缠的焦点。尽管产品不断更新迭代,但需求似乎从未减少,反而持续增加。此时,我们需要使用需求积压工具来管理这些无尽的需求,所有分布式团队必须共享相同的需求积压。

    • 客户团队必须有能做出最终决策的人,这是与客户成功沟通的关键。有时客户团队自己都不清楚谁来做最终决策,导致问题出现时大家讨论很久却无人拍板。这对离岸团队的直接影响是需求无法满足,或者完成后又要返工。
    • 进入实际交付迭代后,提供产品解决方案的研讨会也同时进行,产品不断调整。业务分析师分析需求、与产品经理确认并转给开发人员后,客户第二天又反悔,导致重新确认和修改需求,浪费大量人力和时间。
    • 为解决这些问题,我们尝试了各种方法帮助客户改进开发过程,如提高会议效率、明确需求和进度、纠正敏捷实践中的错误、简化测试流程等。及时发现项目问题并针对性地提出解决方案,是防止项目逐渐陷入困境的唯一途径。
    • 需求积压会持续影响迭代计划。当需求被纳入或移出计划时,我们应与客户讨论并达成一致。规划的前提是先明确项目范围,分清哪些工作是必要的,哪些不是。
    • 需求积压不仅是需求的记录,每个需求还应附上合理的标签,包含以下信息:
      • 需求来源 :项目实施过程中,离岸团队不会主动探索新需求,这是客户团队产品经理的职责。我们会被动接收客户的需求,然后主动深入了解其业务价值。DevOps 部门会总结用户频繁咨询或抱怨的问题,我们可与客户一起研究,整理出能减轻 DevOps 负担的任务并添加到需求积压中。离岸团队测试人员发现的设计问题(如交互问题)也可提交以更改需求,通常这类问题需要客户确认,优先级较低。
      • 需求背后的业务价值 :我们应正确记录每个需求的业务价值。从用户导向的思维方式出发,对于选择满足业务需求的实施方法至关重要。客户常直接给出实施计划而非包含业务价值的需求,但该计划通常不是最有效或成本最低的,我们需探索需求背后的真正业务价值来确定最佳实施计划。
      • 优先级 :许多 IT 部门常同时为公司内其他部门和外部客户提供多个项目服务。因此需要有项目经理让团队成员知道哪些任务应优先处理,以及优先级何时应改变。明确沟通项目优先级可帮助交付团队避免走弯路,不再担心该做什么。
  • 让客户实时了解项目状态 :要确保透明度,保证客户随时能直观看到项目进度和困难。看板等可视化工具是主要手段,但在验收测试中保持软件可用性是维持客户对产品信心的最佳方式。即使进度看似顺利,客户若没有亲身体验产品,也不会完全满意。

    • 我们通过各种定期会议和每周或每月的电子邮件向客户定期报告。但不能不加处理地将所有信息扔给客户,如何处理信息也是我们要思考的问题。在向客户的报告中,可能会包含大量数字和图表以展示专业性,但不同人解读这些数据和图表可能得到不同信息,所以我们要为客户充分解读,确保他们无需过多思考就能轻松理解数字背后的含义。
    • 我们应充分利用各种非正式和不定期的沟通机会,随时与客户团队负责人聊天,有时这种方式的效果比安排正式会议更好。信息沟通的有效手段从高到低依次为面对面交流、视频软件、电话、即时通讯工具和电子邮件。

下面是项目进行阶段的主要工作流程 mermaid 图:

graph LR
    A[需求积压管理] --> B[确定需求来源]
    A --> C[明确业务价值]
    A --> D[设定优先级]
    E[让客户实时了解项目状态] --> F[可视化工具展示]
    E --> G[定期报告]
    E --> H[非正式沟通]
    B --> I[与客户讨论]
    C --> I
    D --> I
    F --> J[保持软件可用性]
    G --> K[信息处理与解读]
3. 项目后期阶段

在项目开发的最后阶段,开发和 DevOps 团队需要密切合作,使项目从开发顺利过渡到部署。开发主要关注功能,而 DevOps 主要致力于解决最终用户遇到的任何问题。由于敏捷开发采用同时开发和发布的方式,很多时候开发和 DevOps 的工作是结合在一起的。

项目结束是完成交付项目的最后一步。一个完美的结局可以避免很多纠缠不清的问题,特别是收款问题。我们通常有一份正式的项目交付验收文件。

离岸团队应坚持到最后做好工作。将产品交给客户后,应教导他们继续进行操作和维护。由于系统中的日志记录功能对于减轻运维负担很重要,因此在项目开始和实施过程中必须考虑这些功能,以说服客户为这些功能付费。

处理项目延迟也是后期项目进度管理的一部分。增加人力和审查需求是我们的选择。对于需求变更膨胀的部分,我们必须与客户明确,解释延迟的原因,并努力重新安排进度。

4. 其他挑战与应对

与客户的合作不可避免地会带来一些挑战,根据以往经验,这些挑战主要表现为质量低、进度落后、需求不完整和技术难度大。所有这些方面都应引起我们的注意。当然,被客户批评不能简单地理解为我们团队做得不好。我们必须始终相信我们的团队,但同时也要思考是否可以做得更好。

5. 帮助客户向敏捷团队转型

一些项目除了交付活动外,还包括帮助客户进行敏捷转型的内容。我们必须帮助客户在能力建设、思维转变、流程改进、组织结构变革等方面做出努力。

通常有两类这样的客户:一类是习惯传统开发的企业即将采用敏捷开发,另一类是已经完成或刚刚开始敏捷转型的企业。他们都需要我们的指导和纠正。

  • 能力建设 :我们可以培养客户的快速学习能力,因为做项目的过程就是一个学习过程。简而言之,离岸交付的过程也是一个不断改进的过程。

    • 从持续反馈中学习并发现问题,思考是什么阻碍了团队的持续改进。是客户讨厌改变,还是我们团队犯了错误?对于需要改进的地方,要学会系统地思考。有好的想法只是第一步,我们还需要一个计划并付诸行动。执行起着决定性作用。
    • 过渡时期是挑战和淘汰客户组织中一些遗留工具的好机会。此外,大量机会也帮助我们在客户中找到一些种子选手。种子选手的培养对客户最终成功转型起着重要作用,它使离岸团队与客户之间的沟通简化,增加客户团队内部的转型意愿,从而产生更好的化学反应,使项目的最终交接更加顺利。
    • 为了量化团队的敏捷转型,我们可以了解离成功转型还有多远。客户绩效管理也应相应调整,以适应这些理念,并展示客户团队和分布式团队的转型。
  • 突出敏捷开发的优势并巩固所有参与者的信念 :无论是客户团队负责人还是直接参与的团队,我们都应从以下方面说服客户我们所引领的道路是正确的。

    • 拥抱变化 :谈到敏捷开发,我们都知道它能适应需求的变化,但这并不意味着我们的需求可以随意更改。一旦项目开始,没有人欢迎需求的任何变化。在大多数情况下,这种变化指的是需求在故事积压中且未被开发人员接手的时候。
      • 当然,必要时我们可以停止开发需要更改的用户故事,重新审视最新需求。即使已经开始开发,也可以根据最新估算的点数调整本次迭代的故事卡。如果已完成部分需要更改,我们可以回滚之前的更改,添加新的故事卡,并将最新的需求变更安排到积压中。
      • 简而言之,敏捷开发是在每次迭代中始终交付最有价值的功能。一旦发现原计划的功能失去价值,就必须替换它。这项工作做得越晚,产生的浪费就越多。
      • 与传统的瀑布式开发模型相比,瀑布式开发需要分阶段进行,进入开发阶段后需求不会改变。因为在业务分析阶段会详细列出所有要交付的功能,当我们即将开始开发工作时,所有需求的分析已经完成,未来也不会再考虑需求问题。只有当客户发现需求中有重大遗漏(产品发布后用户反馈的问题)时,需求才会更改。但这样一来,整个开发过程都需要重新进行,这将在时间和资源上造成巨大的额外成本。更糟糕的是,很多情况下需求变更要纳入下一个开发计划,而下一个计划可能要一年后才实施,甚至不了了之。因此,在面对不断变化的需求时,敏捷开发比瀑布式开发更具优势。敏捷开发的本质是开发最小可用产品,最终用户会立即使用它,然后向开发团队反馈。我们会根据客户反馈调整下一次迭代的任务,因为我们的迭代本身就是基于不断变化的,随时准备调整。
    • 降低交付风险 :敏捷开发越来越受欢迎的一个原因是,从开始到最终交付,所有人都在努力工作,工作量相对平衡。测试人员的全面参与和测试驱动开发可以确保产品质量。而瀑布式开发是分阶段交接的工作模式,每个阶段都存在“有人忙得不可开交,有人无所事事”的状态,整个过程中劳动力成本的隐性浪费也很严重。

敏捷开发与瀑布式开发的对比表格如下:
| 对比项 | 敏捷开发 | 瀑布式开发 |
| ---- | ---- | ---- |
| 需求变更适应性 | 能适应需求变化,可随时调整迭代计划 | 进入开发阶段后需求一般不变,变更成本高 |
| 工作量分布 | 所有人工作量相对平衡 | 各阶段工作量不均衡,存在隐性浪费 |
| 产品状态 | 软件始终处于可用状态,分阶段交付可用成果 | 按阶段完成,最终阶段才交付完整产品 |
| 开发模式 | 迭代式开发,根据用户反馈不断调整 | 分阶段顺序开发,前一阶段完成后进入下一阶段 |

下面是敏捷开发与瀑布式开发在整个交付周期中工作量分布的 mermaid 图:

graph LR
    A[敏捷开发] --> B[迭代1]
    A --> C[迭代2]
    A --> D[迭代3]
    B --> E[功能开发1]
    B --> F[测试1]
    C --> G[功能开发2]
    C --> H[测试2]
    D --> I[功能开发3]
    D --> J[测试3]
    K[瀑布式开发] --> L[需求分析]
    K --> M[设计]
    K --> N[开发]
    K --> O[测试]
    K --> P[部署]

综上所述,离岸团队在项目管理过程中,要在各个阶段与客户团队紧密合作,有效管理需求,确保客户实时了解项目状态。同时,帮助客户向敏捷团队转型,发挥敏捷开发的优势,降低项目风险,提高项目成功率。

以客户为导向的离岸团队项目管理与敏捷转型(下半部分)

6. 敏捷转型的关键要点总结

为了更好地帮助客户实现敏捷转型,我们需要对前面提到的关键要点进行总结和强调。以下是敏捷转型过程中需要重点关注的几个方面:

  • 明确转型目标 :在开始敏捷转型之前,需要与客户共同明确转型的目标和期望。这包括提高项目交付效率、增强产品质量、提升客户满意度等。明确的目标有助于为转型提供方向和动力。
  • 培养敏捷文化 :敏捷转型不仅仅是引入新的开发方法和工具,更重要的是培养一种敏捷文化。这包括鼓励团队成员积极参与、勇于承担责任、乐于分享知识和经验等。通过建立开放、透明、协作的工作环境,激发团队的创造力和积极性。
  • 持续学习与改进 :敏捷开发强调持续学习和改进。在转型过程中,要鼓励客户团队不断反思和总结经验教训,及时调整和优化工作流程和方法。通过持续改进,提高团队的敏捷能力和项目的成功率。
  • 建立有效的沟通机制 :良好的沟通是敏捷开发的基础。在项目管理过程中,要建立有效的沟通机制,确保离岸团队与客户团队之间能够及时、准确地交流信息。这包括定期的会议、报告、面对面沟通等方式。同时,要注意沟通的方式和方法,确保信息能够被正确理解和接受。
  • 合理利用工具和技术 :工具和技术可以帮助提高敏捷开发的效率和质量。在转型过程中,要根据客户的需求和项目的特点,选择合适的工具和技术,并合理利用它们。例如,使用项目管理工具来跟踪项目进度、管理需求,使用版本控制工具来管理代码等。
7. 实际案例分析

为了更直观地了解以客户为导向的离岸团队项目管理和敏捷转型的实践效果,下面我们将通过一个实际案例进行分析。

案例背景 :某软件公司承接了一个海外客户的项目,客户是一家传统的金融企业,希望通过引入敏捷开发方法来提高项目交付效率和产品质量。该项目涉及开发一个复杂的金融交易系统,具有较高的技术难度和业务复杂度。

项目启动阶段
- 离岸团队与客户团队密切合作,共同制定了项目的目标和计划。通过与客户的业务人员深入沟通,明确了项目的需求范围,并将其分解为具体的用户故事。
- 为了赢得客户的信任,离岸团队展示了自己的技术实力和项目管理经验,并承诺提供高质量的服务。同时,建立了良好的沟通机制,确保双方能够及时交流信息。

项目进行阶段
- 在需求积压管理方面,离岸团队使用了专业的需求管理工具,对客户的需求进行了有效的管理。同时,与客户团队保持密切沟通,及时了解需求的变化,并根据变化调整项目计划。
- 为了让客户实时了解项目状态,离岸团队使用了看板和可视化工具,将项目进度和问题直观地展示给客户。同时,定期向客户提交项目报告,详细介绍项目的进展情况和遇到的问题。
- 在敏捷开发过程中,离岸团队积极鼓励客户参与项目,及时获取客户的反馈,并根据反馈调整项目方向。例如,在一次迭代中,客户提出了一个新的需求,离岸团队及时对需求进行了评估,并将其纳入了下一次迭代的计划中。

项目后期阶段
- 开发和 DevOps 团队密切合作,确保项目能够顺利从开发过渡到部署。在部署过程中,遇到了一些技术问题,离岸团队及时组织技术人员进行了排查和解决,确保了项目的按时交付。
- 项目交付后,离岸团队对客户进行了培训,帮助他们掌握系统的操作和维护方法。同时,建立了售后服务机制,及时响应客户的问题和需求。

敏捷转型效果
- 通过引入敏捷开发方法,项目的交付周期缩短了 30%,产品质量得到了显著提高,客户满意度也达到了 90%以上。
- 客户团队逐渐适应了敏捷开发的工作方式,团队成员的积极性和创造力得到了充分发挥。同时,客户对敏捷开发的信心也得到了增强,为未来的合作奠定了良好的基础。

8. 总结与展望

通过以上的分析可以看出,以客户为导向的离岸团队项目管理和敏捷转型是一种有效的项目管理模式。在项目管理过程中,离岸团队需要与客户团队密切合作,充分了解客户的需求和期望,为客户提供高质量的服务。同时,要积极推动客户团队的敏捷转型,帮助他们提高项目交付效率和产品质量。

在未来的发展中,随着信息技术的不断发展和市场竞争的加剧,敏捷开发将越来越受到企业的重视。作为离岸团队,我们需要不断提升自己的技术实力和项目管理能力,为客户提供更加优质的服务。同时,要加强与客户的合作,共同探索适合客户的敏捷转型之路,实现双方的共同发展。

以下是一个总结项目管理关键步骤的列表:
1. 项目启动:与客户密切合作,明确项目目标和需求范围,建立良好的沟通机制。
2. 需求管理:使用需求积压工具,有效管理客户需求,及时响应需求变化。
3. 进度监控:通过可视化工具和定期报告,让客户实时了解项目进度和问题。
4. 敏捷开发:采用迭代式开发方法,根据客户反馈及时调整项目方向。
5. 项目交付:确保项目顺利从开发过渡到部署,提供培训和售后服务。
6. 敏捷转型:帮助客户团队建立敏捷文化,提高团队的敏捷能力。

下面是一个展示整个项目管理流程的 mermaid 图:

graph LR
    A[项目启动] --> B[需求管理]
    B --> C[进度监控]
    C --> D[敏捷开发]
    D --> E[项目交付]
    E --> F[敏捷转型]
    A --> G[建立沟通机制]
    B --> H[响应需求变化]
    C --> I[解决项目问题]
    D --> J[根据反馈调整]
    E --> K[提供售后服务]
    F --> L[培养敏捷文化]

总之,以客户为导向的离岸团队项目管理和敏捷转型是一个复杂而又充满挑战的过程。但只要我们能够充分理解客户的需求,采用科学的方法和有效的工具,积极推动团队的协作和创新,就一定能够实现项目的成功交付和客户的敏捷转型,为企业的发展创造更大的价值。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值