技术开发 频道

以“系统思考”的观点构建敏捷开发架构

【IT168 技术文章】

    “系统思考”源于彼得·圣吉所著的《第五项修炼-学习型组织的艺术与实务》一书,彼得·圣吉所说的第五项修炼指的就是:系统思考,什么是系统思考?系统思考是对影响系统行为的力量和相互关系进行思考的方式。简单的说,就是用系统的、整体的、全局的思维方式而不是细节的、片面的、局部的思维方式去思考解决工作生活中遇到的问题。

    一个系统是一个能够被感觉到的整体。系统元素彼此联系、相互影响。一台计算机是一个系统,一家企业是一个系统,一个社会也是一个系统,小到微观粒子,大到宏观宇宙,都是一个相互影响、彼此联系的一个系统整体,都有其运行的内在规律。面向对象语言所描述的:Everything is Object。我们是否也可以说:Everything is a System?-网络文摘

    正如书中的序言所说:“系统思考是一扇重新看世界的窗”,那么,我们是否可以用“系统思考”的观点来重新审视软件开发过程,从而找一种更为合适的敏捷开发之路呢?

    的确,在贯穿一个软件项目从需求、开发、实施、维护以至终结的整个生命周期中,我们可以很清楚地看到,客户单位、软件开发商、开发程序员、实施维护人员、使用者等等构成了一个相互影响、彼此联系的系统整体,项目的成功并非只取决于某一部分组成人员(尤其是程序员)的努力,这一点相信广大同仁都有同感。

    看到这里,也许很多同仁会认为,这些问题更多是属于项目管理的范畴,应该从项目管理的角度来解决问题,而不是技术、开发架构所能解决的。果真如此吗?

    下面是在项目开发中很普遍的情况:

    l 需求调查阶段:用户提不出明确的需求,“照xx系统做一个就行“。

    l 开发组用调查、参考、揣摩、想象等等手段,完成需求分析和系统设计,和用户交流,用户:“行,先按这个做吧,以后不对的地方再改!”。

    l 于是,开发组开始了或短暂(一般都短不了),或漫长的工作,完成了系统的编码开发。好像一切顺利,胜利在望了!(不,恶梦才刚刚开始。。。)

    l 实施阶段,恶梦真的开始了,用户的需求大爆发、各种各样的、奇怪的要求纷纷出笼,“这不是我们要的功能。。。”,“应该这样这样做。。。”,怎么办,改吧,加班吧。。。,

    While( 用户要求 > 0)

    {

    If(项目组.能力 < 用户要求)

    {

    If(公司不能招人 || 无法招到合适的人)

    项目组。加班

    }

    用户需求 -= 项目组。工作

    If(开发组崩溃)

    Break;

    }

0
相关文章