来自 8aweek 的经验分享

  • Kurt Christensen
  • 李剑

2008 年 4 月 25 日

话题:敏捷精益文化 & 方法

消除浪费一直都是精益软件开发背后的核心原则之一,而且没有任何一种环境能够跟创业公司一样无法容忍浪费。因为创业公司资金有限,处处潜藏危机。一家注重提高生产力的创业型公司会更加适合那些致力于在组织中消除浪费的敏捷团队找到自己的角色。

8aweek是一家创业型公司,它所提供的服务是监控用户的上网习惯,限制对那些会分散他们注意力的网站的访问,并通过“生产力报告卡”来提供反馈。InfoQ 最近跟他们的合作创始人 Dave Fowler 和 Zachary Garbow 进行了交流,问到了一些有关他们如何跟用户交流、确定工作优先级并完成工作的问题。

InfoQ: 8aweek 是什么意思?它可以为普通的开发人员做些什么?8aweek: salary.com最 近的一份调查报告显示,雇员们平均每星期都有至少 8 小时的工作时间浪费在其他事情身上,而其中大多数都是用于上网。那些给自己工作的人和学生所浪费的时间 差不多就是这些,刚参加工作的人的情况则更糟。8aweek 是一个浏览器工具栏,当你用自己的计算机工作时,它可以通过帮助你控制住分散的注意力来回收这 些时间。你可以自己记录下在哪些站点上浪费的时间最多,让 8aweek 来限制你所能浏览这些站点的时间,一旦超时,它就会阻止你继续访问。

InfoQ: 8aweek 的创意是怎么出来的呢?最开始的想法是你们自己想到的吗?如果不是的话,是什么促使你们这样做的呢?8aweek:我们都是很活跃积极的人,我们注 意到互联网消磨了人们大量的时间,阻止我们完成工作、事业。在过去的几年里,我都是通过编辑自己的 host 文件来防止我分散注意力。这样做很太麻烦,不好 控制,操作也不方便。但是我却获得了两倍以上的工作效率,因为我再也不用每隔 5 分钟就去检查一次 Facebook 了。我跟 Zack 分享了我的经验以后,他 把这个想法大幅度提升开来,最后我们决定开发一款工具来让每个人都可以方便使用,给他们带来帮助。

InfoQ: 你们内部开发 8aweek 的时候,用了什么开发过程呢(如果有的话)?8aweek: 我们的开发过程跟特征驱动开发(Feature Driven Development)很相似。根据用户的反馈,我们确定哪些特性会让大多数用户高兴,然后制定进度计划,把这些特性集成进来。

InfoQ: 你们怎么确定要创建哪些新特性呢?又是怎么划分优先级的?8aweek: 最开始我们只创建了一个简单原型,根据用户定义的列表来阻止对某些网站的访问。试用了这个原型以后,我们很容易的就得到了一个庞大的所需特征列表。我们接下来关注的就是那些能给短时间内的 beta 版本带来最重大影响的特性,这样我们就可以根据用户反馈来进行迭代。

在它发布前一天,我们往里面加进去了一个几乎可以说是令人讨厌的反馈和响应系统。为了方便使用,我们把反馈输入框直接放到了工具栏中。每天都有人报告 bug,发送鼓励我们的消息,或是请求新特性。它发布了整整两个月,我们收到并回应了 1600 条反馈。

跟用户建立如此紧密的联系实在是太有价值了。它帮助我们认识到哪些地方做得对,哪些特性对用户最重要,哪些 bug 又最令人不爽。它极大的推进了项目的发展,让这个工具变得更加个性化。它令我们早上起床……呃,下午起床,然后一直工作到凌晨。

InfoQ: 你们怎么定义“完成'的状态呢?怎么判断某些东西可以公开发布了?8aweek: 我们根据用户反馈来进行快速迭代。所以只要某个特性没有了 bug,我们就会把它发布出去,让用户告诉我们做的是否正确,或是哪些地方还应该改进。我们也可以靠猜测来得到用户的想法,但最后你还是会发现,让他们来告诉我们会收到更好的成效!

不过逐字逐句的把握用户反馈还是有点恐怖的。有的时候用户也不知道自己想要什么,那时候我们就要找到用户请求背后的根源,从而推断出请求本身的内容。然后 再决定用什么方式来解决问题。这样当我们发布一个版本的时候,我们就可以很清楚的认识到,我们是否恰当的把握住了用户的响应。

敏捷精益文化 & 方法