如何与异地的开发人员沟通
本文节选自《启示录:打造用户喜爱的产品》一书和作者的博客,并发表在《程序员》杂志11年05期,作者Marty Cagan是享有世界声誉的产品管理专家,曾经担任网景副总裁、eBay产品管理及设计高级副总裁。译文由七印部落出品,原文太长,这篇是第三部分,也是最后一坨了。除了讲述“如何与异地的开发人员沟通”,还讲了当“程序员想重写代码”时,我们应该怎么办。
如何与异地的开发人员沟通?
如今产品经理与开发团队各处一方的情况很常见。除了印度软件外包业务,大型公司的分支机构之间,以及公司与被收购的子公司之间,都可能出现这种情况。
如果开发团队不在你身边,沟通和执行的难度将进一步放大。异地开发出现的问题常常导致团队士气低落,有人甚至公开质疑异地开发能否真正节约成本。
提高与异地开发团队之间的沟通效率,我有三条建议。
按照我介绍的方法与优秀的开发团队合作是一种特别的享受。如果是与印度外包团队合作,那么由于时差的原因这种合作会让人觉得更加惬意。每天早晨上班时,对方的项目进展已经摆在面前。你可以用白天(对方的夜晚)检查、测试代码,反馈信息,显著缩短项目的循环周期。
请注意,如果是在异地开展与产品原型相关的工作,由于循环周期非常短(一天迭代好几次),你必须随时准备处理对方的问题,投入更多的精力。
解决异地开发问题的另一种方式是在异地聘请产品团队。这种趋势正在兴起,我相信这种模式会被更多的公司采用。你大可不必为此担心。我们曾经用了10年时间在异地培养专业的开发和测试人员,培养专业的产品经理和设计人员很可能还要再花10年时间。
程序员想重写代码?
产品经理最担心听到开发人员这样抱怨:“不能再增加功能了!我们得停下来重写代码。代码库一团糟,就像纸糊的老虎,根本应付不了持续增加的用户。我们维护不下去了!”
这一幕在很多公司上演过,现在依然在不断重演。1999年eBay遭遇这一幕时,公司濒临崩溃的情形超出所有人想象。Friendster几年前也 发生过这种情况,当时他们正在向MySpace开放社交网络用户。网景与微软展开浏览器大战时,也发生过类似的事情,最后的结果大家都知道。事实上,没几家公司能渡过难关。
一旦公司陷入这种困境,开发团队往往沦为替罪羊。经验告诉我,这类问题通常是由产品管理失误引发的。因为产品经理一直迫使开发团队满负荷工作,开发 尽可能多的功能。所有软件架构都存在功能极限,如果忽视产品的基础技术构架,一旦系统越过崩溃的临界点,就会造成无法挽回的结果。
在重写代码的过程中,用户无法看到产品的任何改进。你可能认为重写代码至多也就几个月,但是实际花费的时间无一例外要多得多。你只能坐在一旁,眼睁睁看着用户投奔竞争对手,而这个时候,竞争对手恰恰在不断地改进产品。
如果你还没有遇到这样的情形,未雨绸缪很有必要――你需要预留一定的研发技术能力,在eBay被称为余量(headroom)。很多因产品迅速膨胀产生的问题都与扩展规模有关,余量意味着避免触及技术能力的上限,为用户数量的增长预留空间,为事务增长预留空间,为新增功能预留空间,保证产品的基础技 术构架能够满足团队的要求。
与开发团队合作应该遵循以下原则:在产品管理上为开发团队预留20%的自主时间,让他们自由支配。开发团队可以利用这些时间重写代码、完善架构、重构代码库中有缺陷的部分,或者更换数据库管理系统,提高系统性能,避免“我们需要停下来重写代码”的情形发生。
如果你的糟糕处境已经初现端倪,应该拿出至少20%的资源进行调整,而我担心有些团队连20%都不愿意拿出来。如果你已经身陷重写的困境,说明公司危在旦夕,这里给出一点建议供你参考。
第一步,针对开发团队确定的产品修改目标并制订切实可行的计划和时间表。通常,有经验的开发团队估计的开发时间八九不离十,但是重写代码是个例外,因为多数团队都没有重写代码的实际经验,估计往往过于乐观。你必须审时度势,仔细检查每处细节,确保计划切实可行。
第二步,只要有可能,最好把重写目标分成几大块,实现递增修改,让用户感受到产品的改进,哪怕会因此把9个月的工作时间延长至2年,也一定要采用这种方式。重写代码时,保证让用户看到功能的改进――即使会占用少则25%,多则50%的开发资源――对保持产品(尤其是互联网产品)的市场占有率至关重要。
第三步,由于开发用户可见功能的资源有限,必须谨慎选择正确的产品特性,并确保产品定义的正确性。
eBay起死回生后,我们发誓绝不重蹈覆辙,马上开始新一轮的代码重写,把危机甩在身后。事实上,由于发展迅速,eBay已经重写了三次代码,最后一次采用了完全不同的编程语言和架构。开发团队花了几年时间,大规模地改写了几百万行代码,同时在不影响用户群的情况下,开发了大量新功能。这是我知道的最惊心动魄的中途重建网站的故事。
临渴掘井不如未雨绸缪,为防患于未然,别忘了预留20%的余量。如果你从未与开发团队谈过这件事,今天就去找他们吧。
建议继续学习:
- 产品经理怎么和程序员打交道 (阅读:3817)
- 谈谈学习与沟通 (阅读:2830)
- 产品经理怎么和美工打交道 (阅读:2639)
- 产品经理怎么和猎头打交道 (阅读:2199)
- 舒服:Aardvark邮件沟通的用语艺术 (阅读:2058)
- 如何有效的向用户传递信息 (阅读:1972)
- 如何快速解除用户防备?――浅谈可用性测试中沟通的技巧 (阅读:1928)
- 程序之外的事情 (Part 1 - Speech) (阅读:1859)
- 匮乏的中文互联网词汇 (阅读:1853)
- 用专业语言表达,用通用语言沟通 (阅读:1731)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:iamsujie 来源: iamsujie的产品设计:人人都是产品经理
- 标签: 异地 沟通
- 发布时间:2011-06-21 23:54:10
- [55] IOS安全–浅谈关于IOS加固的几种方法
- [53] android 开发入门
- [53] 如何拿下简短的域名
- [52] 图书馆的世界纪录
- [50] Go Reflect 性能
- [50] Oracle MTS模式下 进程地址与会话信
- [48] 【社会化设计】自我(self)部分――欢迎区
- [47] 读书笔记-壹百度:百度十年千倍的29条法则
- [36] 程序员技术练级攻略
- [29] 视觉调整-设计师 vs. 逻辑