· 在大型企业内部, 软件功能往往由行政体系来决定。
· 老板比一般技术人员更懂市场和竞争。
· 软件团队尚未成熟, 不懂得如何独立地进行需求分析, 不懂得如何对行政领导有技巧地说“不”,也不知道如何说服利益相关者 (stake-holder) 同意并支持正确的项目方向。既然团队成员不能驱动, 那只能靠外力来驱动了。
这种模式当然也有它的问题:
· 领导对许多技术细节是外行,
· 领导未必懂得软件项目的管理, 领导的权威影响了***的交流和创造
· 领导最擅长的管理方式是行政命令, 这未必能管好软件团队, 或任何需要创造力的团队
· 领导的精力有限, 当领导很忙的时候, 团队怎么办?
渐进交付的流程 (Evolutionary Delivery)
这个流程是 Steve McConnell 在1996 年总结的,但是它其实已经很接近现在大家谈论的比较多的迭代式开发流程。在系统的主要需求和架构明确之后, 软件团队进入了一个不断变化的evolution 循环中:
[开发 -> 发布 -> 听取反馈 -> 根据反馈做改进 ]