敏捷开发之程序员的四重境界

Posted 程序员内参

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了敏捷开发之程序员的四重境界相关的知识,希望对你有一定的参考价值。


程序员的四重境界

第一重:可用代码级


这是大约2000年左右,csdn上的一篇文章,后来成为我们团队的主要文化之一。


可用代码也就是我们大学时代所学的代码,可以工作,但是质量不保证。


对这个级别程序员的管理,核心问题是在于人和代码分开。也就是说我们可以使用这个级别的程序员,但是我们不允许他们写这个级别的代码,更不允许把这些代码放进我们的产品中。


因此这个级别的程序员,往往是必须受到指导的。他的指导,不是源自对个人成长的关注,而是源自对我们产品的负责。唯有如此,他才能真正在实战中,在一个非常清晰的目的驱动下,得以成长。


如果大家听过我的139团队结构,就会意识到他们就是最后的9那个级别的人。他们每一个人都会有一个师傅,师傅的水平要比他们高很多,对他们代码的结构质量进度全面负责。每当他们的代码完成的时候师傅都要把代码完整的看一遍,然后进行相应的修改。整个过程是两个人松结对编程进行的,因此徒弟的水平也得以提高。


现在我们自己的团队里,通过reshaper的todo来解决这个问题。每当徒弟完成一个任务,他都写一个需要我评审的todo类型。这样我就可以看到有哪些地方完成了,会抽空拉着他一起修改。在他水平高到一定程度之后,我会独立评审,把发现的问题事后给他看就可以了。


诺顿曾经说过,要用不可靠的程序员开发可靠的代码。质量不纯粹是一个技术问题,只有配合合理的过程和团队才能解决。


第二重,高质量代码级。


很多人认为把程序编程高质量的是一个非常高的级别,但其实不然。这是对程序员的一个基础要求,因此有的时候我们会发现一些程序高手他们说:你们尽管测吧,我只管开发功能。测试多少bug尽管发过来我都可以给你改。其实这样的人连第二个级别都达不到。


高质量包含两个层面。


第一个层面是当前是高质量的,也就是说这个程序员把代码编写出来,我们发现里面不需要测试它的质量就已经非常好了。测试人员真正要做的事情不是保证它里面没有缺陷,而是保证和业务是相符合的。因为很多程序员本身不熟悉业务,因此可能会导致一些不符合的情况,这是测试人员要做的测试的本质。


高质量的第二个层面是说他的未来仍然可以保持高质量。这一点就要涉及到程序的易读性易维护性,不能现在是好的,一碰它就会出问题。还有一个方面,就是我们写的东西如果别人借去使用仍然是高质量的。也就是说它综合性的考虑到了各种应用情况,不会因为换个环境就出问题。如果一个东西是可以方便地被复用的而本身又是高质量的,这一点就可以推动整个产品走向更高的质量。


这一篇就讲到这里,下一篇我们会讲程序员的更高的一重境界,叫做编写精美代码级。


第三重,精美代码级。

精美代码有两重含义,一个是精,一个是美。

精的意思是说,代码的总量很少。这种很少不是删掉分号所有的代码变成一行,而是天然的少。类少,方法少,分号少,行少,每行的长度少。这个效果不可能经由简单的编辑代码完成————这是很多新手想不通什么是精美代码的原因————它要求我们去编辑自己的思维,思考我们在做些什么业务用到什么技术,然后把整个代码分层复用。

美的含义是说代码看起来很漂亮。比如当我们想看业务的时候,我们看到了用人类的语言写成的业务代码;当我们想看技术的时候,我们看到了用机器语言写成的技术代码。从阅读的角度看,我们一般需要在一分钟左右的时间,看完一个逻辑。从查找的角度看,我们一般需要半分钟时间,定位到我们想修改的代码。超过这个时间长度,会令人感到不悦,不安。

精美的代码一般都是高质量的。为什么呢?因为它代码总量少,阅读和修改也方便。难以犯错,有错误也很好改。因此等代码的质量高到一定水平,很难再进行提高的时候,就要考虑编写精美代码。

以后我们还会有高级话题来量化地衡量什么是精美的代码。


第四重,思想深邃级

这个级别,主要体现的不再是知识的层面,而更多的是思维和智慧的层面。大体又可以分为3个小的层级。

第一个层级,叫做与大师共震。也就是说任何一种语言,任何一种工具出现新的特性的时候,都会有一种一见如故的感觉。原因是在这些新的特性出现之前,自己已经思考过该如何处理,而且处理的方式,与最终看见的大师的处理方式相同。

第二个层级,叫做手中无刀。也就是说这些人不再在嘴边挂着各种各样的术语,从哪里来源的,最早是谁说的,这个设计模式叫什么,哪本书里提到的,等等。但是,在实际应用的过程中需要解决困难的时候,他却一点都不会一筹莫展,招式也不会走样。

第三个层级,叫做自主创新。他们融会贯通知识的能力,已经达到了大师的级别。不需要再等,自己就可以创造这种东西了。我们看到的各种新语言新技术,其实都是在这个层面上出现的。

中国的程序员或者是IT人士,整体上都比较内敛。我们在前两个层级上还是有人的,但是在第三个层级上,整个行业都处于一种等待状态,希望外国人发明什么我们直接用。所以尽管我们的IT业非常发达,但是600多种编程语言没有一种是中国人发明的,各种新框架也很少创造,几乎所有的管理学方法也都是引进的。这是最需要改变的现实。


本文原创者:火星人陈勇




程序员内参
微信号:

programmer0001



推荐理由:
在这里,我们分享程序员相关技术,职场生活,行业热点资讯。不定期还会分享IT趣文和趣图。这里属于我们程序员自己的生活,工作和娱乐空间。


 ▼长按下方↓↓↓二维码识别关注



以上是关于敏捷开发之程序员的四重境界的主要内容,如果未能解决你的问题,请参考以下文章

《高效程序员的45个习惯:敏捷开发修炼之道》

读书笔记 -《高效程序猿的45个习惯-敏捷开发修炼之道》

敏捷开发与瀑布开发方法论之对比

软件开发模式之敏捷开发(scrum)

高效程序员的良好习惯,敏捷开发修炼之道

[读书笔记]《高效程序员的45个习惯 ——敏捷开发修炼之道》