控制项目规模

作者:大卫·奎克(Dave Quick)

规模指的是软件项目的大小。完成项目需要多长时间、多少人工和资源?要实现哪些功能?质量上有什么要求?难度如何?风险有多大?要遵守哪些约束条件?这些问题的答案界定了项目的规模。软件架构师都喜欢挑战复杂的大型项目。由于回报非常诱人,甚至有人搞“形象工程”,故意夸大规模。殊不知规模越大,项目失败的可能性越大,这一点常让人始料不及。规模扩大一倍,失败的可能性往往会增加十倍。

为什么呢?请看两条前人的经验:

  • 凭直觉判断,只要花两倍的时间或资源,就能完成两倍的工作任务。但是历史告诉我们直觉不可靠,这里不存在简单的线性关系。例如,比较四个人组成的团队和两个人组成的团队,前者花在沟通的时间肯定超过后者的两倍。
  • 估算与准确的科学计算相差甚至远,所以产品特性实现起来常常比预期的要困难。

当然,有些项目正是因为具有一定的规模和复杂性,才有开发的价值。好比一款文本编辑器,必须具备文字输入的功能,否则它压根就不是文字编辑器。那么,有哪些策略可以帮助我们缩小和控制项目的规模吗?

  • 抓住真正的需求。软件项目的交付目标表现为一组需求,需求定义了软件的功能和功能的质量。不能为客户创造价值的需求应该遭到质疑。如果实现一项需求不能为公司带来收益,就应该放弃。
  • 分而治之。寻找机会将大项目分解成独立的小项目。比起由相互依赖的子系统组成的大项目,几个相互独立的小项目更容易管理。
  • 设置优先级。业务环境瞬息万变,大型项目在完工之前,需求会改变多次。虽然有些需求会随业务变化甚至被取消,但是关键需求通常会维持不变。理清需求的优先级,优先实现最关键的需求。
  • 尽快交付。看到演示产品之前,多数客户都不知道自己想要什么。有一幅漫画流传很广,画的是根据客户的描述搭造秋千的过程。漫画展现了不同的人对客户需求的不同理解,这些人把需求想得大复杂,几乎与软件不沾边。最后一格漫画配的文字是:“实际需求原来如此”,画面片上是一条悬挂着半空中的废旧轮胎。让客户试用演示产品,没准会发现更简单的解决方案。首先实现最重要的需求,尽快获得客户的反馈,越快越好。

敏捷方法的提倡者提倡开发“最简单有用的东西”(the simplest thing that could possibly work)。越复杂的架构越难成功实现。缩小项目规模通常会降低架构的复杂性,这是架构师提高成功机率最有效的途径。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值