记得有一本书—《思考,快与慢》感叹作者对人类思维方式给出了简洁而深邃的阐述之际,突然想到软件工程(此处软件工程应作动词理解)何尝不是如此?
有可以快速获得结果的手段和方式,例如,应用某个算法,变更某种架构,上线某种工具等等—可以称之为技术类实践。这类实践往往目的明确,要解决的问题边界清晰、独立程度较高,受其他干扰(例如人为因素)因素影响较小等。实践者在应用过程中几乎不需要担心不能解决问题或不能达到预期效果。
但是,在软件研发过程中还有一些问题,结果是多种错综复杂因素(或者本身就是多种元素组合)所致,例如,质量问题、成本问题等。这同样需要通过一些软件工程实践来解决—即管理类实践。这类实践尽管有案例借鉴,但是往往不能产生立马见效之效果,往往需要实践者自己的努力才可能实现预期效果。
显然,一个软件项目中,上述两类实践可以解决的问题都存在,因此,两类实践缺一不可。然而,更值得注意的误判可能是以技术类实践的预期来要求管理类实践也同样可以快速起效—这和《思考,快与慢》中用一种思维方式来思考解决另外一类问题类似,it never works.
坐地铁上的一点胡思乱想。