你的灯还亮吗-无穷无尽的问题

    回顾这两周左右的时间(12.08~12.24),粗略地研究了Symbian图形子系统和Camera相关领域(应用、服务、驱动)。可谓五味杂呈!

    有时候感觉像攀爬绝壁,在对问题了解很少的情况下,动手开始解决问题。通常是迫于外部的压力,无奈却又不得不拿出赴汤蹈火的勇气来;

    有时候是“山外有山”,大的问题被分解为小的子问题,人们的眼界往往局限在当前子问题上,因为当前的子问题比较困难,注意力集中在它上面。随着时间的推移,当前问题的被解决,人们的焦点转移到新的子问题,于是新的子问题被“发现”了。所谓“山外有山”,更确切的说是子问题之外或之后还会又新的子问题,我们可以经常看到子问题的系列发生;

    当然大部分时间还是在徜徉在盘旋的山路上,沿着盘旋的路前进,围绕着一些问题,从外围到相互联系来逐步理解和研究。你会更全面,系统地了解问题中要素及其相互制约的规律,从而发现治“本”的方法。而这是我个人认为最佳的前进节奏。

    有一种观点认为:软件工业是一个Schedule(进度表)驱动的工业。认为问题解决的进度需要服从于Schedule。而Schedule的制订者在考虑中,商业竞争因素远大于设计与实现(制造)的因素,这是不可靠的。而在实际执行过程又不得不因为设计和实现的困难来推迟Schedule。这就是软件工业的项目管理的根本矛盾!

    那么就有一个问题了,可靠的Schedule从哪里来呢?商业竞争因素是必须要考虑的,这是价值的基础;而设计和实现因素也不可或缺,如果不能在预定时间实现,或者根本就实现不了,那就是不现实的,必定要失败。那么Schedule的制定/修改的依据就只能是两者的平衡。换句话说“软件需求-设计实现”平衡决定Schedule的制定和调整。当需求的数量和复杂度增加时,设计实现增加,而且大于线性增加,反之减少需要的数量和复杂度,在设计实现上就大大减少。最后得到的好处是缩短了进入市场的时间,而这会“严重”的影响销售。

    在软件项目实践中,有一些典型的情形,将在后续的文章中来逐步分析。

2008.平安夜

你可能感兴趣的:(随笔)