最新消息:欢迎访问Android开发中文站!商务联系微信:loading_in

大部分996只能怪自己?我是如何把修改bug时间降到10%

网站公告 loading 544浏览 0评论

先打个招呼,这期推文我要介绍一个老朋友——熊节。

推荐他的重要原因是,从“大学肄业”到ThoughtWorks总监咨询师,他倡导的敏捷开发影响了包括我在内的一代程序员。

顺便说一句,几年前他在ThoughtWorks时就已经突破了百万年薪。全文2500字,强烈安利给工作8年以下的程序员。

1

【01】

写代码18年,作为前IT界“过气网红”,了解我的老程序员知道,2001年我离开大学,和现在的“北漂”、“杭漂”、“深漂”一样,技术、内容、项目、媒体我都干。

这个过程其实挺充实,哪也不去,窗外好山好水好风景,我就在家专心研究技术。

我曾经翻译过M.Fowler 的著作《重构》,希望把敏捷开发引进中国,结果一不小心火了,10年时间两次改版,有80多万读者。

2

并不是卖书 放心

可能有的人读到这里要会心一笑,当年很多我的“小粉丝”现在大多成了一线大厂的技术leader,风水轮流转,今日的你正是当时的我。

2008年是我的高光时刻,在ThoughtWorks我开始带团队主导华为、中兴的敏捷开发转型,每年深入几万人的IT企业,指挥上千人技术团队,我们将1000名高级工程师做观察样本,通过敏捷开发提高公司开发效率。

也是在2017年,我拿到了人生中的第一个百万年薪。

看到这里,估计你也好奇,敏捷开发到底给程序员提供什么价值?让华为、中兴、阿里巴巴、腾讯、戴姆勒这样的顶级大厂,不惜每年花费千万级预算,邀请我们实施敏捷开发转型,让自己的程序员具备这项技术?

【02】  

我来给你打开新世界大门,测试驱动开发的本质是一种开发方法论。这种方法最大的特点在于:先写单元测试,再写功能代码。

TDD的核心在于严格规定了开发节奏:没有失败的单元测试就不能写功能代码,且只允许写“恰好让单元测试通过”的功能代码。

这个节奏迫使程序员稳定小步前进,每一步都必须先想好要达到什么效果,每一步都有充分的测试覆盖。

这就意味着,一个程序员如果掌握了TDD方法,就能解决开发中的三个老大难:

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

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

第三,通过反复训练提高开发速度与代码准确率。

很多团队开发效率低,低就低在需求和质量上。

对需求把握不准确,做出来的功能不是客户想要的,必然导致返工。

质量缺乏保障,添加新功能就破坏了旧功能,必然导致返工。

工作量成倍增加,交货期限不能变,最后不得不靠996来补。你自己想想,对嘛?

3

TDD的价值在于尽可能一次把需求理解清、一次做对、消除返工。

稳定的步伐才能带来长期效益。这也是ThoughtWorks、Google、Facebook、eBay、Pivotal、华为、腾讯、阿里大厂都在使用TDD开发,逐渐把考题放进面试的本质原因。

对于基本功不扎实的程序员来说,刚开始用TDD会感到束手束脚,这是正常的学习过程,也是国内的一个误区——如果一直停留在自己的舒适区,你就永远无法达到一线大厂程序员、技术leader的水平。

你是否经常遇到这样的场景:

l  拿到一个需求,琢磨半天也想不清楚该如何分解任务,盯着屏幕半天,还是不知道该怎么下手。

l  好不容易做出来一个版本,给客户or产品经理一看,“这不是我想要的”,只能回头加班,被动996,丧失了娱乐独处和陪伴家人的时间。

l  新功能要改动一块老代码,不敢轻易下手改,生怕改完以后破坏以前的功能,每做一点修改都战战兢兢。

l  项目上线在即,又测出一堆bug,团队连夜加班修,bug越修越多,修到天亮都还没有一个靠谱版本。

l  以上场景无限循环

这些问题的本质是因为缺乏正确的开发方法——大家伙全凭本能在工作。

对小型的demo、原型,这种工作方式或许还能凑合。对于真正要给用户用的生产系统,这种全凭本能、不讲方法的开发方式,注定会陷入低质量、大量返工的焦油坑。

测试驱动开发(TDD)能有效解决国内研发团队普遍存在的需求偏差、质量低下两大痛点。高质量、低返工,可靠可信的开发过程,离不开TDD核心实践。

如何才能不仅只是学会测试驱动开发(TDD),还能真的在工作中得以应用?

【03】  

我的答案,是训练出真知。我决定和极客学院一起,亲自挑选、亲自辅导、亲自打造一支国内的TDD开发战队。

从8月8号开始,在21天时间里完成敏捷开发的核心实践,其中包括3个大项目、10+个任务的高强度训练。

和其他线上课程相比,我会为结果负责,亲自带领各位完成全部训练,从学过边会做。

以项目“Args”为例。这个题目的复杂度跟日常开发时会接到的一个划分细致、描述清晰的需求大致相当。

4

任务六:代码“臭”不“臭”

大多数程序员完成这个题目需要四五个小时,第一期学员经过训练,他们的时长是55分钟,代码质量高,100%单元测试覆盖。第一期的效果怎么样?我说了不算,给你们看看学员的被虐心得:

“FizzBuzz”练了大概15遍左右,最后控制在10min内,重新拆解细分后,码代时确实更清晰,继续练。”

——Paige

“贴一下实战营的收获,21天重新认识TDD,也见识了TDD的威力。以前学一样放弃一样,觉得没有用,现在发现是学不到位,练不到位,多练才能出效果。”

——林泽欢

“一份需要重构重构再重构的作业,已经基本掌握并熟练使用TDD的节奏,接下来就是学会如何写出舒服的代码!!!继续Kata!!”

——斜杠工程师

“从刚开始的蠢蠢欲动再到持之以恒,确实学到了很多东西,框定需求,识别坏代码,测试先性,marse rover时间花的比较多,代码里还充斥着switch,加强重构。”

——阿贵

“熊老师,我要给你生猴子”

——某不知名男学员

5

学员学习过程记录收集

被《TDD实战营》选中的每一位成员,都将达到以下能力:

·     用测试框定需求范围

·     准确合理拆分开发任务

·     具备测试驱动开发实践能力

·     识别和消除代码坏味道

事实上,在今年6月结束的第一期实战营里,藏着很多“大佬”。如果不是一对一的电话调研,我很难相信第一期的同学里竟然有这么多大牛——

·     前百度教育事业部高级Java工程师 陆羽

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

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

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

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

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

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

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

·     拉勾网Python工程师-zhangwl

·     ……

6

通过考核颁发证书

除此之外,我们还邀请了华为、ThoughtWorks、腾讯、阿里巴巴的HR驻场参与,优秀学员我们将直接提供推送机会。

训练营总共21小时,除去主干项目任务会有微信群全程答疑,有提交作业环节。即使你无法在指定时间内完成训练,课程也会永久和您的账号绑定在一起,支持随时观看。

报名实战营需要您具备初级开发基础,无论您从事的是前端还是后端开发都可以报名,没有语言限制。以下是具体项目内容和服务:

7

8

如你所见,这是一套可以真正落地实操的课程。我们更注重训练,而不是普及。

另外在训练中我们会融入结对编程元素,建议可以2人一起报名,互相review代码,共同完成项目。

以上为非必选项,一人报名对学习不会造成任何影响。

我并不打算通过实战营盈利,21天的训练,预计定价在129元,包括:

3个项目、10余个任务的高强训练,社群实操+直播辅导,更有机会参加线下jiker工作坊,成为更有市场竞争力、不用天天996的工程师。

9

极客学院线下工作坊

第二期我希望把人数控制在1000人以内,这3个项目其实有很多东西,只有当你真正经过训练,做到用10倍速度完成开发时,或许你才会真正理解我现在说的内容。

限时报名参加

1.   直播+项目+答疑+训练,【21天训练营】限时优惠99 ¥,原价 ¥129。

2.   分享海报,分销15元奖励,有机会获得极客学院VIP卡+《重构》纸质教材。

3.   8月8号开营,扫码海报或点击阅读原文立即购买报名。

 WechatIMG1970

一顿饭钱,就能掌握可应用到工作的敏捷开发技能,加入高质量开发圈,一起做更有价值的工程师。

转载请注明:Android开发中文站 » 大部分996只能怪自己?我是如何把修改bug时间降到10%

您必须 登录 才能发表评论!