vlambda博客
学习文章列表

敏捷开发实践:不怕别人比你快,就怕他的方法更高效

什么是程序员的核心竞争力?
我觉得核心解是开发效率。
很多朋友经常在后台留言,总结成一句话:为啥我的开发效率总是很低?
我认为答案就是12个字:观念停滞,方法陈旧,但求偷懒。
现在80%的程序员都在凭本能做开发。
我们很多程序员别人给他一个需求,他不考虑这个代码写上去怎么测试,不考虑未来怎么扩展,甚至都不考虑我这个需求到底理解的对不对,反正我就做。
为什么会这样?
第一被大环境误导,第二缺乏基本功,第三缺乏好的工作方式。
个人在时代浪潮中很难不被引导,有个导向是企业招聘。
比如流传的阿里技术面,他就考你JVM的细节啊、高并发。他并不是一个程序员日常开发效率的体现。
既然企业要考程序员就会去刷题、背算法,至于这些东西一年到头用几回,无所谓。
理解需求、拆分任务、编写测试、高质量的代码实现——很少有程序员意识到,我每天的工作是什么,我的基本功如何。
如果一个人意识到了并且开始刻意训练,他就会在这个团队中鹤立鸡群。
这会带来什么效应?别人会看到这个人价值很大。我2013年在ThoughtWorks带的员工,在我这干了1年,去教合作公司号称有多少年经验的程序员怎么做软件,这些老程序员还很服他。
如果基本功不扎实,就会掉进很多误区,就会直接影响开发效率。
比如我们从来都不怎么写单元测试,看似快,其实慢。
很多人说没时间做测试,这是一个非常重要且常见的误区。
为什么当我们用编程语言清晰的描述需求时,我们会认为这是一个额外的工作量?
需求不清晰的结果就是返工,别用手快来掩盖方法慢。
2001年我们敏捷开发圈里一个朋友,大家一个礼拜的活他半天就做完,剩下四天半他就在那上网炒股,后来炒股还赚了不少钱。
公司任务紧,忙忙叨叨做完,做完了公司的产品,却没给自己留下技术积累。
更大的问题是,像腾讯、阿里、头条、美团、百度,越是大厂越要测试先行,你在小厂不写测试、工作方式不对,就越难跳到一线大厂。

基本功不扎实+不写单元测试,两个加起来就是天坑。以为不写测试做得快,最后会陷入效率低的死循环:

  • 对需求把握不准,写完PM不认;

  • 代码有没有坑不知道,3个月前写的代码一碰就虚;

  • 添加新功能就破坏旧功能,测出一堆bug加班修,bug越修越多;

  • 以上循环,就会陷进无限返工、低效率的焦油坑。
一个团队里面10个人,有1个人慢,领导说那我把你换了,但现在我们的情况是8、9个人全都慢。领导一看换不了,那就吃大锅饭,全都996。这就是我们行业的真实情况。
之前还能吃大锅饭,从5月甲骨文裁员开始,腾讯、阿里、百度、京东、今日头条、美团,很多一线大厂都在紧急做敏捷转型,能力行的上,不行的走,试图通过轻量级的开发和适应性的计划方法来应对市场变化。
我是熊节,在ThoughtWorks做到总监咨询师,曾经翻译过《重构》这本书,10年卖了80万册,希望把敏捷开发引进中国。
如何改善开发方式,减少返工,和一线大厂接轨,提高开发效率?
我一直在用的开发方式就是测试驱动开发(TDD),他也是敏捷开发的核心实践,就像钥匙——拧动TDD,就拧开了敏捷开发的大门。

TDD就像脚手架,为代码提供保护网,他的核心在于严格规定开发节奏,一次把需求理清,一次做对、消除返工,不用调试就能获得反馈。

里边有三个关键:

第一步任务分解:测试先行,分离关注点,并用单元测试表达;

第二步单元测试:遵循 Given-When-Then 三段式,符合极限编程原则;

第三步小步快走:此处的坑在于很多人容易一下写多,破坏TDD节奏。
敏捷开发实践:不怕别人比你快,就怕他的方法更高效
但一旦会用,节省出的时间会远大于编写测试代码而产生的工作量总和。
当时阿里妈妈团队每周都要发布一个内测版本,他的测试团队不可能跟上,开发如果不靠TDD,他就不可能这么顺利的发布。

掌握测试驱动开发,就能解决开发中的三个老大难:

第一,准确把握需求,开发出来的功能一定是客户想要的;

第二,保障软件质量,开发出来的代码一定是有自动化测试覆盖的。

第三,通过反复训练提高开发速度与代码准确率。
我曾负责架构和开发多个大型企业软件系统,领导过包括华为、中兴在内多个巨型企业的敏捷转型。
敏捷开发实践:不怕别人比你快,就怕他的方法更高效

TDD会不会让企业成功我不知道,因为企业受到制约的因素太多。
但是我相信掌握TDD技术的人他会受益。他受益的形式可能是别人5天的活,他两天干完,就算公司强制996,他也可以用剩下3天学点新东西,为有一天到大厂、为晋升做准备。
第二期《敏捷开发实战营》将在8月8号上线,我会亲自带队,训练出一支能熟练应用TDD的敏捷开发团队,改进工作方式,提高编程基本功。
我想做的事情就是,第一,通过这个实战营,能让大家看到我们基本功有很大差距。
第二,我希望建立一种刻意练习的环境。现在大多数线上课程都走偏了,一个人学到真东西的方法就是要练,练自己不熟悉的东西,快速得到的反馈,这是唯一法宝。
熊节的敏捷开发实战营
实战营会先让一部分人掌握测试驱动开发的方法,练好基本功、改进工作方式,提高开发效率,成为敏捷开发的第一批受益者。

实战营适用人群:

  1. 具备初级开发基础,无论从事前端还是后端均可,没有语言限制;

  2. 工作1-3年,想获得更高效的编程心法,脱颖而出的新人;

  3. 工作3-5年,想突破技术瓶颈,跳槽一线大厂的进阶程序员;

  4. 技术leader,想整体提高团队效率,完成质的飞跃。

完成实战你将能:

  1. 掌握测试驱动开发的基本节奏;

  2. 用测试用例描述沟通需求;

  3. 编写失败的测试,驱动产品代码;

  4. 精准框定需求范围,实践重构。
8月8日开始,一共3个线上项目,包含12个任务,预计学习时长21天,1年内可以反复观看。
这是第一期学员的训练心得:
“最大的收获是学习了TDD编程思维,先确立目标再行动,一步步快速迭代,确保质量,还了解到了codingdojo这种编程方式,希望能一直坚持下去,不断提高效率(◔◡◔)”
敏捷开发实践:不怕别人比你快,就怕他的方法更高效
——小白
“FizzBuzz练了大概15遍左右,最后控制在10min内,重新拆解细分后,敲代码时确实更清晰,体会:子任务的拆解很有用,第一次比较粗粒度,第二次梳理了类关系,还要继续练。”
敏捷开发实践:不怕别人比你快,就怕他的方法更高效
——Paige

“终于做完最后一题,总结一下收获:

1.编码节奏和思路更清晰了,原来想很久才敢动手,现在5分钟提交一次,有单元测试保证,根本不担心出错。

2.对任务的拆分有了更深刻的理解。很难出现那种动不动几十行并且逻辑很复杂的代码。

3.有了单元测试保证,下一步追求更简洁,可读性更高的代码。
感谢这个训练营,拯救了一个以为会写代码的我,以后会在工作中更多的尝试TDD,估计这辈子都离不开它了。
——林泽欢
“1.去除重复代码2.分割常量抽取3.函数替换循环不断化!”
敏捷开发实践:不怕别人比你快,就怕他的方法更高效
——陈宇明
“熊老师,我要给你生猴子!”
——不知名男学员
敏捷开发实践:不怕别人比你快,就怕他的方法更高效
学员打卡&作业点评记录
  • 百度EBG高级Java工程师 陆羽

  • 极客学院技术总负责人 Kevin

  • 学而思web开发工程师  李坤

  • 小米金融高级前端工程师李志明

  • 华为高级 C++开发工程师  孟广明

  • 飞羽科技有限公司CTO 小白

  • 支付宝小程序  高级Python工程师秋叶

  • 阿里巴巴-java工程师  李若舟

  • 拉勾网Python工程师-zhangwl

     ……
敏捷开发实践:不怕别人比你快,就怕他的方法更高效
你将和来自各大IT公司的中高层开发者一起成长,成为行业中坚力量。以下是具体项目:
敏捷开发实践:不怕别人比你快,就怕他的方法更高效

和动辄几百上千的实战营类课程比,实战营定价179元,额外福利:

  • 极客学院TDD实战营结业证书;

  • 受用终身的测试驱动开发方法;

  • 华为、ThoughtWorks、腾讯、阿里巴巴HR入群互动,优秀学员的内推机会;

  • 反复大量训练+不定期线下技术沙龙。

我经常引用《灌篮高手》安西教练的话:“投2万个球吧。”
完成敏捷开发核心实践、提高基本功、改善工作方式,只有当你参加训练,你才能体会到编程效率提升10倍的感觉,这是飞一般的感觉!


第二期【敏捷开发实战营】
扫码海报报名

1. 限时优惠99 ¥,原价 ¥179。

2. 8月8号开营,限时优惠,扫码立即购买。

长按扫码,加入高质量开发圈,和我一起做更有价值的工程师。