我用敏捷开发搞了7遍,把4小时的活儿压进27分钟

Posted 极客学院

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我用敏捷开发搞了7遍,把4小时的活儿压进27分钟相关的知识,希望对你有一定的参考价值。

先打个招呼,这次我要介绍一个老朋友,安利给工作8年以下的程序员

熊节是最早把《重构》翻译成中文带进国内的人,从“大学肄业”到ThoughtWorks总监咨询师,从业18年,他主导了华为、中兴的敏捷开发转型,他倡导的敏捷开发影响了包括我在内的一代程序员。

什么才是程序员的基本功?18年经验,1900字干货:
现在有一个误区——各大企业面试,比如流传的阿里技术面,他考你JVM的细节啊、高并发,这并不是一个程序员日常开发效率的体现。
我们会去刷题、背算法,至于这些东西一年到头用几回无所谓。
理解需求、拆分任务、编写测试、高质量的代码实现——很少有程序员意识到,我每天的具体工作才是我的基本功。

我之前在ThoughtWorks带团队开发一款安卓APP,用测试驱动开发,不需要真机和模拟器,在JVM上180秒跑完2000+个测试用例,平均0.09秒跑一个。

当时我就问团队,为什么明明知道有用,但是很少人会写单元测试?

一个同事说了一句让我记忆犹新的话,他说目前80%程序员都在凭本能开发,观念停滞、方法陈旧、但求偷懒,效率低而不自知。

2017年我把团队最常遇到的问题做了一个统计,排在前三的是:

  1. 拿到一个需求,琢磨半天想不明白如何分解and下手;

  2. 代码没做测试,上线后被抓来处理问题,代码有没有坑自己不知道;

  3. 要改动老代码,不敢轻易下手改,每做点修改都很害怕。
需求把握不准,写完PM不认;添加新功能就破坏旧功能,bug越修越多;以上循环,就会陷进低效率的焦油坑。
解决的办法有很多,我分享一种我认为最高效的,也是极限编程的核心——TDD测试驱动开发。

我用敏捷开发搞了7遍,把4小时的活儿压进27分钟

TDD要达成的是这三个目标:

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

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

第三,测试驱动开发,提高至少3-5倍开发效率。

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

唯一的不爽,这是一个找虐的过程,他迫使你稳定小步前进,一旦会用,节省出的时间会远大于编写测试代码而产生的工作量总和。
里边有三个关键:
第一步任务分解:测试先行,分离关注点,并用单元测试表达;
第二步单元测试:遵循 Given-When-Then 三段式,符合极限编程原则;
第三步小步快走:T DD迫使你小步前进,所以每一步都必须先想好要达到什么效果,每一步都有充分的测试覆盖。
我用敏捷开发搞了7遍,把4小时的活儿压进27分钟
很多人说写测试没时间、TDD没用。
我们公司一个同事,就用TDD,大家一个礼拜的活他一天做完,剩下四天他就在那上网炒股,还赚了不少钱。
测试驱动开发(TDD)是敏捷开发的核心实践, 写测试的本质就是在描述、清晰框定需求,降低返工时间,用手快来掩盖方法慢。
他受益的形式可能是别人5天的活,你2天干完,就算强制996,你也可以用剩下3天学点新东西。

如何才能把TDD应用到工作中?

8月我接触了890位开发者,有在京东工作十年的资深开发,有架构师,有腾讯、今日头条这种一线大厂工作5年的工程师,他们是这么做的。

我和890位开发者
我是熊节,前ThoughtWorks总监咨询师,有18年从业经验,曾带队主导华为、中兴的敏捷开发转型,翻译过《重构》、《实现模式》、《软件工艺》等著作。
我用敏捷开发搞了7遍,把4小时的活儿压进27分钟
今年8月,我和极客学院合作,在线上训练了890位开发者。
其中有600多人每天坚持做学习记录,有些人真的很激动,因为他们的开发效率在以肉眼可见的速度提高。
我用敏捷开发搞了7遍,把4小时的活儿压进27分钟
第一个项目叫FizzBuzz,一开始训练很多人会不习惯。
我用敏捷开发搞了7遍,把4小时的活儿压进27分钟
训练会改变你的既有方法,你可能会先陷入自我怀疑。
我用敏捷开发搞了7遍,把4小时的活儿压进27分钟
接着每个项目你会跟着我练大概8-10遍。通过刻意训练,把开发时间从将近1小时压缩到12分钟。
我用敏捷开发搞了7遍,把4小时的活儿压进27分钟 我用敏捷开发搞了7遍,把4小时的活儿压进27分钟
第二个项目叫Args,训练前一般你的完成时间是4小时。它会让你找到感觉,明白TDD是如何做到提高5-10倍工作效率。
“Args练了大概15遍左右,最后控制在27min内,重新拆解细分后,敲代码时确实更清晰,体会:子任务的拆解很有用,第一次比较粗粒度,第二次梳理了类关系,还要继续练。”
我用敏捷开发搞了7遍,把4小时的活儿压进27分钟
和我一起完成实战营,你的收获是什么?
“终于做完最后一题,总结一下收获:
1.编码节奏和思路更清晰了,原来想很久才敢动手,现在5分钟提交一次,有单元测试保证,根本不担心出错。
2.对任务的拆分有了更深刻的理解。很难出现那种动不动几十行并且逻辑很复杂的代码。
3.有了单元测试保证,下一步追求更简洁,可读性更高的代码。
感谢这个训练营,拯救了一个以为会写代码的我,以后会在工作中更多的尝试TDD,估计这辈子都离不开它了。”
——林泽欢


我用敏捷开发搞了7遍,把4小时的活儿压进27分钟


我想做两件事,第一, 能让大家意识到程序员之间的基本功有很大差距, 通过大量训练,我能让你的基本功达到一线大厂水准;
第二, 现在网上的课程以讲为主,我认为这是一个误区。 我听得很爽没有用, 听别人讲东西,只看不练,功夫不上身,学不来真东西。

我会通过3个项目,FizzBuzz、Args、MarsRover带你反复训练,训练后得到即时反馈,“练”会而不是“学”会TDD。参加实战营,我的目标是让你:

  1. 在工作中实践TDD-测试驱动开发;

  2. 精准框定需求范围,用测试驱动代码;

  3. 重建开发基本功,重新认识开发;

  4. 在工作中肉眼可见的提高开发效率。


实战营人群:
  1. 具备开发基础,前端后端均可;
  2. 工作1-3年,想获得更高效的编程方法;
  3. 工作3-8年,突破技术瓶颈跳槽一线;
  4. 技术leader,想找到提高团队效率的方法。

实战营形式:
  1. 预计12月中旬开营,训练周期21-30天;
  2. 3个项目,18个任务,社群答疑直播;
  3. 学习时间自由,1年内可反复观看。
我用敏捷开发搞了7遍,把4小时的活儿压进27分钟 极客学院实战营系统
你会和来自各大IT公司的中高层开发者一起学习,成为行业中坚力量。以下是具体训练项目及内容:
我用敏捷开发搞了7遍,把4小时的活儿压进27分钟
如果不是一对一的电话沟通,很难相信上一期的同学里有这么多高手——


  • 百度EBG高级Java工程师 陆羽
  • 极客学院技术总负责人 Kevin
  • 学而思web开发工程师  李坤
  • 小米金融高级前端工程师李志明
  • 华为高级 C++开发工程师  孟广明
  • 飞羽科技有限公司CTO 小白
  • 拉勾网Python工程师-zhangwl
    ……
我用敏捷开发搞了7遍,把4小时的活儿压进27分钟

和动辄998元的线上训练比,TDD实战营定价179元。
我经常引用《灌篮高手》安西教练的话:“投2万个球吧。”
当你完成20遍训练,亲身体会到开发效率提高,你才能真正理解我说的是什么,这也正是TDD的神奇之处。
第四期【敏捷开发实战营】

1. 原价 ¥179,拼团价68,先到先得。

2. 预计12月中旬开营,付费后加助教微信;

3. 预计招生1000人,添加人较多通过需等待;

4. 完成全部项目,认为没有提高效率全额退款。

长按扫码,提高10倍开发效率,做更有价值的开发者。


以上是关于我用敏捷开发搞了7遍,把4小时的活儿压进27分钟的主要内容,如果未能解决你的问题,请参考以下文章

敏捷开发转型7个月,4小时的活儿24分钟搞定

不要数你干活儿花了几个小时

学习进度条4

这次搞了件大事,整理最新学习路线(含时间分配规划)

测试先行,小步快走提高了1倍效率,我用敏捷开发的实践心得

敏捷开发实施方案