bug很少,大约只有同水平技术团队1/3的bug率;
加班很少,因为可以随时准确掌控项目进度,大多数情况下都可以协商解决,避免加班;
00. 例子
本文中使用的例子页面的原型如下图所示:
01. 编写API文档
这个原型对应的前端页面总共需要调用3个API,分别是:获取全部企业管理员、添加管理员、移除管理员。
首先让我们看一下第1个API编写完成后的效果,如下图:
请注意上方的API源码截图中画红线的地方,我们项目经理在编写API文档的时候,就会把一些注意事项(包括特殊的算法)写到API文档中,并随API文档一直维护下去。这个动作,几乎不会增加项目经理的时间,但却非常可观的帮助后端开发人员避免写出bug。
我们团队会去刻意训练每一个项目经理的思维习惯,在写文档的时候,一定要站在阅读者/开发者的角度去尽可能多的提前考虑到可能出现的问题,然后把答案写到文档里面,从而避免沟通减少bug。
02. 编写需求
在我们团队,项目经理会按照产品原型中的页面结构,1:1录入需求。我们团队多年总结的经验是:原型只承载界面,以及颗粒较大的且改动可能性较低的文字需求,而在线需求文档负责承载细粒度需求以及改动可能性较大的需求,以及开发需要的一切资源(不仅限于API文档)。
本页面需要调用的API(点击链接直接跳转API详情),开发人员再也不用问更不用猜调哪个API了;
重点中的重点:测试用例。测试人员将通过这个需求下面的测试用例来验收本需求衍生出的所有任务和bug。
请大家再次仔细看看我们这个页面的测试用例:
现在,我们项目经理写出了这4个测试用例,这个页面开发后很有可能前后端加起来一个bug都没有,在我们团队这都是常事。“一个bug都没有”,这会给项目经理、前后端开发人员极大的信心和极佳的工作体验,大家都会感觉自己是在跟一群聪明的人一起工作。
03. 创建开发任务
我们项目经理将这个页面拆分成了4个开发任务,一个前端开发任务,3个API开发任务(当然也可以将3个API任务合并到一个任务)。
行业中等偏上的程序员完成这个页面开发所需要的时间。
至此,你便可以发现,我们团队每个开发人员在开发功能的时候,几乎是不需要问问题的,更不需要跟谁讨论。所以我们团队的工作沟通很少很少,大家上班期间几乎都是一边写代码一边聊八卦。
04. 指派开发任务
当项目经理把一个版本的任务全部创建之后,就可以从唐虞阁系统中看到这个版本总的工作量分布,如下图所示:
在我看来,几乎所有的开发团队都是宁愿加班也不愿意延期的,我认为最根本的原因并非老板想要压榨大家,而是管理者拿不出一个可信的数据给老板看,老板自然觉得大家的工作量还可以挤一挤。
回到正题。
指派操作我就不截图了。
所以我们团队经常在家办公。
就是项目经理每周末整理任务状态的时候,会把未完成未验收的任务全部挪到下一周,只有已完成且已验收的任务才会放到当周。这样做是为了让开发人员永远不需要关心上一周及之前的任务,永远只需要关心当前这一周的任务即可。
05. 提交开发任务
我们团队要求开发人员每天下班前必须添加工时并更新任务状态。
06. 测试
提bug的流程本文就不展开了,与任务流程类似。
07. 验收
测试人员把开发任务测试完成之后,不管有没有bug,都会标记任务已测试完成。
因为有些复杂的任务,一开始评估的时候,可能无法考虑到过程中遇到的困难,或者一些调研类的任务,一开始评估的时候感觉很难,结果做下来非常容易,这时都需要在验收的时候去调整标准产出和难度值。
结语
一不小心本文又写的有点长了。文章穿插着我们团队的好几个***实践,我在最后再整理一遍这些重点分享。
开发者问不出问题”为目的,这样可以大幅避免bug并减少沟通必要。
3、我们团队自创的API编写和渲染框架,值得一试。
5、每周结束后,项目经理把未完成的任务全部挪到下一周,开发人员永远只需要关心自己当前这一周的任务即可。
在唐虞阁的管理体系中,项目经理是整个团队的核心,拥有对整个项目进度和质量的绝对掌控,这才是一个真正的技术型管理人才。