开发,从未如此清晰

关于开发,我们已经有了太多的方法论和工具,这之间其实很难说哪个方法论是正确的,哪个工具是最好用的;其实开发是“任性的”,它没有定律,如人饮水冷暖自知,其过程是否高效,除了团队的内功实力这个决定性因素之外,还取决于整个流程是否是清晰的。高效总是伴随着清晰而来,清晰的目标,清晰的计划,清晰的职责……而这也是Worktile采用看板的原因,直观可视的结构将原本错综复杂的流程变得清晰;而高度模块化的特性,又可以让一个个项目不再僵化,变成可以流动拼接的系统。

我们下面就以Worktile本身的开发作为例要介绍一下怎样apply Worktile in development 。

流动的系统

我们的开发流程是利用六个项目构成的一套开发系统,这六个项目分别是,路线图Roadmap,灵感Ideas,计划Planning,缺陷Bugs,设计Design,开发Development。这六个项目中,以开发项目为核心,其他的项目中的任务通过筛选汇总,最重构成可执行的开发计划。这个系统的构造为:

而让该系统得以运转起来的,就是其中各个项目的任务卡。每个任务卡代表了一个单一的功能、优化点乃至bug。以任务为驱动的Worktile,赋予了任务诸多的特性和功能:

这可以让一个任务所携带的信息变得十分的精确,并且表现力丰富:

  • 任务标题可以简要概括某个功能点;
  • 任务描述可以作为详细的解释;
  • 任务检查项可以分拆一个比较大的功能,或者用于标记开发中的注意事项;
  • 任务分配让责任到人,功能由哪个工程师负责开发一目了然;
  • 关注任务可以让PM或者team leader跟进开发进度;
  • 截止日期可以敦促工程师应该在什么时间完成;
  • 任务标签将开发的优先级醒目的标示出来;
  • 附件可以用于添加辅助资料或者图片;
  • 如果需要沟通,使用任务评论会非常便捷。

而通过任务(或者整个任务列表)的跨项目复制或者移动,这些任务就可以犹如血液一般在这个系统内流动起来,让整个系统焕发出活力。

管中窥豹

【开发Development】是开发过程中最主要的项目,也是落实计划的最前端。通过重点介绍这个代表性的项目,也可以一窥整个开发系统的运作模式。

该项目由技术负责人负责,新的任务来源于系统其它五个项目的汇总,其中的任务分为以下几个列表:

要做:每周的例会上确定新一周的开发计划,然后将【计划Planning】【缺陷Bugs】【设计Design】中的相应任务添加到该列表中,并对新添加的任务按照优先级排序,但在这个阶段并不进行任务的分配;
进行中:一个功能进行设计或开发的时候,将其从要做当中拖拽到当前列表,然后分配给相应的工程师进行开发,并指定任务截止日期;
待测试:开发完成的任务会进行到待测试列表,由测试人员负责质量保证;如果测试有问题,则退回到进行中,由工程师去处理;没有问题的话,就可以推进到下一阶段;
待发布:测试人员检查没有问题的任务会移动到当前列,等待部署发布;
已发布:对于已经发布的特性会进入到当前列,一般会把已发布任务在当前项目保留1个月左右,确保没有问题后,归档已发布的任务。

需要注意的是,如果产品是对应多平台的,可以将开发分为多个项目,这样可以让开发更为清晰,比如【Web端开发】、【iOS端开发】和【Android端开发】。

庖丁解牛

除了上面介绍的【开发Development】,这套系统的另外五个项目分别承担着各自的功用,并且各具特色。

【路线图Roadmap】
这是一个中长期的产品路线图,一般可能会包含未来长则一年,短则一个季度的重点功能和版本规划。主要由产品经理负责,其中的任务既可以按照功能模块划分,也可以按照版本进行划分,目前Worktile团队按照功能模块进行划分。

【灵感Ideas】
这里面主要是汇总来自于团队内部,或者是用户的比较好的想法或者灵感;并且我们会使用两个列表将这些灵感的来源进行区分。

【计划Planning】
这是一个中期产品计划的雏形,主要是由前面两个项目中的任务“汇流”而成,周期一般为一个季度或者一个月。这个计划其实可以说是整个系统中最难也是最关键的一环,因为这体现出了产品规划和用户需求的取舍与平衡。一个产品的发展过程其实就是一直寻找这两者平衡点的过程。所以在制定这个项目的计划的时候,往往也是最为耗费精力和讨论最激烈的时候。

【缺陷Bugs】
这个项目汇总了用户反馈的Bug,按照反馈的问题针对的平台,可以分为【Web端】、【iOS端】和【Android端】三个列表;考虑到用户反馈渠道的多样性,用户反馈同样可以使用一套系统来支持,这个我们下面会详细讲到。而经过检测确认的bug,就会最终放到开发里面去修复。

【设计Design】
从设计角度和用户体验角度对产品提出的优化建议。

这几个项目按照我们最开始介绍的架构,通过任务的流动成为了一个整体。

从用户到产品

用户反馈在一个产品初始的快速成长期可能不是很被重视,一方面是这一阶段产品的“规划储备”还是足够的,另一方面也是因为用户反馈的样本量比较小,无法形成有一定基数同时又可以提炼出价值的用户反馈;但是随着产品的不断成熟,用户量的积累,对于用户反馈的响应、分析并最终体现在产品上,就变得愈发重要。所以收集用户反馈,开发中非常重要的一环。

对于一个较为完备的用户反馈系统,一个项目可能会显示的很吃力,所以我们同样可以使用多个项目来构建。

【反馈收集】项目,可以将来源于后台、社区、QQ群、微信、微博的反馈,按照反馈的问题针对的平台,可以分为【Web端】、【iOS端】和【Android端】三个列表;收集来的建议或者缺陷反馈,经过测试、确认之后,确定有价值或者需要列入开发计划的,可以分发到各个开发项目中。

当然,这样整体看下来可能会觉得有些复杂↓↓↓

但是开发流程的复杂程度,是取决于你对开发计划的精细化要求的,如果产品很简单,甚至团队规模较小,你甚至使用一个项目就可以完成开发。

关于会议

必要的会议沟通,是保持团队处于同一节奏,并且推进多个项目之间流转的重要环节。目的的不同、与会人员的不同,也就要求采取不同的会议形式。

周一产品例会
与会人员为产品部的所有成员,由PM来主持。明确未来一周的开发计划,推进开发系统内任务的流转,并且在【开发Development】项目中,明确开发的优先级,给任务进行分配,设置截止日期。

周五总结例会
与会人员为PM、公司各个部门的team leader、CTO和CEO,会议由CEO主持。首先产品部需要总结过去一周的开发进度,让运营市场部门可以获知当前状态,进而可以配合进行一些用户运营和市场活动。

周三Tech Share
这是公司内部进行的技术分享,主要是产品部参加。这是一个主动分享和讨论互动的内部沙龙,每期由不同的工程师和设计师做分享,帮助大家在自己的领域之外有所提高。

一些经验

  • 这套系统内的项目要尽量采用统一的优先级标准,换言之,就是这六个项目要用一套【任务标签定义】。只有这样,不同项目内的任务在几个项目间流动的时候才会非常顺畅,不会因为标准不一造成什么问题。
  • 每周在开发的【要做】中,仅添加一次任务,不要让工程师们觉得工作总是一望无际的,让他们看到一个个可以完成有限目标,最终,这自然会汇集成为一个Big Dream!
  • 完成的任务别急着归档。对于已经完成的开发内容,都不要急着在路线图、计划或者开发中去归档,可以保留一段时间,比如一周或者一个月,这样可以便于我们回溯过去一段时间的工作成果。
  • 无论你想把这套开发系统弄的多么的精简(比如一个项目)或者多么复杂(三层以上的项目),首先要明确的一点是——这套系统是不是让你的开发变得更加清晰了?为了确定这一点,你要检视一下,在这套系统之下,你的团队目标是不是清晰了,让你的开发计划是不是清晰了,并且让你的团队职责是不是清晰了。如果没有,你就需要作出调整。

更多Worktile博客,请访问 Worktile Blog

时间: 2024-10-11 17:13:10

开发,从未如此清晰的相关文章

猿团YTFCloud--5分钟自制APP,开发从未如此简单

9月15日,YTFCloud将正式开启内测, 这意味着猿团YTF框架产品线全面升级.同时,公测过后,YTFCloud的APP线上DIY服务将面向所有用户,让人人都能成为APP“开发商”. 什么是YTFCloud? YTFCloud是由猿团科技推出的一款针对移动APP 快速创建与打包的云端系统,基于YTFramework,应用前端采用 YTF-UI 作为基础,让产品拥有酷炫的界面,同时搭配YTF-DM,用户可利用搭积木一样的原理,实现快速在线创建APP,并且最大化地在线 DIY 应用页面,云端一键

【猿团专访】|涂图CEO胡东平:只需一行代码 移动图像开发从未如此简单

我们常常戏说这是一个靠脸吃饭的时代,继“整容”“化妆”之后,”修图““美颜”成为变好看的又一大神器.于是市场上涌现出越来越多自带美颜.滤镜功能的APP,大众也是用得不亦乐乎,可是移动图像处理开发套件领域出众者却寥寥.涂图(TuSDK)就像是横空杀出的黑马,2015年4月产品上线,6月即获得了浙大科发.华旦天使.立元创投.浙江国智的天使轮投资.截止目前,涂图已经覆盖8亿用户,整体客户超过4000家,并且每个月以四百五百家的量稳定增长,囊括了诸多如熊猫tv.小红书.一起秀. Blued这样的知名客户

.net使用mvc模式开发web应用 模型与视图间的数据处理

http://www.cnblogs.com/JeffreyZhao/archive/2009/02/27/mvc-use-strong-type-everywhere.html#3427764 本文来自于 主要讲到尽可能使用强类型作为action与view间的数据传递介质 不使用viewdata 为每一个视图建立一个数据传递Molde 缘由: 1.使用ViewData的坏处是必须使用字符串作为键进行访问.字符串是什么?是常量.分散在各处的常量是维护性的大敌,而使用ViewData则几乎无可避免

移动端--web开发

最近看到群里对关于 移动端 web开发很是感兴趣,决定写一个关于 移动端的web开发 概念或框架(宝庆对此很是纠结).也是因为自己一直从事pc 浏览器 web一直对 移动端的不是很重视,所以趁此机会也让自己对 移动端的开发 有个清晰的认识. 环境: 1. 移动端的内核:手机浏览器的内核是什么 在文章中 Android 手机 采用 Webkit.其他的QQ,UC,飞豚 浏览器都基于此开发的.而在iOS以及WP7平台上,由于系统封闭,不允许除  系统自带浏览器内核以外的浏览器内核进入,因此各家浏览器

为什么学习web前端开发?

本文主要分析web开发的相关方向及技术,为想投入web开发的同学提供下参考. 什么是WEB开发 说到WEB开发就不得不提两种架构模式,B/S架构和C/S架构. 互联网发展初期,大多数系统都是C/S架构,C代表客户端,S代表服务器,常见的软件,比如QQ(WEB版的不算),都是采用这种架构模式.这种架构模式通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势.B/S架构(浏览器/服务器)是随着Internet技术的兴起而出现的,它是C/S架构的改进

一个C语言开发的炸金花纸牌游戏附带vs性能分析报告

一.游戏说明: 编写的是一个模拟炸金花的纸牌游戏,游戏附有一个操作说明文档,按照文档上的操作方法,可以简单的开启游戏,整个程序包扩一个编译好的.exe文件,和两个资源文件夹,分别存有该游戏运行时候所需要的照片资源和音乐资源,用户可以直接点击exe文件运行游戏,然后按照相关操作方法来进行游戏. 二.编程语言环境介绍: 本游戏是在VC6.0环境下,用C语言加上一个easyx的C语言图形库实现的.程序源文件建立的是.cpp文件,但是程序开发是采用的C语言语法和风格,建立.cpp文件的原因是,easyx

使用Vue.js初次真正项目开发-2018/07/14

一.组件化 使用Vue.js进行开发,按照MVVM模式,围绕数据为核心,进行开发. 开发过程根据业务和功能组件化,组件化一方面让我们开发思路更加清晰,另一方面对于数据的处理和控制变得更加简单,毕竟一个大功能交给一个组件去实现,总是会显得很复杂,但是将大功能进行细分,交给多个人,每个人负责不同的小功能,就会变得清晰简单. 1. 父子组件数据交互通过prop和事件来实现双向数据绑定. 父组件传递到子组件的prop数据,需要在子组件的props属性中进行注册,意为预期传入的数据. 然后子组件不能直接在

APP开发公司排名你知多少?

随着智能手机的普及,现在各种移动APP存在于我们生活的各个角落.社交.购物.餐饮.健身等无一能够离开手机里面的APP.有需求便会衍生供给,各种APP开发公司便如雨后春笋一般充斥市场,作为一家互联网企业是否拥有自己定制的APP似乎也成了一个衡量标准.如何评判现在的APP开发公司的排名呢?怎样来评价一个APP开发公司的好坏?这里我们来分析一下: 是否具有专业资质? 我们寻找一家APP是否具有合作潜力,首先应当关注这个公司是否有专业资质,比如说是否拥有双软认定,CMMI,信息系统集成,ISO9000,

【温故知新】常见的开发和测试模型

常见的开发模型: 一. 瀑布模型(适合前期需求完整的软件开发): 1.需求分析(产品经理)--->>概要设计(开发人员)--->>详细设计(开发人员)--->>编码(开发人员)--->>软件测试(测试)--->>软件维护(运维) 特点: 1.1 属于线性模型 1.2 每个阶段分工明确 1.3 有对应的文档产出 2.优缺点: 2.1 优点: 2.1.1 阶段界定清晰,分工明确 2.1.2 提高大型软件项目的开发质量和效率 2.2 缺点: 2.2.1