本节书摘来华章计算机《软件工艺师:专业、务实、自豪》一书中的第1章 ,第1.1节,[英]桑德罗·曼卡索(Sandro Mancuso)著 爱飞翔 译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.1 何谓资深开发者
资深开发者的含义在过去20年一直没有太大变化,这令人遗憾。我们一般还是根据软件开发者的从业时间,而不是根据知识水平来判断他们是不是资深开发者。
十年持续工作积累的经验,和一年期工作重复十次的经验,是大有区别的。十年间,用不同技术为不同公司做各种项目,与在同一家公司和同一批人用同样技术做相同项目,也是不一样的。
这些年我体会到,“资深”这一概念既是变化的又是相对的。为什么说它是变化的呢?因为随着科技进步,客户会购买不同类型的系统。你用传统的瀑布式开发流程(waterfall)做了十五年Clipper开发,并不意味着能在一家采用敏捷开发流程开发移动应用程序的现代公司里谋得高端职位。资深开发者并不是一枚勋章,不是说你在业界待了五年,就可以一直把自己叫作资深开发者了。另外,资深的概念也是相对的。想判断开发者的水平高不高,需要考虑下面这些问题:你打算把这位开发者和谁相比?你指的是他在哪一项技术上的水平?你指的是他在何种工作环境下的水平?
没有绝对的资深开发者和初级开发者之说。某人在大型组织里开发企业级Java程序也许非常在行,但开发JavaScript游戏时又可能相当生疏。某人在协作式的敏捷开发环境中可能非常熟练,但在那种规章制度特别繁琐的大公司里也许就彻底施展不开才华了。