Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1932566
  • 博文数量: 699
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 4970
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-15 13:45
文章分类

全部博文(699)

文章存档

2011年(1)

2008年(698)

我的朋友

分类:

2008-10-15 13:48:11

  今天大部份软件工程项目失败的主要原因是我们采用40年前的软件开发模式, 30年前的计算机应用思维。从业人员采用过时的方法,落后的思维,所以大部份项目未能为业主带来预期的效益,满足业主的要求。
 
  40年前计算机开始进入商业用途之初期,没有任何开发体系可以应用,所以从业人员在表格上整理逻辑,编写程序,及对程序进行Debugging,然后移交,今天从业人员在脑中开展系统的逻辑,进行程序编写,过去的Debug变成今天的Fix(修改),成为边想,边做,边改的三边模式来进行软件开发。30年前软件的主要应用目的是运营自动化,提升企业部门的执行效率,今天大部份从业人员还是以自动化为软件开发的主要目标。软件工程失败的主要原因不是技术应用的问题,是从业人员未能把握客户思维,交付客户期盼的交付物,导致项目在开发过程中不断修改和返工,为项目带来延误和超支。
 
  往往我们把客户的期盼当作系统的功能需求,这是一个错误的观念。要知道客户的期盼(我们口中所说的客户需求)是要做什么,这是客户投资的最终目标。但系统或功能需求却是该如何做,是技术应用的手段。知道“要做什么”,才知道“该如何做”。我们未能把握客户的期盼(要做什么),如何能够提供高效的技术手段来达到目的呢!所谓“条条大道通罗马”,只要知道了目标,我们有很多选择采用不同的手段来达到。过去的问题在于我们把目标当成手段来处理,一步一摸索,在过程中不断开路搭桥,纵然最终能够抵达目的地,但这种执行模式能不浪费时间,精力和金钱吗!
 
  今天的软件工程的终极要求与过去数十年软件工程的终极要求有很大的差异。过去自动化时代的软件工程主要是技术的应用,提升运营效率,以技术的应用方法为项目的最终目标。今天的信息化软件工程必须考虑和提供业主希望获得的投资价值,着重于科技如何能够带出相对的投资价值和运营效益为目的。可惜我们还是利用过去数十年前的技术开发思维和应用方法来进行项目交付,未能有效地面对项目属性和交付目的的转变做出相应的调整。让项目中大部份的工作量停留在编程,,修改和返工上。我们采用过时的方法,落后的思维来面对今天软件工程的挑战,如何能够在软件工程方面带出创新,引领未来呢?
 
  计算机是逻辑学
 
  “四步创新软件开发”的要旨在于摆脱过去软件工程对需求的重视。从逻辑的思维去实现最终目标。软件工程项目多基于规范性的逻辑应用,任何软件工程项目的最终交付都必须包含两个部分,一个是业务逻辑(即业务应用流程)、另一个是系统逻辑(即程序执行流程)。业务逻辑是任何系统在最终实际的业务层面所体现出的逻辑,就是“要做什么”;而系统逻辑是指系统为了满足业务上的能力而在系统层面所体现出的逻辑,就是“该如何做”。无论是业务逻辑还是系统逻辑,它们存在的目的都是为了交付最终的价值或达到项目的目标。所以在没有明确相关的业务逻辑和系统逻辑时,要想建立出交付价值的相关逻辑是十分复杂的。一般来说,业务逻辑是范围所处的层面,而系统逻辑是功能需求所处的层面。
 
  为了明确主要的构思,我们不以软件工程项目为例来带出相关的构思,而是以其它工程项目为例来说明这些构思。这样做是为了让读者可以摆脱软件工程中的原有思维,以一个新的角度来看待软件项目。不知大家是否还记得,在1.2中所提到的“工匠与专家”的故事,这里我们将会以一个内部装潢设计专家的角度来说明如何利用一个新的房间为例,带出四部开发方法的主要构思。
 
  假设我们要利用一个空房间,使用的目的可能是作为办公室、会议室、书房或者其他的用途。那么在决定了这个最终目的后,便需要决定房间中所需的家具和布置,房间可以是空房间、也可以是有些家具的房间。
 
  所以,在知道最终用途后,我们(扮演了装潢设计师)才会明确有哪些家具,这些家具便是交付物的定义。也许我们明确知道需要一张桌子,不管是从家具店购买、还是找工匠打做,我们一定要依据最终交付物定义来思考。更明确的说,知道一张桌子使用的最终目的,是用来放置计算机、放置一个咖啡器、用来书写、或者是用来开会还是装饰,更甚者是可以放置计算机、可以办公、可以放置一个咖啡器的办公桌。其中一样或多样都可以是说明需要一张桌子的最终目的。这是我们在理解了这些最终目的后在价值层面思考后获得的最终交付物说明,这些最终目的构成了说明交付物的依据。而思考的方法就是PCDM。
 
  最终的目的已经构成最终交付物的主要构思,加上应用的地域和环境,将会直接影响最终交付物的外观和大小。例如,试想我们为一个仅有15平米的办公室,进行装修布局。客户明确指出了,在该办公室中可以有3个经理办公、同时可以满足某一经理爱喝咖啡的习惯、还需满足另外一个经理需要经常与其他员工在办公室见面和会谈的工作要求。那么,这些目的和应用的环境(15平米)将会影响到交付物(办公桌子和椅子)的外观。
 
  有了需要一张桌子的最终目的和建立的交付物定义,接下来我们要考虑的便是这件交付物的外观(Appearance),是圆的、方的、长方形的、椭圆形的、折合型的,需要抽屉的,需要附加柜的(如放置咖啡器),桌腿是三叉脚的、四角的,是需要两边竖立或交叉对立支撑的(如需要经常面见员工)。这些外观的设计直接影响交付物的外表。另外,考虑外观的时候需要考虑拜访的应用环境(如15平米),桌子是放在中央还是角落、或是平常依附角落用的时候放到中央。这些也会影响交付物的外观。该阶段我们可以称为交付物的外观阶段,如一张桌子到底是什么样的。
 
  当明确了最终目的和外观后,最后进入建造或采购过程的时候才考虑所采用的组合技术和材料,包括桌子的组合是透过钉子、螺丝结合或是焊接。这些技术的应用将会影响交付物的质量和投资成本。而不同的技术仍然可以打造同样的结果,如钉子组合或螺丝结合(当然是木螺丝)都可以组合不同的交付组件。该阶段也被称为建造阶段(Construct),而该阶段的成功归功于前期交付物和交付物的外观获得客户的认可,这样在建造过程中将会把客户的需求变更降到最低,甚至消失。
 
  当然,我们需要把交付物(如桌子)与实际的应用环境(如15平米的经理办公室)相结合,看看是否能够演绎出预期的最终目的,如是否满足了某一经理及需要摆置电脑又需要摆置咖啡器的目的。该阶段称为演绎(Demonstrate)阶段,它可以让交付物与环境结合成一个完整的验收过程。环境包括应用的部门、人员、培训、硬件配置等。
 
  四步创新软件开发
 

[1]        

【责编:huangchunmei】

--------------------next---------------------

阅读(450) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~