本文面向的是企业IT用户(尤其是每年要投入数以百计的人力,开发维护十几个甚至几十个上百个上不同系统的企业),在组织范围内的计划和需求消耗太多的问题。而对于只有十几个人的单一产品团队来说,也许对这部分不用做特别考虑。
主要问题是:
1)你的企业是否花了大量的人力和时间在计划上?
2)是否有大量的需求处于等待开发状态?
3)是否有很高比例的需求在最初定义好之后需要重复再修改?
4)开发出来的需求是否有很高比例其实没有被最终用户所使用?
如果你的企业存在这样的情况,请继续阅读。
我们来看一个典型的项目开发声明周期模型:
虽然很多项目已经在采用Agile/Scrum的方法进行开发,但在一头(从业务想法到开发团队可执行的需求)一尾(从代码完成到上线)还是典型的瀑布式。
IT面对的问题是试图用瀑布模型来尽早确定软件的功能(Scope),发布日期(Schedule)和资源/成本(Cost)。但对软件来说,这个三角形的三边总是处于变化过程中(尤其是功能和日期),很难在一开始确定下来,而是始终处于动态变化过程中。但对企业管理而言,IT又不能把所有的计划都推后,不作出任何承诺。
这里的重点是针对长期战略性、中期提供附加值、和短期不可预测的需求采取不同的计划策略。
根据HP固件系统的例子:
还是用健身作比喻,如何你希望在新年的第一天开始做个详尽的计划,规定每一天要健身多长时间,做几组规定动作,可能要不了多久你就会发现很不现实。更好的做法是长期来讲你要达成什么目标,是力量训练、跑10KM,还是有氧运动,而且要预留出足够让自己可以灵活时间。这个是长期的战略目标,中短期可以结合其他类型的训练。这样才能保证不是花了很长时间做计划,然后发现不可执行。
再来回顾一下我们的DevOps实施框架图:
我们下一讲会关注在 API / 微服务的理解上。
END