Trello的开发商Fog Creek Software的设计师Bobby Grace最近发表了一篇文章,为我们揭秘了这款流行的协作工具是如何开发的。
Trello是一款轻量级的团队流程协作和列表管理平台。其核心是“Board”、“List”和“Card”3个分层的概念。其中Board代表一个项目,List代表一组任务列表,而Card则代表一个独立的任务。Card可以在不同的List间移动(比方说,从待办移到已办),围绕着每一张card可以分配人员、添加附件、展开讨论等。Trello的水平性、轻便、灵活与快速迭代能力其令在协作工具市场拥有不少的用户。
更重要的是Trello自己也用Trello来获取反馈,并进行Trello的设计与开发。
用Trello做Trello
他们内部有一个叫“Trello Internal”的board,上面列举了与API及Trello.com网站设计有关的一切事宜。其中会有类似“在办”、“等待测试/审核”,“待合并”之类的列表,当然“收到的Bug”也必不可少。
Bobby介绍了他们处理bug的大致流程:
从“收到的Bug”列表中选出一张卡片,将任务分配给自己,然后把卡片移至“在办”列表。
处理bug。在自己的存储库创建新的分支(如bobby/oops-no-crash),然后放到该公司自己开发的分布式版本控制及代码审核系统Kiln上。
在卡片描述上写下分支的名字(如已在bobby/oops-no-crash中修补),然后将卡片移至“待测试/审核”列表。
与此同时,在Kiln上已经有其他的开发者审查变更的代码,然后通知测试员,由后者验证漏洞是否已经成功修补。
一旦获得4个赞以后,卡片就会被移动“待合并”清单。
随后发布经理将变更合并进官方的Build存储库,让新修订的版本成为新的稳定版并发布出去,大功告成。
接下来,其他的开发者就可以从官方的Build版本库取出含修订后的最新版本并合并到自己的分支中。然后在继续自己的上述流程。Bobby说他们每天都会推出很多的修订版。
重大功能的开发与测试
Bobby透露访问Trello网站实际上有3个渠道:“Stable”、“Beta”及“Alpha”。服务器会决定用户应该进入哪个版本的trello.com。所有人就会访问到“Stable(稳定版)”,然后有少数一部分人可以访问“Beta版”,Trello团队成员及Fog Creeker的员工则可以上“Apha”版。少数有权限的人还可以进行版本切换。
因为一些重大的新功能只是凭经验进行设计,有待市场的验证,所以首先会放到Alpha版进行测试,然后不断迭代。如果有跟新客户端相关的API变更发生的话,他们会首先发布一个版本出去再提交到alpha版进行测试。
Alpha版完成后会转入beta版,即所谓的公测阶段。Trello每天会选出“1%到15%”的用户供其试用并获得大量反馈,然后不断根据意见迭代,直到100%的稳定,接下来就是新版的发布过程。
设计研发
Bobby透露,他们团队内部会用“产品规划板(product planning board)”来进行产品设计研究。板上面会列出许多与问题相关的卡片。卡片一般都是这样的形式:“我找不到这个功能”,“我想做这个但是不能。”而问题一般有以下一些来源:
通过Bug跟踪器FogBugz转过来的支持邮件中的常见问题
团队成员的受挫
与用户的直接沟通(Trello有专人负责)
团队会研究所有的反馈。然后进行各种内部调查、可用性测试。同时还会利用Google Analytics来看看用户常用哪些功能。希望从中了解用户是如何使用Trello的,用户的需求及痛点是什么。
然后,在每一张问题卡片的背后会写上有若干建议的解决方案。再根据优先级选定需要处理的问题卡片。设计人员则根据解决方案绘制草图附加到卡片上以获得反馈。然后就是不断的迭代修改。定稿后就开始原型开发,每个项目都会有一个代码名。Bobby说他们的开发新版“boards page(项目板页面)”功能的项目代码名叫做“Borderlands”因为它考虑的是主板视图之外的一切事情。而开发新版的“The card back(卡片背面)”项目的代码名叫做“Jelly Donut(果冻甜甜圈)”,意思是说卡片翻过来更美味。
原型开发完毕之后就可以提交alpha版了,然后进行重大功能的开发测试流程。
总的说来,Trello的开发过程跟大多数的软件没有太大的差别,但是这篇揭秘给人留下最深刻的印象应该是开发者是自己产品最大的用户,只有自己成为自己产品的最忠实用户,你才有可能做出一款人人都喜欢的产品,Trello做到了。