CSD培训心得

课程链接: https://www.uperform.cn/certified-scrum-developer-csd-shanghai-201806

一直有个想法,就是跟着大咖学一学Scrum开发中的工程实践,因为不管理念多好价值观多正,软件项目的交付最终还是要靠程序员来完成。也曾在微信公众号读过一篇文章叫《团队的能力支撑不起ScrumMaster的梦想》,光看标题就知道,开发团队的能力建设是个很关键的话题。《管理3.0》一书大概也指出敏捷宣言隐含的一个BUG,就是忽略了对能力的要求。结合自己10年的软件开发实践,也可以证明敏捷不适合能力很差的团队,团队需要持续改进,但有一个前提是起点不能过低。不然,就不是敏捷坑害了团队,而是团队坑害了敏捷。基于种种现实的原因,我决定参加一次CSD课程来提升自己的工程实践能力,并奢望将来能将其引入开发团队,让敏捷的力量得以彰显。

CSD开课很少,所以跟Jacky老师不断确认,终于等到6月开课。在三天的课程里,那些传说中的工程实践被逐一揭开神秘面纱,让人震撼,同时也暴露出自己工程实践能力的不足。如果能早几年掌握这些优秀实践,那些曾经窘迫过的项目一定能有所改观。

(1)传说中的TDD

尽管TDD早已威名远扬,但是从多年多家公司多个团队的亲身经历来看,TDD只是个名字,并未被真正践行起来。红灯绿灯重构三部曲也在书上读过,但困于没有实战经验。CSD课程的第一个主题便是TDD,这让我很开心。TDD的故事是从一个分解质因数的小程序开始的。红灯绿灯重构伴随测试、编码和重构,有了测试用例的保障,编码可以用简单粗暴甚至无耻的方式开始,一切只要测试通过。

从2[2]到3[3]再到4[2,2],简单粗暴,超有快感,只因有了测试用例,所以可以肆意妄为。这种放肆的编码虽然可以继续,但是代码逐渐散发出异味,等到8[2,2,2]的时候,异味逐渐浓烈,需要一些简单的重构来消除这种异味。幸好味道不是很重,只需少量的重构即可。

(2)结对进行TDD的练习

结对编程是CSD课程的另一个主题,也是一个结合了UT的大演练。结对编程在实际工作中也偶有应用,但是和TDD结合还没有过。课堂上,近20个人轮流结对,前一个写测试用例,后一个写功能实现,并结对重构代码。

这是一个关于网球比赛的题目,练习本身也很有趣,充分暴露了程序员的一些不良习性。练习进行到一大半的时候大家都不愿意进行重构,甚至异味已经很明显了,大家还是选择将重构留给后面的伙伴。

直到有人必须重构的时候,发现代码已经其臭无比了。重构的同学陷入了深度窘迫,因为重构工作已经很难了。这个结对TDD大演练告诉我们一个鲜活的道理,就是不能等到代码发臭了才重构,重构应该随时随地进行。技术债务只要出现苗头就应该立即消灭,这样成本才最低。

(3)重构与技术债

在敏捷开发中设计是涌现出来的,这就决定了技术债务一定要出现,作为敏捷开发人员,要能敏锐发现技术债,然后果断消灭它。重构的技能也是CSD课程的重要主题,三天的训练都是伴随着重构进行的。重构一定要及时进行,不然等代码烂掉再重构就是重写了,这样的例子在现实中比比皆是。正是有了这次课程,我在最近的一个Sprint中和团队讨论进行了一次重构,消除了过去几个Sprint遗留下来的技术债务。尽管工作中进度压力非常大,但还是抗住压力进行重构,避免高利贷发生。

(4)CSD的另一个主题是持续集成

这也是我最感兴趣的工程实践。随着敏捷的延伸,Devops已经成为必然选择,CI和CD已经是绕不开的话题了。练习,还是练习。以一个酒店会议室预订系统为例子,两人一组进行训练,使用的工具是intellj IEDA,Git和Travis-org,采用结对编程和TDD的方式进行了3个Sprint的开发。开发中频繁提交代码,提交后很快在CI系统上看到编译结果,编译通过或者不通过都能得到及时反馈。这对团队协同开发来说非常有用。

(5)课后小结

三天的课程信息量很大,练习很多。但是总结起来都是对于软件开发人员硬实力的打磨。三天的训练收获的是大量提升能力的方法,要想真正提升能力需要持续的训练。这三天里,我从Jacky老师那里学到几次词语,留给我自己慢慢用。

第一是,刻意练习。方法仅仅是方法,如果一直停留在方法层面并不会带来太大受益,如果能刻意去训练这些方法的使用,方法就会变成实践能力,就会促进软件项目的交付。

第二是,把手弄脏。如果一直听别人讲,看别人做,自己不会提升,就像站在岸上学游泳一样,不跳下水,永远学不会。

第三是,是选择优秀的工具。从ecilpse切换到intellj idea,从普通电脑换成mac机,效率翻一翻。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值