极限编程与极限生活
2019-12-20
来源: 软件乌托邦 伍斌
【太长不读版】
ThoughtWorks团队在进行软件开发时,一般不使用Scrum和Kanban,而是使用“极限编程”(Extreme Programming)方法。“把通常的做法推进到极致”,这个来自极限编程的准则,能解决程序员在职场和生活中所面临的种种问题,并且能把其在职场和生活中的体验带到极致。
要想把事情做到极致,需要“戒贪、专注和反馈”的心态。
【完整版】
“在不同公司做技术的感受有何不同?”
“你为何搞编程道场?”
“靠技术吃饭在职场到底能走多远?”
“工程师向往的到底是什么样的文化?”
“如果职业生涯再来一遍,你会怎么规划?”
“一些企业开始‘优化’35岁以上的员工,技术人如何应对这种35岁现象的挑战?”
最近我在思考身边朋友所提出的上述问题。
回首工作过的24年,我最初从程序员开始做起,后来转为测试工程师,又转为项目经理,最后转为现在的软件开发咨询师,先后经历了4个角色。所服务的公司从国企开始,转为若干外企和私企,最后又转为现在的外企,先后经历了6家公司。
现在所从事的软件开发咨询工作,虽然不再编写大量的代码,但所涉及的内容都是与软件开发技术有关,所以还算是技术人一枚。如今,这枚技术人已经47岁,超过上面提到的35岁一轮了。
我在2016年拿到Scrum Master和PO的认证后,就去ThoughtWorks的印度办公室做ThoughtWorks University的新讲师,辅导公司新入职的应届毕业生做软件开发项目。其间我问指导我们这些新讲师的老讲师Susie Marshall:“在ThoughtWorks做开发,是否有Scrum Master?”
她说:“没有。在ThoughtWorks开发团队中,任何人都可以认领Scrum Master应做的事情。咱们更像是在做极限编程。”
极限编程是美国程序员Kent Beck在1999年提出的一种软件开发方法。它的核心理念就是“把通常的软件开发的做法推进到极致”,以便让软件开发能够达到低成本、低缺陷、高产出、高回报的效果。这也是这种方法名字中“极限”的由来。
根据24年的实践经验,我领悟到,“把通常的做法推进到极致”这条来自极限编程的准则,不仅帮助很多ThoughtWorker实现了"追求软件卓越”,比如推出了第一个持续集成工具Cruise Control,并撰写了《持续集成》这本经典之作,还能解决程序员在职场和生活中所面临的上述问题,并且能把其在职场和生活中的体验带到极致。
这种方法把什么做到极限了呢?比如,在软件开发中,测试是一个通常的做法,一般都会在程序员编写完代码后,由测试工程师来进行测试。Beck把测试这个通常的做法往前推,即在程序员编写代码前,先编写单元测试代码,然后再编写生产代码,让测试运行通过。这样就把测试推进到极致,能让程序员通过自动化单元测试更快发现自己的代码是否有功能性缺陷。
再比如,在软件开发中,代码审查也是一个通常的做法,一般会在程序员编写完代码后,由一两位资深程序员来审议代码的质量。Beck把代码审查这个做法再往前推,即在程序员编写代码前,再另外找一个程序员和他结对编程,在编写代码的过程中随时做代码审查。两人在结对编程过程中,还能互换角色,相互做代码审查。这样就把代码审查推进到极致,能让程序员在结对编程中更快地发现自己的代码是否有问题。
再比如,软件开发一般需要把一个大系统分解为若干模块,每个模块分别开发。等各个模块完成代码编写后,再做集成测试。
免责声明:
1、IT项目管理界发布的所有资讯与文章是出于为业界传递更多信息之目的,并不意味着赞同其观点或证实其描述。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请浏览者仅作参考,并请自行核实相关内容。
2、本站部分内容转载于其他网站和媒体,版权归原作者或原发布媒体所有。如文章涉及版权等问题,请联系本站,我们将在两个工作日内进行删除或修改处理。敬请谅解!
-
延伸阅读:
-