那位兄弟是项目负责人,请问你们习惯用那种开发模型?(100分)

  • 主题发起人 主题发起人 listener
  • 开始时间 开始时间
我不是项目负责人,但我建议你采用XP(极端编程),我认为最适合中国程序员的开发模型.
 
大型MIS软件开发的几点体会
北京开思软件技术有限公司 石宏峰
大型MIS软件的开发工作是一项复杂而艰巨的系统工程,它涉及到软件工程、数据库设
计、应用业务、项目
控制、人员管理和计算机技术等多种知识和经验,因此任何一项大型MIS软件的开发成
功都是一件极不容易
的事。虽然当今的软件工程理论和数据库设计理论为我们提供了多种系统开发的方法
和手段,但在实际开
发工作中经常遇到的情况却是:做出来的系统不符合要求,需要大量修改;开发工作进
度难以控制,工期一拖
再拖;甚至有些通过了验收的项目也难逃在实际使用过程中搁浅而被束之高阁的厄
运。在这里笔者姑且不
对造成这种情况的原因和当前一些项目验收中存在的问题进行分析,而是就避免这些
问题发生的一些做法
与从事软件开发工作的同行进行一下探讨。
在多年的开发工作中,笔者主持过许多类型管理系统的设计、开发和项目管理工作,包
括:学籍和考试管
理、汽车租赁管理、图书馆管理、公路管理、MRPⅡ和ERP管理等。在这些项目的系统
调研、总体设计、模
块设计、编程、测试和项目管理工作中,我深切体会到,要想高效率、高质量地完成项
目开发工作,应努力
做好下面的几项工作。
一、制定开发规范
MIS软件,特别是大型的MIS软件是一项浩大的工程,需要十几个人、几十个人甚至几百
个人合作开发几个
月、十几个月甚至几年。要保证系统的一协调性、统性和连续性,就需要在开发之前
制定严格、详细的开
发规范。
开发规范的内容主要包括:系统设计规范、程序开发规范和项目管理规范等。系统设
计规范规定字段、数
据库、程序和文档的命名规则,应用界面的标准和风格,各类报表的输出格式等。程序
开发规范对应用程序
进行分类,如可将程序分成代码维护类、业务处理类、业务查询类和统计报表类等。
并给出各类应用程序
的标准程序流程,有必要时可编制出标准程序。项目管理规范规定项目组中各类开发
人员的职责和权力,开
发过程中各类问题(如设计问题、程序问题等)的处理规范和修改规则,开发工作的总
体进度安排和奖惩措
施等。
开发规范的制定需要花费一定的时间和精力,但是"磨刀不误砍柴功",它相当于把今后
开发过程中开发人员
都要遇到的问题提前做了一个考虑。有了开发规范,在后续的开发过程中,设计人员就
不必每次考虑如何为
一个字段命名,编程人员也不必去想某个程序的结构和布局应当怎样,测试人员也有了
判断程序对错的标
准。
开发规范在项目开发工作中起着事前约定的作用,需要所有开发人员共同遵守。它约
束开发人员的行为和
设计、编程风格,使不同子系统和模块的设计、编程人员达成默契,以便形成整个系统
的和谐步调和统一风
格,也便于今后的系统维护和扩展工作。
二、合理的人员构成与管理
开发项目的成功需要有一个好的开发组。高效的开发小组要有一个合理的人员构成。
一般开发组应包括项
目负责人、系统分析员、系统设计员、程序员和测试人员等。开发组的人员要分层次
,下层人员要服从上
层人员的领导。
项目组要有一个项目负责人,他对整个项目有控制和决定权,对项目开发的成败负责。
软件开发中遇到问题
的答案往往不止一个,因此需要有人对这些问题有决定权,避免扯皮。大型项目的负责
人应有丰富的项目管
理经验和数据库设计经验,另外还需对用户的实际业务有较全面和深入的理解。
系统分析员协助项目负责人进行系统分析工作,并负责某一方面的具体设计工作;系统
设计员帮助系统分析
员进行模块设计;程序员按照模块设计进行编程;测试人员直接受项目负责人领导,为
整个项目的质量把
关。所有项目组人员都应对用户的实际业务有不同程度的了解,这样有助于系统的开
发工作和系统最后的
成功。
三、严格控制开发进度
项目进度管理是软件开发中最难以做好的一项工作。编程工作本身是一个难以量化的
工作,再加上开发过
程中对设计的修改等因素,使得项目开发工作经常不能按预计的时间完成。
为了管理好项目进度,首先要制定一个可行的项目进度计划。一开始,项目进度计划只
能根据项目的内容、
工作量和参加人员进行大致地估算,包括系统分析和设计时间,编程、测试时间和文档
制作时间,估算时应
根据业务复杂程度加入一些缓冲时间。系统分析、设计完成后,根据程序清单可估算
出每个程序的编程时
间(根据程序类型和复杂程度),并在此基础上估算这种程序量下的测试、文档制作和
缓冲时间,经过这样估
算再做出的进度计划已经可以做到相当准确和细致了。实际上项目进度计划是一个由
粗到细且不断调整的
计划。
每周要将项目进度情况与项目进度计划进行对比。对于拖延的工作如无充份理由,则
应督促有关人员加班
或提高工作效率赶上进度;如有正常理由,在无法追回的情况下可以修改进度计划,申
请延期。
项目进度管理一定要细致和严格,像设计、编程这种难以量化的工作是很难笼统地去
控制进度的。
四、系统设计要超越业务
软件设计的好坏直接关系到项目开发的成败。在设计之前一定要对用户的业务做系统
的调研,深入、全面
地了解用户业务。在调查时要注意以下几点:
1.有时某个部门的业务由几个业务人员分管,调查时不能只听一个人的叙述。
2.要详细了解一个部门与其他业务部门的业务关系。
3.要了解当前业务的难点,在设计时着重解决。
4.用户不可能一次将所有业务描述清楚,所以调查要由浅入深,分多次进行。
5.调研要以我为主,围绕主题提出问题,不要陷入用户的琐碎业务中。
6.要注意收集原始凭证、报表和文字资料。
在根据调研结果做设计的时候,不要过于迷信一些教科书上介绍的数据库设计方法。
在多年的实践中,我发
现许多方法不但没用而且还增加工作量,在业务关系比较复杂的情况下,一些数据库设
计方法是根本不能推
导出设计结果的。而且直接根据收集资料和现行业务去推导数据库结构的做法也是不
可取的。这是因为:
1.用户描述的业务可能不是一个好的管理方法。
2.用户描述的各部门间的业务数据传递仍是手工做法。
3.用户描述的业务不是规律性的业务流程,因此会经常发生改变。
4.用户描述的业务不适合于用计算机去实现。
5.用户的输出表格为固定的内容,不能适应业务的变化和扩展。
所以在系统设计时要超越当前的业务,抽象出业务中的管理思想和规律性的东西。为
了适应
计算机管理,有时也要改变用户的业务流程,这时要与用户协商,让其理解这种改变的
意义。另
外设计还应留有可扩展的余地。
五、程序设计要实用
MIS软件最终的目的是要用户使用。因此在程序设计时必须立足于操作简单、实用,并
真正能为用户解决实
际的业务问题。不能因为怕编程麻烦而将程序功能设计得过于简陋。
为方便用户使用,应用程序中起码应具有下面这些功能:
1.提示功能。屏幕上的代码信息(如客户代码、科目代码等)要有提示操作,使用户不
必记忆很多的代码。
2.操作确认。对于一些不可恢复的操作(如记录删除等)应有操作确认,避免误操作。
3.数据校验。对于一些有限制条件的输入信息,可以自动校验其正确性,避免错误数据
进入系统。
4.错误恢复。用户无意中进行了错误操作,应能有相应的处理程序挽回错误。
5.缺省赋值。对于一些常用信息可以设置缺省值,使用户不必每次都输入这些信息。
6.记录复制。用户可以复制一条或多条已存在的记录,并可修改复制结果,形成新的记
录。
六、测 试
测试是保证程序质量的一项重要工作。但测试只能证明程序有错,而不能证明程序无
错。所以任何软件系
统都不能保证内部没有错误。为了确保软件系统的安全与可靠性,一方面要加大测试
力度,另一方面要抓住
测试重点。
从测试的角度来说,可将MIS软件的程序分为两类:修改数据库类和信息输出类。前一
类主要是业务处理程
序,是测试重点。对于前一类程序还可以进一步细分为:基础数据采集程序和数据处理
统计程序。数据采集
程序主要记录原始凭证信息(如发票、凭证、入/出库单等),数据处理统计程序是对数
据采集程序记录下来
的数据继续做加工。这两类程序中基础数据采集程序又是测试的重点。
以上是笔者在以往的MIS软件开发过程中总结出的几点经验,希望能给从事相关工作的
同行们提供一点帮
助。
 
看公司大小定
看项目大小定
看人员素质定
看老板素质定
看CODER性格定
。。。
 
非程序员15期有一片文章
关于cmm,rup,xp
可以看看
 
其实这个问题问的鲁莽了,这是我急功近利的表现。
为什么人家介绍的经验到了我们这就不管用了?
因为我们的基础没扎好,整天在研究如何写好代码,可是却忘了学会如何管理好自己。
还是从PSP开始,学会在项目中管理自己吧。
》对不起,这个问题结束了!
 
后退
顶部