软件从业者的工匠精神
亲爱的小伙伴,本文不是技术干货,但很有趣,还收录了软件顶流的鲍勃大叔关于软件工匠精神(更专业的叫法是软件匠艺)的一些观点。
鲍勃大叔是谁?
Robert C. Martin是世界软件开发大师,设计模式和敏捷开发的先驱,敏捷联盟首任主席,被晚辈程序员尊称为 “鲍勃大叔” (Uncle Bob)。估计不少人都读过他的著作,比如《代码整洁之道》、《架构整洁之道》、《敏捷整洁之道》。
什么是软件匠艺?
言归正传,软件工匠精神是敏捷运动在软件行业的升级版本,在《敏捷软件开发宣言》的基础上,提出了《软件工匠精神宣言》,其中对软件开发从业者提出了更高的要求。
配图:敏捷软件开发宣言,截图自http://agilemanifesto.org/iso/zhchs/manifesto.html
配图:软件工匠精神宣言,截图自http://manifesto.softwarecraftsmanship.org/#/zh-cn
鲍勃大叔怎样诠释
软件工匠精神?
在2011年,鲍勃大叔在一篇博客中写道:“究竟什么是软件工匠精神运动?是什么动机带来的这场运动?现在又是什么在驱动它?只有一件事,就一件事:我们已经厌倦了编写废话”。
接着,他写到:
我们不该做这些事:
– 我们不将软件当作万物的中心
– 我们不因自娱自乐而忽视业务与客户
– 我们不自我耽溺于舒适之中
– 我们不忘我们的工作是让客户幸福
并且,我们不要再做这些事:
– 我们不再为了赶进度而把软件搞得一团糟
– 我们不再接受以后再清理代码这种愚蠢的谎话
– 我们不再相信代码越脏乱开发速度就会越快的说法
– 我们不再接受选择错误的方法和错误的需求
– 我们不再允许任何人强迫我们做出不专业的行为
而且,我们会开始做这些事:
– 我们会本着只有走得好才能走得快的信念来完成我们的时间计划
– 我们会通过竭力编写最好的代码来让客户满意
– 我们会通过创造出最好的设计向我们的雇主致敬
– 我们会通过测试一切可以测试的东西来表达对团队的尊重
– 我们会谦逊地优先编写测试
– 我们会不断练习,让我们的手艺越来越好
同时,我们还会铭记这些前人的告诫:
– 只要你觉得值得做的事就要把它做好
– 稳扎稳打无往而不胜
– 三思而后行
– 练习、练习、再练习
由此可见,鲍勃大叔认为:
正是因为我们关心客户,所以才应该追求软件工匠精神。我们应该投入时间和精力,力求做到最好,这样软件从业者才能为雇主创造出最大的价值。
音乐家并不仅仅在舞台上才演奏,击球手也不是只有在赛场上才击球。这些专业的人士需要专业的练习,要研究他们学科的细节,要知道所有的窍门和怪癖,要了解历史、理论和轶事,要懂技术和方法,要知道如何区分好的选择和坏的选择。
而他们知道所有这些,就是因为他们练习、练习、再练习。
软件工匠精神的启示
对于身为程序员的我们,需要自省一下我们是否在追求工匠精神。
为此,我们可以根据行为将开发者分为艺术家、黑客、小白、工匠这四类人。而这四类人之间的区别就在于他们个人如何对“完成”做定义。
艺术家
在艺术家心里,只有他们感觉代码的结构、行为都达到了完美才算是完成。但艺术家根本不考虑要花多少钱,也不考虑能挣到多少钱。艺术家不考虑投资回报率,也不关心要花多长时间。
艺术家唯一关心的,就是最终结果。艺术家会花上好几个小时、好几天、甚至好几周来雕琢一行代码。如果艺术家觉得哪里不太对劲儿,会把整个函数和模块扔进垃圾桶。
艺术家会为了某种难以捉摸的完美目标而不断雕琢、雕琢、雕琢。
黑客
在黑客的心里,只要代码的行为实现了某些个人目标,就算是完成了。黑客也不关注投资回报率,而且黑客压根儿就不关心代码。黑客不考虑创建代码要花的钱多或者钱少,也不关心是否别人也会使用这段代码。
黑客唯一关心的就是让代码跑起来,而且一次就好。
在此之后,黑客就会对这段代码失去兴趣。
小白
小白会认为只要代码运行得“足够好”就算万事大吉了。小白会拼了命地将最开始的编码时间缩短到最短。小白不关注投资回报率,代码未来的成本不在小白的考虑范围内。小白也不关心代码中潜伏了多少隐藏的或细微的缺陷。
小白想要的只是尽一切可能性得到下一个任务。
小白要么被时间计划赶着往前走,要么被时间计划赶着往前走的管理者赶着往前走。
工匠
工匠认为,当投资回报率达到最大时,就算完成了。工匠会尽一切办法让自己成为花钱的好管家,希望确保花出去的每一分钱都能尽其所能,并获得尽可能多的回报。为此,工匠不仅会确保代码正常运行,还会确保软件以最少的额外成本持续正常运行。
因为工匠明白,如果把代码的行为和结构上的缺陷留到以后再修复,大多是非常昂贵的,而现在就消灭它们就非常划算了,故而,工匠会将代码推向非常整洁的实现方式。
尽管如此,当遇到代码结构和行为中某些罕见的缺陷时,工匠有能力识别出,要消灭这些缺陷是否比包容它们的成本更高,工匠这时会使用多年获得的经验进行判断和决策,以便获得最大的投资回报率。
亲爱的小伙伴,你属于哪一类呢?
我希望小伙伴们无论现在属于哪类,都需要保持一个强大的心脏。
只要我们不断努力、刻意练习,总有一天我们可以有超强的核心力量,大声自豪的说:我们不是新时代民工,我们是软件工匠!
作者:李淳
欢迎关注
微信公众号 EBCloud
原创文章,作者:EBCloud,如若转载,请注明出处:https://www.sudun.com/ask/33002.html