作者:乔治·马拉米迪斯(GeorgeMalamidis)
我们对项目所做的每一个决策——无论是与技术、过程,还是与人相关——都可以看作一种投资形式。投资是和成本联系在一起的,成本并非单纯只有货币一种形式。之所以进行投资,是相信它们最终能带来回报。老板发员工薪水,是期望此项投资将会对他们的事业产生积极的影响。开发团队决定遵循某种专门的开发方法学,是期望它能够给团队带来更高的生产力。选择投入一个月的时间重新设计应用程序的物理架构,是相信这将有利于长期运维。
回报率(rate of return),也称为投资回报率(Return On Investment,ROI),是衡量投资是否成功的指标之一。举例来说,“我们预计,投入更多时间用于编写测试,则下一个产品发布版本中的缺陷将会少很多”。在这个例子中,投资成本是用于编写测试的时间。所获得的,是将来在修复缺陷上可以节省下来的时间,以及提高软件体验后的客户满意度。假设目前一周中的40个工作小时,有10个小时被用于修复缺陷。如果每周投入4个小时用于测试,预计可以把用于修复缺陷的时候减少到每周2小时,这样将可以有效节省8小时投入到其他地方。从修复缺陷中省下的8小时,除于用于测试的4小时,预期的设资回报率为200%。
虽然不必用经济收益来衡量一切事物,但投资总应该产生增值。在当前项目中,如果上市时间对投资方是至关重要的,那么,由于需要经历漫长的前期设计(upfront design)阶段,获取“无懈可击的(bulletproof)架构”也许就不如生产“可迅速发布的alpha版本”,后者能够提供更有吸引力的投资回报率。只要迅速发布可用版本,我们就能根据用户反应进行适当调整,常握对未来方向发展和项目成功的关键决定因素。但另一个方面,由于没有进行整体的规划,在需求上升时,可能无法很容易地对应用进行伸缩扩展,这样又可能要为之付出相应代价。通过对比成本和预期利润,可以算出每个决策选项的投资回报率,将ROI作为多个决策选项之间的评选基准。
将架构决策视为投资,并将相关的回报率也一并考虑在内。在判断每个决策选项是否务实(pragmatic)或恰当时,这种方法很有用。