InfoQ Geekathon 大模型技术应用创新大赛 了解详情
写点什么

进度与交付的那些事儿——持续沟通、持续反馈

  • 2012-09-27
  • 本文字数:1948 字

    阅读完需:约 6 分钟

说起进度和交付,我想起一个和客户开发人员共同完成的项目。ThoughtWorks 为客户提供敏捷教练的服务,而带领大家完成一个项目,才是检验大家各种敏捷实践的试金石。在项目中,这个团队需按客户要求,在三个迭代的时间内交付一个符合用户期望的数据转换插件。参加项目的是已有 6 个月以上敏捷实践经验的团队。这样的“敏捷”团队在项目中的表现又如何呢?作为敏捷团队,每个迭代是不是都能按时交付用户想要的特性呢?

迭代一,铩羽而归

团队在第一个迭代中,埋头苦干,计划完成尽可能多的需求。把各种脏活累活抗在自己肩上,甚至出现了加班。然而,最终客户却并不满意。痛定思痛,大家总结了如下问题:

  • 团队开始开发的时候,没有与客户确认需求,很多需求不清晰。这导致开发人员根据自己的假设做事。为了满足后期各种可能发生的需求变化,插件被做到可以配置,以致于最终的插件无比复杂 。
  • 团队在开发结束之后才给用户看成品,修改成本非常高。而从用户角度看,团队只有在项目开始的时候询问需求,在迭代结束时给用户看成品,其间没有任何交流。最后插件的功能和界面对用户来说,是莫大的“惊悚”,而并非“惊喜”。
  • 有两个需求是互相冲突的。团队没有和用户确认,就任选一个做了,用户并不认可。

由上面的问题,我们发现,这个典型项目中发生的问题,并不仅仅该项目的问题,各个项目都存在。然而要避免或者减轻这些问题带来的后果,团队要做的就是沟通,找用户要到真实的需求,要到反馈,对工作方式和产品做出改进。

迭代二,硕果累累

团队在第二个迭代中,从做估算到做计划、再到开发、客户验收,全程和用户保持沟通。任何一个决定都要客户给出反馈。由于任一阶段,任一决策和设计都经过客户把关,最终插件自然也就和用户想要的八九不离十。团队成员们非常开心,他们又做了如下改进:

  • 不熟悉插件的宿主软件的同事,要多学习,多去写一写。例如在开发之余,可以做些练习。等到正式开发时,就可以很快上手了。
  • 除了和用户沟通功能上的需求,还需要和客户沟通质量上的需求(项目中的非功能性需求,例如性能。该项目需转换 Gigabytes 级数据,性能有一定的要求) 在这些问题中,我们发现:
  • 同事不熟悉插件的宿主软件,但是在第一迭代中,并没有人提出这个问题。然而到了第二个迭代,当团队交付顺利的时候,他们勇敢地提出要求抽时间学习,以提高效率。我们可以想到,任何项目,都会有同事对现有技术和框架不熟悉。那么我们是不是也可以为他们提供一些时间去上手呢?
  • 团队对自己和客户之间的沟通有进一步的要求——非功能需求。这在项目的分析阶段是经常被忽略的。大多数情况是:对该满足非功能性需求的时候,没有满足。没有要求更高质量或者性能的地方,反而被做得非常强大。为了改进,团队觉得在平时的交流中加入此类问题的沟通。

迭代三,成员突变

迭代三中,由于部门经理希望团队间的知识可以分享,所以对不同组的成员进行了替换以达成知识传递。具体做法是:团队成员中只能留下一半“老成员”。在这个迭代中,我们预期插件的交付速度会下降。而结果确实如此,参与替换的三个团队中,两个团队的速度下降非常明显。而另一个团队的速度却不降反升,这是为什么呢?

团队针对突来的“替换”,总结了如下问题:

  • 有的团队成员之前没有参与太多交付工作,对技术和框架不熟悉。而有的团队成员非常强,一直在自己做开发,和用户交流,别的同事只有很少的机会参与开发,而长此以往,他们了解的项目知识越来越少,开发能力越来越差。

我们特别注意到这个差异化现象:有的团队成员对技术和框架不熟悉。这不应该出现在当前团队中,因为他们每人都至少有两年以上的开发经验。然而当我们了解到,有一个同事是项目组中的“超人”时,我们明白了其中的缘由。这个“超人”和其他“不熟悉技术”的同事以前是同一个团队的,而这个“超人”在项目中是项目经理兼技术经理的角色。这次替换暴露了这个问题。随后,他和他们团队的成员也意识到这个问题的严重性,回去制定了知识分享的计划。

到此为止,插件开发的项目就讲完了。我们再来看看其中的问题:

  • 和客户沟通少,客户反馈少。(功能和非功能需求)
  • 和客户沟通晚,反馈太晚导致修改成本高。
  • 团队成员有时也不会对对项目提出反馈。例如在压力状态下,没有去熟悉工具和框架。
  • 团队成员之间有时也不会对问题提出反馈。例如替换后项目经理的知识传递问题。

而这一切都是关于沟通和反馈。我们肯定技术在进度和交付中的重要性,同时我们也应认识到:进度和交付不是一个独立的问题,而是一个系统问题。系统中的非技术因素对交付的影响可能是致命的,而沟通和反馈是保证交付的重要方法。


感谢张凯峰对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

活动推荐:

2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。

2012-09-27 06:002040

评论

发布
暂无评论
发现更多内容

Easy-Monitor 3.0 开源 - 基于 Egg 的 Node.js 性能监控解决方案

hyj1991

node.js 开源 大前端

程序员人人都会遇到的“画饼”,一招教你破解

金刚小书童

程序员 职业规划 技术管理 画饼

Week 02 命题作业

卧石漾溪

极客大学架构师训练营

数据分析师这个岗位,可能近几年会消亡

峰池

数据分析 数据 互联网人

别教我女儿该怎么穿,教你儿子别去强奸

小天同学

教育 日常思考 个人感悟 自我保护

架构师训练营-课后作业-Week-2

Chasedreamer

Spring-AliasRegistry

CoderLi

Java spring 程序员 源码分析 后端

关于问问题和时间管理的感悟

cxuan

程序员 程序人生

架构师训练营第二周 - 作业

Eric

极客大学架构师训练营

后疫情时代给技术经济发展带来的挑战和机遇

CECBC

区块链技术 林左鸣 机遇与挑战

Java 诊断利器 Arthas 优雅排查生产环境

ytao

架构师训练营第二周作业

James-Pang

极客大学架构师训练营

程序一定要从main函数开始运行吗?

泰伦卢

c++

iOS Universal link 30分钟入门指南

行者

架构师训练营第二周 - 学习总结

Eric

架构是训练营

编译Spring5.2.0源码

CoderLi

Java spring 程序员 后端 Java 25 周年

Spring-资源加载

CoderLi

Java spring 程序员 后端 Java 25 周年

Spring 获取单例流程(二)

CoderLi

Java spring 程序员 源码分析 后端

618 将至,融云通信云技术如何助力电商销售

Geek_116789

ARTS-Week Four

shepherd

Java algorithm

Spring 获取单例流程(一)

CoderLi

Java spring 程序员 源码分析 后端

谈谈程序链接及分段那些事

泰伦卢

c++

ARTS 第 2 周

乌拉里

分布式锁:效率与正确性的衡权

伴鱼技术团队

后端 分布式协同 分布式锁 服务器 分布式架构

数字产品开发那些事

涛哥 数字产品和业务架构

产品开发 数字化

CDN百科第四讲 | 如何优雅地在云上“摆摊”——做直播带货,你不得不关注的技术

阿里云Edge Plus

CDN 边缘计算 直播 直播带货

以太坊颠覆了以太坊:引入密码学实现2.0性能突破

安比实验室SECBIT

以太坊 分布式系统 节点 密码学

Spring 获取单例流程(三)

CoderLi

Java spring 程序员 源码分析 后端

LinkedList竟然比ArrayList慢了1000多倍?(动图+性能评测)

王磊

Java 数据结构 性能优化 性能 链表

Spring 容器的初始化

CoderLi

Java spring 程序员 源码分析 后端

环信助力中国游戏社交类APP出“东南亚”记!

DT极客

  • 扫码添加小助手
    领取最新资料包
进度与交付的那些事儿——持续沟通、持续反馈_研发效能_王伟旸_InfoQ精选文章