软件的开发当然不是白干活,它是一笔交易,有了交易就要思考成本与利益,在我们对自己的软件开发项目进行估算时,肯定要考虑各种各样的资源。这就是本篇阅读笔记所要探讨的内容——预算资源。
什么是预算资源?无论何种设计都至少存在一种稀缺资源需要限量或者预算。有时需要将两种或多种资源联合起来进行优化,但大多数时候都会有一种资源是占据主导地位的,其他资源作为必要条件或者约束,经济学家把这种占据主导地位的资源称为有限资源。但是,本书作者更愿意强调设计者的这种必要行为:有意识的预算(预算资源)。
对资源的预算并不仅仅停留在金钱方面,至少在软件设计这方面绝不这样。我在学习软件过程与管理这门课的时候学习过对项目的估算,想来应该是有一定关联的。现在一个项目的背后往往有数万计的代码支撑,它的体量不再是几十年前几百行代码就可以搞定的了,如此庞大的代码量对应的就是巨额的人力资源消耗与时间消费,因此源代码的行数是资源预算的一个重要指标。当然没有人能够在项目拿到手的时候就能精准预知到最终要写多少行代码,对代码的评定往往是在过程中进行的。因此设计初期的预算大部分应该是依仗功能的复杂度,技术难度进行的。好比一个人只想要能登录注册的网站,另一个则要求高精度人脸识别,内置各种人工智能技术,那这两个的项目的开价显然不是一个水平。
正如上一段所提到的,有些评定指标是在过程中进行的,那不难得出结论:预算资源是可变的。本书作者在说明时,提出过以下情况:技术变化带来的预算变化;设计中期因为需求变更所带来的预算变化等等。但那又如何,预算资源的变化归变化,我们的应对策略是没有多大变动的:明确确认,公开跟踪,严格控制。这些具体的实施过程就要交给管理层的人员去策划了,如项目经理。多拿钱就要多干事嘛。
以上是本人在阅读《设计原本》第10章的感悟。