在一般的软体公司,和面对规模的不大的专案,除非你是个对软体开发、工程品质、效率 “真的” 有兴趣,而且学习能力和产出,也可以跟上时程的工程师,或是进入这样的团队。不然你要面对的,可能是以下的环境和调性。
案子不大是什么意思?差不多是程式码低于 LOC 100K (Source lines of code, LOC) 的规模。至于 100K 这个数字是怎么来的,只能说是经验法则吧,差不多就是加班找 bug 会开始不爽、开始思考什么是单元测试的数字。
那么 LOC 100K 以下的案子,究竟有什么造成 “有动力自主成长” 的门槛呢?
大部分的案子,直接使用 “quickstart guide” 的範例,就可以满足功能需求
除了可以满足需求,连带也能达到效能及格门槛 (例如 C10K)。不过也因此在大部分的情况下,专案团队不知道自己做了什么,也不知道 “自己还不知道” 什么事情。讲的更明白一点,就是不知道系统什么时候会坏掉、要怎么弄坏自己的系统。
因为案子都不大,因此即使开发习惯不好,在时程、经费、客户的耐心上,仍然有很大的容错空间
意思是直接砍掉重练的成本,都远低于导入良好开发习惯、方法;当然,也没有了教育训练的痛苦过程,不用去做违背人性的事情。我们都知道改变自己的习惯、学习新东西会让大脑不舒服。
很忙、很卡,但是不会比尝试不熟悉的工作方式不舒服
因此如果你正在低于 LOC 100K 的团队,想要让整个队伍自主成长、动起来,开始学习用更优雅的方式工作,那会是非常困难的。即使是用实质的奖励,或是用考绩威胁 (更何况你可能没这个权力),都不一定能成功。站在主管或是老闆的立场,你弄了一个让大家需要跨过适应期、会有一段时间不舒服的工作方式,能不能获得效益还不知道,又要承担人力流失的风险。