不要去追逐瀑布:更敏捷的医疗保健

所属分类 :技术

1945年,获得诺贝尔奖的物理学家理查德·费曼成为曼哈顿计划的初级成员,致力于开发世界上第一颗核弹,在洛杉矶阿拉莫斯,研究生费曼,负责计算机当时, “计算机”描述了一项工作:通过手工或使用机械计算器进行计算的人Feynman负责监督和组织执行计算的工作人员,以模拟Feynman计算机使用Marchant计算器的武器的潜在爆发力

做他们的工作在“天才”,他的费曼传记,詹姆斯格莱克将Marchant计算器描述为“几乎与打字机一样大的咔嗒机,能够加,减,乘,并且难以划分多达十位的数字“但随着核试验的日期越来越近,该项目需要准确计算将释放多少能量计算机使用Marchant计算器w工作太慢了,计算小组的另一名研究生斯坦弗兰克尔建议他们尝试新的IBM制表机,这些制表机使用穿孔卡来执行Feynman同意的计算,但IBM机器和维护它们的技术人员来到这里很慢

他在1975年的讲座“Los Alamos From Below”中,Feynman描述了他的解决方案:在这个特殊情况下,我们计算了机器应该做的所有数字步骤 - 将其加倍,然后做到这一点,然后减去那个然后我们计算出来了该程序,但我们没有任何机器来测试它所以我们设置这个房间里的女孩在里面每个人都有一个Marchant但她是乘数,她是加法器,这一个立方体,我们有索引卡,她所做的只是将这个数字立方体并将其发送到下一个我们以这种方式经历了我们的循环直到我们得到了所有的错误嗯,事实证明我们能够做到的速度是w比其他方式快得多这里每个人都做了所有的步骤我们用这个系统加速了IBM机器的预测速度通过在洛斯阿拉莫斯组织人机,好像他们是IBM制表机构一样,Feynman能够匹配IBM机器的速度他的“数字步骤”实际上是一个计算机程序,虽然是一个简单的计算机程序,人们开动嘈杂的计算机器1945年,理查德费曼发现了一些今天仍然存在的东西:生产软件的问题首先是组织人的问题当然,组织在现代软件项目中的人是编写代码的程序员和工程师,而不是执行它的人工计算器但是软件项目的开发模型对其成功的影响与Feynman系统对他的成功一样大

充满计算器的房间自从10月1日Healthcaregov发布困难以来,用于开发它的过程,以及其他大型和麻烦的g被严重批评的这个过程,有时被称为顺序设计过程,更为人所知的是它的绰号:“瀑布模型”虽然他没有发明它,但软件先驱Winston Royce提供了一个最清晰的描述瀑布开发在他的1970年论文“管理大型软件系统的开发”中列出了软件开发的七个步骤:首先要详细描述软件需要做什么,创建详细的规范,分析这些规范,创建程序设计,编写代码,测试和操作Royce以图表的形式呈现这种方法,七个步骤中的每一个都在对角线排列,从左上角的“系统要求”到右下角的“操作”盒子通过弯曲的箭头链接到下一个,意味着整个过程应该从一个步骤连续流动到下一个步骤,就像瀑布一样值得注意的是,immediat在提出这个图表之后,Royce解释说,虽然你可以分析需求并描述你期望软件如何工作,但直到测试阶段,你永远无法确定它将如何实际工作他继续预测许多项目的命运最终会使用这种开发模型,写下如果测试失败,“所需的设计更改可能会如此具有破坏性......开发过程已经恢复到原点,人们可以预期在时间表中会出现高达100%的超限和/或或成本“Royce自己的建议是计划第二次做整件事的可能性在一个叫做”两次做“的章节中,Royce写道”如果有问题的计算机程序是第一次开发的“,那就是如果正在解决的问题是一个新问题,正如Healthcaregov当然的那样,“安排事项,以便最终交付给客户进行操作部署的版本实际上是第二个版本”他建议一次构建软件,了解你做错了什么抛弃第一个草稿,然后再次正确构建它在实践中,瀑布式软件项目实际上从未以这种方式运行;时间和预算限制总是让参与者赌博,初稿将运作良好,并且任何出错的事情都可以动态修复10月24日,CGI联邦高级副总裁谢丽尔坎贝尔在众议院能源委员会作证商业部关于Healthcaregov的问题她说,“CGI Federal,以及许多其他承包商选择开发联邦交易所,在CMS的指导和监督下执行”CMS是医疗保险和医疗补助服务中心,坎贝尔称之为“该项目的系统集成商,或“四分卫”,以及......整个联邦交易所端到端绩效的最终责任方“她随后指出,仅在最后两个地方发生了对完整的Healthcaregov网站的全面测试”九月份的几周“Healthcaregov涉及五十五个不同的承包商,每个承包商都将最终系统的一部分交给CMS进行集成和测试无论这些承包商在内部采用何种开发流程,整个项目都按照瀑布原则运行如果完整系统的第一次测试发生在9月的最后两周,那么Healthcaregov只是罗伊斯所描述的完整瀑布的一半发展过程数百万美国人在此后的几周内的经历,可以预见,并不是一件好事在“时代周刊”的社论中,前总统创新研究员克里斯·约翰逊和前奥巴马为美国首席技术官哈珀·里德推荐“采用现代,增量软件开发实践,就像一个名为敏捷的流行软件开发实践,已经在私营部门使用“但很少,如果有的话,在政府项目中使用敏捷软件开发首先在一个名为敏捷宣言的简短文件中命名,该文件来自于十七人的会议程序员于2001年2月在犹他州雪鸟度假村整个宣言中写道:W e通过这样做并帮助其他人开展软件开发更好的方法通过这项工作,我们开始重视:个人和流程与工具之间的互动通过综合文档工作软件合同谈判中的客户协作响应遵循计划的变更是的,虽然右边的项目有价值,但我们更重视左边的项目这个简洁的陈述试图统一一些所谓的轻量级软件开发方法,这些方法是在20世纪90年代开发的

反对重量级软件开发技术,特别是瀑布模型在实践中,敏捷开发方法强调快速迭代规划,编码和发布软件,与最终用户或客户密切协商例如,一个敏捷版的Healthcaregov项目可能会在开发任何o之前,首先只发布登录组件或“前门”供公众使用找到和购买保险计划的工具在公众与这一小部件进行互动之后,下一部分将被添加随着时间的推移,敏捷的Healthcaregov将逐渐演变为总是受到实际使用和评估的渐进步骤敏感的Healthcaregov可以在几周或几天内测量发布周期,而不是项目的二十二个月时间表

网站的第一个版本纯粹是信息性的,但可以作为一个初始迭代

敏捷开发过程相反,它被10月1日的发布所取代 瀑布式开发过程源于建筑和机械工程等物理行业,其中设计或实施的失败要么成本极高,要么危及生命,要么两者兼而有之,导致在任何项目开始时都非常强调详细的规范但潜在的敏捷软件开发是这样一个事实,即构建软件从根本上不像构建摩天大楼软件是虚构的 - 它是文本和敏捷开发对待软件更像是由开发人员和客户编写的故事,而不是机械工程项目讽刺敏捷开发中所支持的原则是理查德·费曼在曼哈顿计划中与人类计算机一起工作的原则,这是一个巨大的跨国政府运营的技术计划他的想法是在“机器”上运行IBM程序操作Marchant计算器的人封装了所有四个敏捷管理器更有价值的项目:个人和互动,工作软件,协作和应对变化Feynman在洛斯阿拉莫斯的时间,实际上总体上是曼哈顿计划,其特点是对技术挑战的这种灵活反应现在所有关注都集中在关于Healthcaregov的失败,我们可以从Feynman的方法中学到很多东西Rusty Foster是一位住在缅因州的计算机程序员和作家摄影:Andrew Harrer / Bloomberg来自Getty

作者:宇文戎