Perl 语言的发明人 Larry Wall 一个经典叙述:优秀程序员应该有三大美德:懒惰、急躁和傲慢(Laziness, Impatience and hubris)。
有人甚至为此专门打造了一个三大美德的网站,阐释这个初看起来匪夷所思的说法。
一、懒惰,是一种品质,它会使你花很大力气去规避过度的精力消耗,敦促你写出节省体力的程序,别人也能很好地利用,你还会为此写出完善的文档,以免别人来问问题。
——不能用行动上的“勤奋”代替思想上的懒惰,如:加班、辛苦之类,通过及时反思总结,避免怠惰。
——思想上的勤奋:做有价值的事情,有价值包括“不做”什么也很重要,通过“不做”节省时间和成本,而去做高价值的,这也是有价值的。
——致力于减少项目总的工作量,提升效率,减少bug和用户投诉,杜绝故障,一次性做对,举一反三解决一类共性问题
急躁,是计算机偷懒时,你会感到的一种愤怒。它会促使你写出超越预期的程序,而不只是响应需求。
——不做重复性的工作,通过程序自动化等有创意的解决
——削峰填谷,考虑非功能性需求
——可扩展性强,感知并适应客户变化,知道为什么做
傲慢,极度自信,写出别人(维护、客户)挑不出毛病的程序。
——是超越客户的,不让客户挑剔,碾压客户,通过专业影响并成就客户。
——不是简单的增删改查,copy粘贴,而是体现数据结构和算法、设计模式、模型等,参加公司高手大赛、挖掘专利等
——结构化、有逻辑的及时交付:需求、设计、代码、代码review、自测报告、上线环境清单、上线总结等。
对应《unlocking agility》的成长性思维,自信、承担,不怕犯错,不知道你是否感受到,程序员独有的幽默和透露出的那种骄傲:我做的东西就应该是最好的。
之所以要从 Larry Wall 的这段话开启“自动化”这个模块,因为只要一说到自动化,我就会情不自禁地联想到“偷懒”这个词。是的,我们程序员的工作,本质上就是打造各种自动化的工具,让人们从各种繁复的工作中解脱出来,让人有机会“偷懒”。
或许你不能理解我这里所说的“项目成功”。在我看来,做有价值的事是重要的,这里面的有价值,不仅仅是“做”了什么,通过“不做”节省时间和成本也是有价值的。我的两个同事阻止了客户的浪费,所以,我将这个项目视为成功。