描述一下开发产品的方法和工具.ems效率怎么样样

这是关于饭团的第0篇文章。相当于饭团系列博客的预览版。欢迎关注饭团项目~ PS:作者水平有限,博客偏科普性质,P7+的大神还请赐教。
所谓“工欲善其事,必先利其器”。经过多次项目实践,对项目开发工具使用的一些工具有些心得,想和大家分享交流下。这里不讨论使用技巧,如何使用还请大家自行摸索。
项目开发流程
因为园子里还有不少刚毕业的,没有机会进入一线的互联网公司。所以我先介绍下一个项目开发过程。从我到美团,我们组新成立了两个项目。一个是美团KTV,一个就是我们的小小项目:P。期间其它组成立了美团早餐和一个现在没有对外公开的项目。所以对项目开发有一定了解。
我就直接说我做的项目吧,比较熟悉。三个月前,领导找到我和其他五个人,“因为美团新上任的领导比较看重运营,所以需要搞一个活动运营平台。”我带一个实习生做后端,另一个后端同学做指导。前端有一个主力和一个替补。前端的领导对整个项目负责。我们花了大概一周就做出个简单的活动发布系统。这个相当于园子里新同学写的小程序。唯一的目标是跑起来。这当然是激动人心的阶段。工作内容包括产品设计、页面设计、前后端接口设计、数据库设计、后端逻辑设计、前后端编程实现和代码测试。
跑起来后大家一致感叹,以后不能在一个分支上开发。。。因为代码合并的时候经常冲突。因为以前没有相关经验。所以学习和制定了Git分支管理,代码开发、测试和部署的流程。为后续的功能添加,修复Bug省了不少事。学习API设计规范后,我重新设计和实现了API。
上面项目,实际上只是在线下环境跑起来了。成熟的项目至少需要三个运行环境。一个线下开发,一个线上测试,一个线上运行。所以需要修改程序,根据不同环境自动调整配置。这其实是一个比较复杂的工作。比如线上环境需要把前端静态文件加md5后辍,发到CDN服务器。
后面,美团的美周刊活动开始入驻。我们开始考虑监控的问题。因为需要直接处理用户请求,还需要添加缓存。因为是分布式系统,缓存出现了个bug,挺尴尬。另外需要给美周刊PC端(另一个部门)的服务器提供服务调用,所以还需要实现RPC服务。(因为这些很多依赖美团基础服务,但是我努力在饭团项目中实现它们。期待:P )
再后来,开始搬移美团的上传系统和名店抢购等专题活动。为了适应这个需求,我对项目进行了一个大手术:把原来的单一项目拆分成多模块项目。(饭团项目开始就做成多模块吧 :P )
今天和小弟一起解决了日志文件的存放和自动删除的问题。
从上面项目进展可以看到,功能开发只是一小部分。在公司做项目,很多时候都是在定位Bug,修复Bug,改进,重构,调优以及和其它人沟通。
正因为如此,在开始代码前,选择合适的工具,对项目开发就显得很重要了。因为我们的项目不是开发一个简版QQ,有很长的路要走~
项目管理工具
团队项目通常需要一个公开的网站来管理需求,分配任务,协调开发,总结经验,保存文档。
以前在微软实习,使用的是Visual Studio Team Suite Server。简直高大上。但是好像价格不菲。而且个人感觉更用来在大公司做软件开发。
在大美团,公司使用的是Atlassian系列开发套件:
Confluence:文档管理系统。类似维基百科。但是支持各种文档的在线显示,添加附件,画图,丰富的页面布局等功能。
Stash:代码管理系统。类似github的代码管理系统。可以很方便的管理分支权限,代码review。
Bamboo:代码测试和部署系统。类似Jenkins。但是可以直接在测试完后部署到服务器。可以绑定到其它系统,实现诸如“代码合并前必须通过测试”的功能。
Jira:任务、问题管理系统。类似github的issue系统。但远比它强大。实际上,它是Atlassian套件的核心。Confluence、Stash、Stash都可以在这里自动创建链接。所以,假如有一个需求。在Jira创建一个任务。然后关于这个需求的所有文档、代码变更、产品测试和部署都将自动链接到这个任务。非常方便和直观。
可能因为历史原因,公司使用内部的发布系统,没有使用Bamboo和Jenkins。
我曾经私下搭建了Atlassian全套系统,用于工作外的项目开发。但是这套系统贵死了。所以做了越过授权需要完成的一些额外工作(你懂的)。使用起来感觉非常棒。有时间,写一番外篇详细介绍。
虽然一些新的开源系统也有采用Atlassian公司的项目管理工具(比如kafka
),但是对于一个小型的开源的项目如“饭团”,有点杀鸡用牛刀了。
基于天朝国情,代码管理可以选择OSChina或者CSDN的gitlab。但是为了避免不必要的麻烦,我们还是选择github吧。github自带的任务、缺陷管理系统很酸爽。测试和部署,暂定Bamboo。github自带的wiki也先用着,用来写一些项目技术文档。每周的总结和计划写在博客园上。所以我们的项目管理工具是:
Github Issues:任务、问题管理系统。
Github wiki:项目文档管理系统。
Github Code:项目代码管理系统。
Bamboo:测试和部署。
博客园:项目计划、总结和分享。
Github的相关工具只要建一个项目就好了。参见 博客园就用这个账号了。我会把饭团相关的文章做成一个分类。并以饭团(xx):XXX命名。剩下测试环境和部署环境,等我们的项目有个小Demo时再搭建不迟。
程序开发工具
如果并非大神,IDE一般能节省不少时间。开发团队项目,需要IDE能很好地支持上面的Git、Task和Wiki系统。代码着色,语法提示自然不必多说。IDE还需要足够聪明来帮助我们解决一些繁琐的问题。
Web Server程序,主流还是用Java开发。所以我们的项目后端使用Java。Java的IDE很多。我用过Eclipse和Netbeans。但是更青睐来到美团后开始使用的IntelliJ IDEA。Eclipse像Linux一样,什么都行,但感觉很机械,不够完美。IntelliJ IDEA就够聪明。这个很难比较,用多了就知道了。我已经说服了一个同学从Eclipse转投IDEA。所以还在用Eclipse开发Java程序的同学赶紧换吧。开发Web程序,需要使用IDEA的旗舰版。如何绕过授权环节,可能需要一些努力。
文档编辑工具
写文档虽然不如写代码直爽。但是文档就像是催化剂,用得好,能显著提升生产效率。所以在我看来,文档和代码其实是一回事。只是文档不需要编译,而代码不那么容易阅读罢了。
既然写代码有专门的IDE,写文档当然也需要相应的语言和工具。因为文档写在github的wiki上,所以我们也就用现在流行的Markdown。
接下来的IDE,我推荐广受好评的马克飞象。也就是我现在正在用的(感谢dudu,博客园现在支持markdown了)。左边是有颜色的Markdown,右边是渲染好的页面。更赞的是能自动保存,同步到印象笔记。我现在有强迫症,有强烈的愿望把所有写过的文档都永久保存。马克飞象有各种客户端,用起来很方便。不过马克飞象是收费的,80RMB/年。为了避免推销的嫌疑,我就不给链接了。相对于省下的时间,我觉得这钱花得值。
原型设计工具
原型设计在大公司一般由专业的UE来完成。但是现在不是越来越流行全栈工程师么:P敏捷开发要求码农们拥抱变化。所以现实情况很可能,功能设计,页面设计都需要工程师参与。所以在开始编码之前,设计一个原型,即“画版图”,来评估一下,通常能减少很多不必要的工作。画版图的工具人气最高的是Axure RP Pro。和前面一样,付费软件才把用户当上帝。
流程图和关系图制作工具
有时候为了理清想法,或者设计一个流程,画图是最好的选择。Axure有这个功能。但是各人感觉不是很不好用。连线什么的太麻烦了。面向程序员的逻辑设计还是用专业的软件比较好。很多人推荐使用 ,也有人推荐 ,但是我没法忍受网络延时。所以我找了个全平台能用的 。虽然界面丑,但是基本能用。欢迎推荐:P
时间就是金钱。能用钱解决的问题,咱就不折腾了。而且折腾好的东西也没正版的好用。前端时间看了一篇文章,深有感触。硬件上,我强烈建议,尽早换Mac本和大屏幕,添加第二、三块屏幕。
Macbook Pro
MBP的优势:
操作系统是Mac OS X,源于Free BSD,是纯正的Unix操作系统。本机上能跑的程序,在服务器(基本是Linux)基本没有问题。
OS X人性化设计,用户界面稳定好用。不会出现莫名其妙的问题。
常用软件基本都有OS X版本,或者更好的替代品,比如QQ,微信。
OS X是唯一可以开发iOS应用的操作系统。
MBP可以支持三个外置显示器。
MBP的触屏版足够大,基本可以不用鼠标。
MBP电源能支持6个小时,可以摆脱电源的束缚,够自由。
SSD,文件读写不再是瓶颈,显著加快程序编译和启动时间。
大屏显示器
大屏显示器的优势:
几乎不需要横向滚动条了。
竖向滚动条使用频率显著减少。
不用频繁开关窗口。
代码字体可以放大点。
错误日志阅读方便。
文件切换方便。
第二、三块显示器
第二块显示器的优势:
一屏写代码,一屏查资料[,一屏和外界沟通]。
基本不用切换窗口了。
思路连贯,不会因为窗口切换带来影响。
工作前,我总是找各种破解,也迷恋Linux,爱折腾。现在感觉很不值得。把这些折腾劲花在其它地方,比如研究JVM,学习设计模式,带来的收获远大于破解软件省下的金钱。在接触苹果的产品前,我也认为那是抢钱。但是龙芯公司年会中了一个iPhone 5,大美团又标配Macbook Pro,我感觉,水果公司的产品体验真好。如果下一家公司没有MBP,我自己一定买个。投资工具总没错。
但是人还是比较看重眼前。我现在也没说服老妈,去外面吃饭比自己做饭“省钱”。。。
下面总结下饭团的标准开发环境。
电脑/操作系统:Macbook Pro, OS X 10.9.5, 4C8G,250G SSD。
显示器: 内置15” + 2X外置27&
Git + Task + Wiki:
团队博客:
测试和部署: Atlassian Bamboo(待建)
程序开发:IntelliJ IDEA
文档编辑:Markdown + 马克飞象
原型设计:Axure RP Pro
流程图:yEd
关于开发工具
上面纯属个人观点。欢迎大家推荐自己使用的工具~
一个“教学”项目。我想把自己学到的知识应用在一个独立项目上,看看自己真正学到了什么。另一方面,希望饭团能成为巴别塔一样的经典反面教材。
阅读(...) 评论()大家讨论一下,如何提高团队的开发效率并保证软件质量
[问题点数:100分,结帖人flareboy]
大家讨论一下,如何提高团队的开发效率并保证软件质量
[问题点数:100分,结帖人flareboy]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2006年2月 总版技术专家分月排行榜第三
2005年9月 软件工程/管理大版内专家分月排行榜第一2006年2月 .NET技术大版内专家分月排行榜第一2006年1月 .NET技术大版内专家分月排行榜第一
本帖子已过去太久远了,不再提供回复功能。提升互联网产品开发效率的5个工具组合
日 13:10&&&投稿:&& 作者:厂商投稿&& 编辑:肖授
  # VPN  在开发过程中,我们经常要搜索技术资料,不可避免地需要使用Google,以及打开搜索结果中涉及的技术网站。正常情况下,很多技术网站却不正常地访问不了。每一次网络连接被重置,你的思路被打断,紧接着或许还有一通的抱怨……,对于开发者而言,这无疑会极大地降低效率。当你无法改变当前的网络环境时,不防试试改变自己。所以,工具组合的第一点建议是为自己的团队搭建一个VPN,给大家一个可以畅通无阻地查阅技术资料的网络环境。如果还在犹豫,请用Google搜索一下为什么要这么做 :)  IDE C jetBrains系列  IDE是程序员直接面对的工具。想象一下,如果你使用的IDE加载和运行缓慢、没有代码和错误智能提示、界面毫无美感、各种繁杂的插件、难于调试和代码版本管理等,好比用着一把钝刀在砍柴,编码效率不言而喻。摆脱或者避免这些也很简单 C 选择一个优秀的IDE作为开始吧!  jetBrains系列的IDE是最佳选择之一,被广大程序员称为编码神器。所谓百闻不如一试,直接在官网下载,免费试用1个月,一切了然。jetBrains目前已经支持包括:.NET、Java、PHP、Web前端、Python、和Ruby,啊,是的,还有最近支持了C/C++!  jetBrains虽然是付费的IDE,但如果可以(极大)提升你/团队的效率,这个投资是很划算的。不管是公司,还是个人,在工具上面,不要去省钱,而是用有限的资金去提高效率才是正道。你或者不相信这个观点,但时间会证明这是明智的。  福利:如果你还是学生,jetBrains的系列IDE针对学生已经免费。用你的
邮箱即可申请。呜呼,真是业界良心啊!  # Coding  Coding.net 为软件开发者提供基于云计算技术的软件开发平台。突出特点包括:  代码托管平台  通过代码版本控制系统 git 进行公开项目或者私有项目的免费源码托管,数量不限制独有保护分支功能,保证各个分支修改的权限。代码库提供极佳的速度和稳定性。  在线运?行环境  项目演示平台是为程序测试和演示提供的在线项目展示平台,无需重复搭建配置环境,一键部署,在云端进行项目展示,并可通过复制演示链接将项目与外部用户进行分享或展示。演示平台支持大部分主流 Web 开发语言,包括 Java,Ruby,Node.js,Go,HTML, PHP,Python。其它官方未做支持的语言或框架,用户依然可以通过自定义 buildpack 的方式来实现支持。Coding 也将提供Android App 的运行空间,帮助安卓开发者实现项目演示。  代码质量监控  质量管理功能能够对 git 仓库中的代码进行静态的检测和分析,发现代码问题,获取代码度量信息,及时了解代码质量状况,以判断其是否符合最佳实践,并提供质量分析报告,为相关管理成员提供项目决策及管理参考。目前质量管理平台支持的语言包括 C/C++, Golang, Java, Javascript, PHP, C#, Groovy, XML, Web, Flex, Erlang, Css。  项目管理平台  Coding社会化项目协作管理平台,支持所有格式文档的上传下载,图片以及markdown等文档格式的在线预览。开发团队成员之间可自由进行信息共享、、任务指派管理和项目讨论协作。  Coding APP  Coding 已推出 Android &
客户端,目前支持任务管理、在线讨论、轻量级社交等功能,让远程协作变得更简单高效。  福利:使用以上服务,在Coding完全免费,官网地址:https://coding.net  # 团队协作-Worktile  大多数情况下,作为开发者,你几乎无法避免团队协作,甚至是远程协作。即使是个人独立开发者,也或多或少要和客户沟通协作。我们想提升产品开发效率,必须重视团队的协作效率。诸如新任务分配、问题反馈、需求变更等,依靠 + Email + Excel来做团队协作,显然是效率低下的。  提升团队协作效率,从选择一个高效的协作工具开始吧。目前已经有很多优秀的在线协作工具,国外的Basecamp(由37Signals的牛人们开发)和Asana等,国内提供团队协作的工具也不少,这里以[Worktile]()为例:  Worktile是一款任务驱动的团队效率管理工具,以任务为中心 (看板式的任务列表,支持拖拽,操作方便)。围绕着任务,成员可以构建列表和项目;成员可以参与到某个任务当中,也可以被提醒关注某个任务以跟踪进度,项目的负责人可以将相关成员拉进某个项目当中;对于历史任务还可以生成日历和简报功能,把团队的工作经验沉淀下来。  你不必花费大量的时间用来收发邮件,用微信、QQ等工具实现沟通交流,用Worktile即能解决团队中工作沟通不畅、信息不同步的情况。此外,Worktile支持Android & iOS手机客户端,团队协作、随时随地。  福利:目前[Worktile]()()完全免费,可以尽情使用!  # 七牛云存储  通常,网站的图片、视频、PDF这些文件会上传到自己的服务器,对于网络资源不丰富的网站,这些文件会消耗很多服务器的资源,尤其是带宽和服务器的并发连接资源。借助七牛提供的云存储服务,把非业务相关的事情,交给专业的团队来处理,是一个明智之举。  七牛专注于提供互联网化过程中的数据管理的一整套解决方案,包括数据存储、传输加速以及数据处理。七牛全球分布式多I存储架构,加速节点已逾1000个,真正做到上传下载加速到极致。此外,七牛国内首创流媒体(音视频处理)支持,大大提升了企业开发效率并节省运维成本至少一半。  七牛存储2.0更是全面引入纠删码(EC)算术冗余方案,将单位存储成本足足降低了63.5%,并率先达到16个9的数据可靠性。  福利:如果网站规模小,七牛提供免费的额度。从这里查看:/pricing
大学生分期购物销量榜
看过本文的人还看了
3530人浏览 2261人浏览 390人浏览 294人浏览
汽车之家内容精选
每日精选20826 编辑宋宋和大国推出的脱口秀节目3776玩客 最好玩的活动与试用平台 57577编辑部的故事 8泡美美 分享最美科技 4100科技生活如何提高团队协作的效率
发表于 17:17|
来源《程序员》|
摘要:软件开发是一项团队活动,必然需要团队成员间的交流与协作。由此,如何提高团队协作的效率便成为大家共同关注的话题。本期三位嘉宾将结合自己的实践经验与大家一起探讨。
金仕达卫宁软件科技有限公司首席架构师李枫:审时度势,及时调整分工合理,责任明确团队是由个人组成的,团队中的个人往往经历不同、背景不同、性格有差异、水平有高低。在团队形成后、正式开工前,首先应该进行合理分工,要结合每个人的特点和爱好,充分发挥出每个人的特长。因为如果工作不愉快、不顺手的话,效率自然低下。分工完成后,每个人对应的职责也就确定了。这时应该同每一位团队成员进行明确申明,最好以文字形式落实到个人并与日常绩效考核挂钩,以避免互相推诿、相互等待的情况出现。制定高效的沟通机制分工完成后团队即开始工作,此时必须保证信息在整个团队内的畅通,特别是互相之间有工作关联的同事,在发现问题时需要及时提出,以免造成不必要的工时浪费。
但软件开发本身是一种需要精力集中并且安静的工作,多次临时性的打断会造成开发思路的停滞,因此团队负责人最好能够每天在固定的时间段内组织大家进行沟
通,并了解工作的进度。而固定的时间也会让大家形成习惯,使效率得到提升。发现团队瓶颈大家往往会陷入一种误区,认为团队中每个员工效率发挥到极致的时候就是这个团队效率最高的时候。但经过企业管理实践不断的论证,这种想法其实是非常可怕的谬
论。正确的做法应该是将整个团队看成一个整体,再去谈效率问题。团队的分工协作就好比是生产的流水线,流水线的整体生产效率不取决于流水线上效率最高的环节,而取决于效率最低、速度最慢的环节。当流水线上某一环节出现故障而停滞时,整个流水线也就停滞了。这也是常说的木桶原理。所以我们必须时刻去发现团队
中的短板,尽一切力量帮助它,提高它的效率。这样,也许会牺牲局部某些个人的效率,但经过一段时间的实施后,你可能会惊奇地发现整个团队的效率变高了。定期检查,及时调整流水线的机器是死的,而程序员们是活的。因此团队的瓶颈也许会因为调整而发生变化,这时需要团队负责人审时度势,及时进行调整。也许需要修正前期的分工,也
许需要改变正在使用的技术,甚至是更换无法胜任的团队成员。让整个团队的工作效率保持在一个较高的并且能够相互匹配的水平,这样做非常重要。总结团队是一个整体,不能靠每个员工进行单打独斗,要始终牢记团队的最终效用取决于团队中效率最低的环节。进行合理分工是预防瓶颈发生的前提,而建立高效的沟通
机制则是发现瓶颈的有效方法。当瓶颈环节出现后要尽团队最大力量去发挥其效用,而当瓶颈发生变化时需及时做出调整,才能提高团队协作的效率。杭州云图科技有限公司研发总监,资深项目管理专家涂勇:提升研发团队协作效率的四个秘诀
要提升研发团队的协作效率,我认为可从目标、规则、沟通和工具四个方面入手。目标,让团队成员有明确的前进方向清晰明确的团队目标可以对团队高效协作形成很强的牵引力,更重要的是,团队目标是团队成员个人目标制定的前提。要让团队高效率的协作,最好的方法就是让团队
所有成员每时每刻的工作都围绕团队目标开展。需要指出的是,将团队的目标分解成近期目标、中期目标和远期目标是一个值得推荐的做法。此外,少数优秀的团队
管理者甚至能够将团队的远期目标上升到团队使命感和价值观的高度。要做到这点,管理者需具备卓越的领导力。具体到研发管理,对项目而言,明
确项目目标并不困难,诸如产品发布、系统上线等这些都可以作为项目目标,并且项目经理也可以很容易以项目计划的形式来加以落实。但对职能部门的管理者而
言,制定好职能部门的目标就很考验管理水平。职能部门的经理不应忽视部门目标的重要性,而这可以与团队成员的个人职业发展目标结合起来考虑。规则,让团队成员始终保持住队形高效率团队运作,一定有良好的团队规则做保证。明确告诉团队成员,什么样的行为是团队所不能容忍的,并将其形成制度。制度违反者都应受到相应的惩罚,并做到
及时(第一时间)、公平(一视同仁)、公开(团队内部)。制度是团队的高压线,不坚决执行的制度还不如没有制度,记住这点很重要。如果说制度告诉团队什么事不能做,那么规范就是告诉团队成员尤其是新进入团队的成员应该怎样做。文档规范、编程规范、原理图设计规范等开发规范,是团队高效率协作的保证。规范不是制度,可以容忍一时不遵守规范的情况,但应该让团队在遵守规范方面做得越来越好。培训、优秀案例和反面教材宣传等都是推行规范的好实践。
另外,规范不是高压线,不赞成对违反规范的成员进行惩罚,最好的方式是对在规范方面做得优秀的人进行公开表扬。制度和规范都是针对的人,对事来说规则即是流程。没有高效率的工作流程,也就没有高效率的团队。对于牵涉多人协作的工作,即使是一个设计不完备的流程也比没有流程好。值得指出的是:
流程应该随着团队内外部的环境变化而做持续优化,在一些大公司中甚至会成立专门的流程改进小组,足见流程持续优化的重要性。沟通,让团队成员凝聚成一个有机的整体良好的沟通对一个高效率团队有多么重要,熟悉Scrum的朋友对此会有更深刻的体会。“坐到一起,每日站立会议,Review会议”,Scrum在团队沟通方面推崇的最佳实践都体现了沟通的重要性。为什么很多公司搬入新办公大楼后就开始走下坡路?下面的这个分析很可能就是主要原因:团队成员在新办公区的座位
会比以前拉得更大,以前与团队成员坐在一起的主管们搬入了独立的办公室,而这会导致团队间原来形成的良好沟通氛围消失,其后果严重到足以给企业带来致命打击!好吧,我承认这听起来有点骇人听闻,目的只是想借此强调一下沟通的重要性。通过开会来达到团队沟通的目的是一种好的方式吗?有人会说是,有人会说不是。其实,开会这种方式,无所谓好与不好,关键就两点:是否有必要开会以及开个什么样的会。我的个人感触:一人用嘴大家用耳的会应该是表彰大会;开了跟没开一样的会最好是批判大会;如果开会有人睡着了,大多数情况下是因为会议本身具有催眠效果。相比开会这种沟通方式,我更喜欢现场管理和看板管理。工具,是团队高效率协作的倍增器这方面最容易让人想到的也是大多数团队目前所采用的方法就是:引入适合团队的协同软件。前面介绍的明确目标、制定规范和加强沟通等方面的措施,如果能有合适的团队协同工具支持和配合,推行起来则要顺利很多。如何选择一款合适的协同软件呢?引入的协同软件贵在精而不在多,功能完备集成性好的协同软件可以避免引入过多系统而产生的信息孤岛。侧重自上而下管控的IT
系统只会在规范团队方面起作用,要提升团队协作效率,更应该选择实现注重协作性的系统。免费的协同软件大多不如付费的,但价格昂贵的协同软件对多数团队而
言并不适合。优秀的管理者的工具箱中,总是会有各种各样的宝贝。诸如团队绩效、团队竞争等都是激发团队成员潜能和斗志的好方法,实施得好的话,可以显著提升团队成员间的协同效率。如果你正好在带团队,不妨尝试一下上面提到的这些方法,相信你的团队的协作效率一定会越来越高。Pragmatic.ly 联合创始人,Teahour.FM主播系统架构师叶玎玎:创业型开发团队的协作心得
毫无疑问,Stephen R. Covey的《The 7 Habits of Highly Effective
People》和David Allen的 《Getting Things Done: The Art of Stress-Free
Productivity》是个人管理类的超级畅销书,让我们学会如何才能成为高效能人士。然而,即使团队里的所有人都是高效能人士,这个团队也不一定是
个高效能团队。我们常说“一个和尚有水喝,两个和尚挑水喝,三个和尚没水喝”,正是出于这个道理。顾名思义,团队协作是指所有团队成员之间协同、合作,里
面会有分工、沟通、协调,甚至会有妥协,所以我们需要一些规则和工具来帮助团队提高协作效率。本文的一些心得和实践来自于我在小团队(&10)的经验,并且在团队内部相互信任、目标一致的基础上,所以不涉及办公室人事管理,适合于创业型开发团队。目标一致不仅要确保团队的长期目标一致,还要确保短期目标一致。如同在足球场踢球,刚开始比赛时,大家战术和思想都是一致的。而一旦进球后,就会出现有人想守,有人
想攻的情况,这种不一致会造成局面被动并可能导致输球。创业团队也是如此。所以在任何时候,团队成员都要保持一致意见:现阶段的目标是什么,什么事情对团队最重要,然后所有做的事情都配合这个目标来完成。合理安排小团队人少,永远有做不完的事,所以在做计划时总是害怕资源出现闲置而添加过多任务。我们一开始也是如此。但慢慢发现,这样不仅弄得团队身心俱疲,不停地赶进度,而且也会因为不停地延期导致团队很沮丧、压力过大影响工作的心情和状态。因此,现在每次迭代只会给大家80%~90%的工作量。有意思的是,很多时
候时间都是刚刚够。易者优先如果讨论时遇到意见分歧,且这些不一致的意见不涉及对错,那么会很容易陷入各自试图说服别人接受自己观点的困境,纯属浪费时间。所以我们采用易者优先原则,设置了单任务最长讨论时间。
一旦超过讨论时间又无法达成共识,就会选择最简单的方案,先做出来,然后大家测试,最后再做改进。免扰模式确定项目计划后,我们就基本启动了免扰模式。我们不鼓励在工作时随意地打断别人,即使是一起在办公室工作时。在我们看来,每一次粗暴的打扰(例如电话、
IM)都是对效率的损害,我们更需要的是100%专注在要做的事情上。因此,我们要求每个人如果需要讨论,就先想清楚整个问题,然后在
Pragmatic.ly或者Hipchat里发出来。短时间来看可能回复会有延时,但从长期来看反而能让大家都能更深入的思考、更专注的工作。尽量避免会议。只有一个例外是遇到困难需要头脑风暴时,因为开会比起文字是效率更高的选择。但只有任务涉及者才需要参与,而不需要浪费其他人的时间。状态同步团队人越多,沟通成本越高,尤其是需要知道团队的当前状态时,例如目前进度如何,接下来有哪些事情要做,做完的时候需不需要其他成员帮忙审查,或者有没有卡
在某些地方需要帮助。这些状态和信息同步是非常耗时的,我们更倾向于用眼睛看代替嘴巴说,而
Pragmatic.ly就很好地满足了这点。项目里的所有信息和状态都会实时地同步给整个团队。代码审查作为开发团队,我们不一定能保证每个任务都有充足的测试覆盖而且也不追求100%覆盖率。但每一段代码、每一次修改,都必须有其他人来审查,通过后才能进入
主干。代码审查中可以发现当事者没考虑过的设计细节和一些实现上的Bug,保证了软件质量。通过代码审查,每个人可以学习到其他人好的思维方式和编码方
式,也会提出做的不好的地方和改进意见,是整个团队在代码级别的另一种沟通和思考,促进了团队的成长。代码审查也能避免单点故障,万一出了问题,即使代码
编写者不在,仍然有其他人能立刻去修正。过程审查除代码需要审查外,过程也是一个很有审查必要的事情。所以我们会不定时地一起进行一次简单的回顾,各自对这个周期的一些工作提出意见,然后在下一个周期里有针对性地改进。整个工作过程就是这样不断地在迭代式调整和改进,让我们根据自身的情况,实践出最适合团队的方式。健康工作要想工作好,身体先练好。一个健康的成员才可能高效地工作。在Y
Combinator有个理论,在产品发布前,你应该专注并只专注两件半事情,1开发+1跟用户聊天+0.5锻炼身体。而在产品发布后,你应该专注并只专
注三件事情,0.5开发+1跟用户聊天+1运营+0.5锻炼身体。可见锻炼身体的重要。我们团队每个人基本每天都会有专门的运动时间,跑步、游泳,或者健身房,已然成了我们工作的一部分。
推荐阅读相关主题:
为了更好地推进云计算大数据的技术创新,展示国内外云计算大数据的产业成果,交流云计算大数据的应用经验,第七届中国云计算大会将于-5日北京国家会议中心举办。此次会议将承续前六届大会的成功经验,邀请国内外知名专家出席会议并作演讲。以更加前瞻性视野,分享国内外云计算大数据的技术趋势和实践经验,推动云计算大数据的发展和进步。
相关热门文章

我要回帖

更多关于 产品开发流程描述 的文章

 

随机推荐