软件开发管理有四个历史阶段。
一、作坊式管理阶段。
这个阶段的对象主要是小型软件。从管理上来说,没有成型的管理方法。项目的计划和执行主要靠经验。项目的成功或失败取决于人员的经验。
这个阶段管理的动力之源是头狼,即创始人或发起人。头狼的认知和行动力是项目成功的关键。
二、瀑布式管理阶段
随着软件规模和复杂度的增加,作坊式管理已然失效。项目延期,达不到要求等现象频出,软件危机一词出现。
瀑布模式应运而生。软件开发分为明确的阶段stage:需求、计划、设计、编码、测试、部署等。这种模式中,每一层次的实施和验证又呈现出一种V模型。在每一阶段结束时,有一个明确的checklist作为gate。瀑布模式是一种stage-gate模型,每个阶段之间有traceability,呈现左右闭环的V模型。
瀑布模式的动力之源是结构化的力量。结构化是人脑的外延。人脑只善于处理简单、短时、单线程的信息。通过把处理复杂信息的结构化从人脑中拿出来,提升了人脑的能力。
三、敏捷软件开发
瀑布模式能够管理大型软件开发。但随着市场由卖方市场变为买方市场,客户对多样性和响应速度的要求越来越高,同时竞争对手越来越厉害。瀑布模式无法应对市场对柔性交付的要求。
敏捷模式诞生。
敏捷的动力之源是社会化,通过社会化释放人的潜能,比如认领而不是分配任务、改善的责任下沉等。
四、后敏捷时代
敏捷时代混合了头狼、结构化和社会化(群狼)的力量,是迄今为止较先进的一种管理方法。
然而还有一个重要问题解决的不是很好,那就是:动机。因为动机是决定人行为的最重要因素。
裂变式创业、合弄制等都是这方面的有益探索。
结论:
从WTF到敏捷,规范化、制度化、结构化是个必经阶段。当然,可以同时考虑采纳一些敏捷的元素,这是后发制人的便利之处。而最根本的改变一定要触及动机,动机是变革的天花板。