|||
读了闵应骅发表的“我们从信息技术系统失败中学到了什么?(151123)http://blog.sciencenet.cn/blog-290937-937696.html ”非常受到启发,记录一些心得如下。
他在文中总结道:
纵观这些(指的是IT系统)故障,我们可以看到:
l IT系统的现代化是困难的、昂贵的。
l 数字化医疗保健记录是困难的、昂贵的。
l 银行在依靠不可靠的技术。
l 即使是短暂的股票交易所故障也是昂贵的。
l 即使是短暂的航行旅行故障也是昂贵的。
系统工程的成本预算和控制是一个非常复杂的问题,而对它所能产生的利好也是非常难以准确估算的。或许是受到现实的风气的影响,对于其成本(尤其是风险成本)往往低估,而对其利好往往高估。上述例子里面人(用户)的不确定性带来的成本和风险造成了很到的困扰。
尽管有这些困难,成本也非常昂贵,我们也只能选择向前,不可能退回到原始的技术。这些例子告诉我们,要避免因为无知和冒进而带来的风险。对于系统性的项目,科学地进行评估和决策是前提。
想把多个系统合而为一,常常一个都得不到。因为维护起来非常困难。许多政府部门企图把许多传统系统的功能组合在一起,形成很难理解、实现很差的系统,限制了运行的有效性。
对于系统工程而言,1+1>>2,特别是当其涉及到的业务主要是人时。
IT系统失效,总要找原因,也许是人为因素、草率的编程、不充分的测试、不懂可信性或者不正确的假定,常常是把责任推给无生命、不会说话的技术。
系统工程要系统地去完成,参与者、技术、用户都是系统的一个部分,无论哪一方出了问题都是致命的。隐藏在这三者背后的还有系统所要求的调度、监视、协调等机能,这些是系统的神经和血液。根据我的理解,建立系统工程的过程有从上而下,也有从下而上。前者从一个顶层设计的框架开始,分别建立各个模块。框架控制了系统的结合和不同部门的协同。后者是通过自组织的过程,不断地进化、完善的过程。在进化过程中,自主完成不同部门的结合和协调。显然前者的效率更高,但它需要更多的先期知识储备。任何系统都需要顶层设计和自主进化的结合,才能避免僵化和效率低下的危险。在成熟的系统中,人的培养是最重要的部分,人就相当于系统中的基因,决定了系统的生存和进化。
这篇网络文章是立体式的,提纲挈领,多树结构,列出五堂课,每一堂又列出许多选择,看你想看哪一条。进入那一条,先列简单的解释,然后可以链接到各种详细信息。读者既可以了解面上的大概,又可以深入到一个点了解详情。这显示了立体媒体相对于平面媒体的优越性,对于这种类型的分析总结特别合适。当然,对于逻辑性非常强的科学论文,必须从头到尾仔细阅读,没看懂前面的,你就看不懂后面的,这样的论文还是需要平面媒体。
非常好的总结,这一思路对开发网站结构非常有帮助。
接下来又读了闵应骅发表的“软件开发项目失败的原因(100110)”http://blog.sciencenet.cn/blog-290937-285932.html 其中列举了调查得到的项目失败的原因。可以看到人的不确定因素所带来的影响是巨大的。
交付日期影响了开发过程 92.9%
项目难度被低估 81.4%
风险在项目中未予重新评估、控制和管理 75.7%
未给夜班加班费 74.3%
交付决定未带适当的需求信息 72.9%
项目成员合作不愉快 72.9%
用户未参与项目计划预计 71.4%
风险未列入项目计划中 70.0%
更改控制未有效管理和处理 70.0%
用户有不现实的预期 68.6%
过程没有在每一步完成时进行评估 67.1%
项目开发方法不适当 65.7%
过紧的计划影响组员积极性 65.7%
项目进行中问题规模有变化 64.3%
计划对组员生命有负面影响 62.9%
为了完成任务,项目组有不适当人员加入 61.4%
为了赶任务,新增人员太晚 61.4%
用户为需求收集的时间太少 60.0%
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-24 01:31
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社