无论你在编织东西还是在编程,快速进行只会让你慢下来。至少这是Jeffrey Ventrella的观点。在《让编程慢下来》(原文,译文)一文中,这名技术作者主张,如果软件开发者想要快速的结果,他们就需要慢下来。
“慢一些,孩子。这样你就能更快速地完成工作。” —Jeffrey Ventrella的父亲
Ventrella说,年轻的开发者经常认为,程序员是项目中可替换的部件。他们信奉,开发组没有(也没有必要)就角色进行清晰定位,有能力的人可以改动任何地方。背后的想法,不是太多的厨师会破坏肉汤,而是从众效应【注1】在起着作用,像GitHub之类的有魔力的工具将支持我们合并任意规模代码里的任意数量的修改。
Ventrella极度不认同这种想法。精心规划的设计过程,是软件项目成功的一个基础组成部分。像大教堂或票房大片之类的大项目,只能通过真正的协作性团队合作才能成功完成。
软件的不和谐
Ventrella说,快节奏团队里的、慢程序员就像心律紊乱。他回忆起,同事的机关枪式迭代节奏,扰乱了他自己的慢节奏。
Ventrella说,软件项目中的工作流程是有机结合在一起的,每个单独的任务都有自己的规模和时间表。但是所有的任务都有一个共通的地方。每个任务都是从反复试错、测试和临时的解决方案开始的,只是缓慢开始形成。如果每个程序员都想来掺和,比如,在编程生态系统里没有平衡的责任,那么Ventrella认为不可能成功地完成项目。
“慢编程”运动
起源于上世纪80年代快餐的反应。花时间慢慢烹饪,你将对结果更加满意。数十年过去了,慢的方式已经传播到了日常生活和工作的各个环节——它们中间就有IT行业。慢编程哲学崇尚有质量的代码和软件测试、精心设计和较长的开发周期。
同时,慢的创业公司可调整目标为,致力于“把事情搞定”的技术氛围,对于引起倦怠的因素要提高警觉。名为“International Institute of Not Doing Much”的网站呼吁工人“慢下来,少做事”,慢编程不同于前者提出来的主张,因为慢编程信奉 IT行业在慢下来时可以做更多事情。
Ventrella说,硅谷的主要问题在于,那里的公司不关心这种东西。反对开发工作的‘自然’过程,现代编程团队的动力受到了金钱的支配。最重要的是,新技术、工具的神化,因受到扎克伯格世界的驱使,而产生了宗教性的强迫思维。
位于旧金山湾区的风险投资所支持的软件开发,是狂热的、快速的。金钱的动力把不合理的需求施加到了流程上,而流程本应***符合自然的、设计演化所需的生物钟节奏。快速不总是更好的。实际上,慢有时候意味着快——记住这一点非常重要【注2】。 ——JJ Ventrella
解决方案?IT需要反向运动,一种来自于IT内部的、在开发组内心恢复自然节奏的推动力。因为程序员不仅仅是敲出代码。工程软件的行为不只是像砌砖头那样、把一排排软件锤进电脑。它常常需要创新过程,而这发生在开发者的思维里——它同样只能出现在失眠的夜晚或修剪草坪的时候。
可持续发展是21世纪的重要观念,软件行业也不例外。IT公司需要认真思考它们的结局、以及他们想怎样赢得比赛。快速冒进,还是稳扎稳打?
- 注1:从众效应或乐队花车效应(Bandwagon effect)是指人们受到多数人一致性思想或行动的影响,而跟从大众的思想或行为,常被称为“羊群效应”。从众效应是诉诸群众谬误的基础。http://zh.wikipedia.org/wiki/%E5%BE%9E%E7%9C%BE%E6%95%88%E6%87%89
- 注2:这里原文是“when all is said and done”:said when you are about to tell someone the most important fact they should remember in a situation。例句:When all is said and done, you can only do your best. 参考地址:http://dictionary.cambridge.org/dictionary/british/when-all-is-said-and-done