分类 技术志 下的文章

无意中的Pair Programming

Pair Programming, 结对编程是敏捷开发中一个重要的实践,并受到很多业界大师级人物的推崇。但是明知它对我们可能会很有帮助,但是如果推广、实践起来还是要突破各种束缚的,心理上的、流程规范上的等等。我想也许这也或多或少也和公司或者部门的开发文化有些关系。我很想去尝试,但是一直没有找到一个很好的机会,也没有找到"心仪"的Partner。

今天上午恰好要完成一个脚本的编写,这是一个升级产品时使用的自动升级脚本,基础接口在上个月组内的一个同事已经完成了,并经过了大家的评审,认为可行。今天我就是要利用他的这个基础shell函数库来完成我的自动升级脚本的整理。

时间久了,那点关于这个脚本的模糊记忆早已经不存在了,很多细节我需要向我的那位同事请教。本打算找间会议室,坐在一起讨论的,后来发现会议室也被人占领了。上午的计划就是完成这个脚本,计划既然定下来了,就得执行,提高执行力一直是我这阶段的目标之一。就这样,我把这位同事叫到跟前,我们找了一块还算空旷和僻静的办公区坐了下来。我把我的想法向他做了陈述,告诉他我们一起完成这个脚本的初稿。我来掌控笔记本。按照以前我们升级的步骤,我们一步一步来实现脚本的功能,中间有自己不能确认的问题,就将键盘交予他来确认;他的基础脚本当初没有经过详尽的系统测试,也是碰巧,我们在一起写代码的时候居然又发现了原有代码中两个不妥的地方。

Pair的确是会调动人的热情和积极性的。但前提是有一个良好的、适合二人的工作空间;我自己觉得转角的办公桌是不太适合Pair的,两个人坐在转角旁,估计一会就累了-手脚无法伸展。掌控键盘的一方要多与另一方沟通,保持另一方的精神一直集中在你们的工作上,人和人在一起还是很容易溜号儿的。

经过半个多小时的编写,初稿搞定;回想一下,如果我选择的是自己闷头写脚本,然后再让那位同事评审,势必牵扯出不少额外工作量的;而结对的这种方法的确帮我解决了这样的一个问题。

事后反思,觉得的确应该把这一活动看成是一种Pair Programming。虽然现在我对Pair的认识和实践还处于肤浅之状态,但我想万事万物都无定式,最适合的才是最好的,摸索出适合我们组开发的PP模式才是最重要的,还需要实践、积累以及让更多的人参与其中。

尝试Scrum中的Demo模式

昨天,在下班前的一分钟,突然有一个想法:项目刚刚完成一个阶段性的任务,是否将项目组所有人召集在一起,每个人将自己在这个阶段做的东西向大家做一个展示呢?把这个想法和几个同事交换了一下意见,获得了支持。说做就做,恰好这段时间我一直尝试不断提高自己的执行力。遂在上午的一个短会上和大家道出了我的想法,并决定在今天就做这个演示活动。

这种想法其实不是什么独创,最近拜读了一本叫"硝烟中的Scrum和XP"的书,书中关于Agile Srcum实践的做法很是吸引我。骨子里的我是不想做让自己感到别扭的事情的,也不愿重复以前已经做过的事情,不断的改进、每天的充实和提高才是我的目标。既然书中有让我认同的最佳实践,为什么我不去尝试一下呢?持续集成、看板(KanBan)管理以及这个Demo模式是我最近一直努力的几个方向,没想到的是今天Demo尝试意外的给了我第一个尝试改进工作的成就感。

做一件事情容易,但是将你所做的事情展示或讲解给其他人则是不是件容易的事情。项目组在宣布今天做演示活动之后,每个人似乎都有一些态度上的转变,似乎有那么一丝丝紧张。大家重新回顾了这一阶段实现的需求列表,对比需求,努力想着自己所做的东西是否满足需求,哪些不能确定的地方,赶紧向达人请教,一种责任感似乎平地冒出,在大家身上都有不同的展现。

按照我的要求:每个人在演示自己所做的任务之前,需要给大家简单的介绍一下演示点所对应的需求是什么?让大家大致知道你做的东西是个什么样子,这样每个人不能紧紧只了解自己实现的那一块,而是要将业务流程理解的透彻些,特别是对实现管理系统的同事。我很遗憾和愧疚平时没有给大家很多机会去在众人面前说话的机会,大家莫名的都有那么一丝紧张。其实从另一方面来看,这种Demo实践实际上也是给了这些人一个说话的机会,相信每个人说过之后,他们都会感觉很好。

按照Scrum的做法,演示放到项目的最后一个时间段,需注意的是演示不是评审,不是让大家找bug和不足。演示是为了让你的工作为大家所知,得到同事的认可和赞同,获得反馈,取得成就感的。今天的项目组的第一次演示在我的控制下好歹没有转变成评审会,我两次和大家重申要求:希望以后我们的阶段性Demo没有bug出现,Demo是我们阶段性任务的最后环节,所有我们能力范围之内可以找出的bug都需要在前期的工作中予以解决,否则你的成果物是不能被accepted的。

每个同事演示结束后,我都会建议所有组员以掌声予以鼓励,我们的掌声是发自内心的,让演示的同事感觉到他/她的工作得到了认可,心血和汗水没有白费。由于会上得到了很好的效果,我们决定将这种实践作为项目过程的常态持续下去,以后所有组员在接到任务的时候都要以终为始,时刻想着项目阶段末期的演示活动,认真对待自己的任务。相信大家心里也都憋着一股劲--在下次演示的时候能做得更好,这恰好是我想要的。

演示中可能不可避免的发现bug,不要过多纠缠于这些bugs,先记下,会后讨论解决,以让我们的演示会能持续良好的进行下去。

如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! Go语言第一课 Go语言进阶课 Go语言精进之路1 Go语言精进之路2 Go语言第一课 Go语言编程指南
商务合作请联系bigwhite.cn AT aliyun.com

欢迎使用邮件订阅我的博客

输入邮箱订阅本站,只要有新文章发布,就会第一时间发送邮件通知你哦!

这里是 Tony Bai的个人Blog,欢迎访问、订阅和留言! 订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠 ,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过微信捐赠,请用微信客户端扫描下方赞赏码:

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:

以太币:

如果您喜欢通过微信浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:
本站Powered by Digital Ocean VPS。
选择Digital Ocean VPS主机,即可获得10美元现金充值,可 免费使用两个月哟! 著名主机提供商Linode 10$优惠码:linode10,在 这里注册即可免费获 得。阿里云推荐码: 1WFZ0V立享9折!


View Tony Bai's profile on LinkedIn
DigitalOcean Referral Badge

文章

评论

  • 正在加载...

分类

标签

归档



View My Stats