维护项目的软件开发方式解决方案

 

前言

参与这个项目有两周时间,项目为成熟系统的后期维护,主要开发内容为:系统的项目变更和功能的追加。

一:项目情况说明

系统是一个成熟的产品,分别出售给不同客户,根据不同客户的需求,在标准版本的基础上修改或追加功能,以适应特定客户的需求。

二:工作内容

对应不同客户的需求,产品开发公司已经做好项目变更的详细设计,并估算出了工数和纳品时间。工作内容即是:在提供的详细设计书的基础上,按照详细设计中的变更或追加的机能继续修改程序,

三:项目中遇到的问题

参与到项目中这4周一来,在工作过程中遇到的一些问题,做下总结

(1):公司对项目没有积累。公司做这个项目也有段时间了,对这个项目没有明确、完善的资料说明,对项目的所有信息全部在开发员工脑袋中,对项目的开发掌握和开发的生产性完全依赖员工的工作经验和对项目的熟悉程度。可以说项目的所有技术掌握在个别对项目熟悉的程度高的员工中,这样对公司发展造成了2点严重的影响:1)掌握在个别员工手中,对大大提高了项目的风险,如果该员工提出离职,项目的后续发展可能会陷入失败的状况,即是不是这样,员工有事需要请假的时,请假这段时间,遇到的问题,没有人指导方向进行解决,需要投入大量的人力、物力进行调查研究。2)项目新进员工的教育也是个很大的问题,项目没有资料文档提供给新员工学习,所有的知识的的学习需要来员工来传授,首先老员工有自己的开发任务,在完成自己开发任务和知识教育两个都需要进行时,二者不可兼得,最后结果及时,新近员工没有能教育好,不能整体系统的教育学习,还拖延了老员工的开发进度和开发效率。

(2):开发中的问题。1)项目只有开发阶段,没有测试阶段,开发人员开发完毕后,直接发送给产品公司,有他们进行测试。测试出的bug在对应。2)产品公司方发送过开发设计书时也附带了开发进度表,在进度表了明确标出了模块开发使用的时间。在这段时间开发过程中,产品公司方设定的开发工数在有些地方并不合理,例如:有一个报表只是在报表上追加了2个显示项,提供了1.2人/日的时间,但是在新做成报表有根据不同设定使用一个报表输出三种不同样式,虽说大部分相同,但是也有不相同的地方所有在这个报表需要对应的的地方有:修改对应的程序,修改生成sql语句对应xml文档,创建rpt报表文件,调整报表控件位置,绑定数据和画边框线,分组显示商品信息和包含的明细子商品信息,但是还要不足一页是追加空白行满页显示,在生成不同的报表是还需要控制报表的中的控件是否显示来生成不同状态的报表,这么多的内容给了1.76人/日,这个时间根本不能完成这么多的工作量。

3)产品公司方给定的开发时间,安排给的的开发时间,是一种理想状态的时间,开发人员对该项目熟练程度要求:对项目的开发流程,开发规范和和各种开发技术点都特别的熟悉。而且还是在把所用到的开发准备都做好的,开发设备正常,设计书的时间全面,正确,没有问题的请下,在全投入8个小时的情况下可能会保质保量的完成。但是在时间开发过程中总会遇到这样或那样的问题。如电脑启动不正常,支援其他开发人员,设计有问题提出qa或检讨,员工有事请假等,都会消耗一定的时间,从而造成在客户画的的时间段不能完成。4)bug的数量大,我开发了10个小模块的开发,就产生了一百多个bug,有些事及其低级的bug,开发人员在开发完成后,没有进行严格的疏通测试,来保证自己开发成果是否正确,开发在安排的时间段内紧紧张张的将代码书写完毕,运行没有系统异常,能运行下去,没有时间来确认每一个修改点是否正确。5)没有测试也是造成bug多的一个原因,公司现在开发人员紧张,没有测试人员,这样就不能保证开发的品质,不能过滤一下低级bug和在开发过程中的遗漏和对式样书的理解错误而造成的错误结果。

 

四:项目架构构成

项目没有一个完善的体制和人员配备,下面是我个人认为是一个合理的项目处理流程

 

 

 

在这个类项目中牵涉到了三个主要方面的人员和公司信息平台系统

1:客户(包括客户项目负责人,项目担当)

2:PM/PL 项目经理,主要负责项目进度和协调。

3:PG 开发担当,主要负责系统开发维护。

4:信息平台系统,分(1)开发辅助工具,(2)信息共享系统,后台数据存储。

 

注:信息平台:为提高开发效率和技术信息积累,共享和教育。这部分很重要,但又不是必须存在的。现在公司有效,完善的系统资料,所有的技术全部掌握在开发担当手中。

 

下面是对上图中各个处理流程的模块的解释说明:

1:式样review/工期check,首先是对式样书的review的工作,初步判断式样书上设计到的技术的和难易程度和存在的问题,

(1)                  所有的技术的参照信息平台上历史项目的使用的工期和技术点设计到的范围,来初步判断式样书是否有遗漏,工期给的是否合理,根据这些信息给出对应的开发工期。

(2)                  存在的问题和工期问题一并和客户进行确认。

(3)                  将式样书上设计到的技术点和工期登录到信息平台上,供开发使用。

(4)                  说明:我做的第一个项目中有两个报表:第一个是以前新规开发,报表控件还很多,数据抽出关系比较复杂,工期只给了1.76人/日,第二个报表,只给控件追加了2个控件,给了1.2个人/日,从单本上看给得很不合理。

(5)                  产品公司方的自己开发效率很高,一个方面是:他们对系统构成很熟悉,根据技术点能判断出所有代码修改点和修改source文件,二更重要的是:他们有式样书讲解,他们在给最终客户进行review时,会对他们进行式样讲解,所有在他们开发前,他们已经对式样很理解了,不需要对照式样书来理解式样。

2:线表安排,项目根据公司人员配备,安装开发关系的先后顺序来进行合理的安排开发进度。

         线表安排需要考虑到人员配备,人员的开发经验,开发需要时间,测试需要时间等方面

3:程序开发。

(1)       熟悉设计和业务流程,首先要对式样整体性有一个了解,理解本次开发主要是做什么,并参开式样书review时对该模块的功能总结是否合理和完善,不完善补充完善。

(2)       对重复性的工作或有一定规律性的开发,使用辅助工具来生成代码,既提高了开发效率并减少程序出错概率。

(3)       对不能使用工具的部分,有开发担当来手动开发,开发方法可以参照信息共享的项目模块功能帮助文档,例如:报表上追加了一个控件,追加控件设计的部分(报表文件,数据取得xml文件,报表控件的格式化,画面控件追加,画面控件注册等)方面。和这些对应点在模块中的位置和对应方法。

(4)       开发的运行测试,代码修改完毕后,需要担当在运行确认代码修改的是否正确,这个需要对照式样书来进行确认。

(5)       在确认修改的是否有遗漏点和系统约定没有书写到式样书上的功能,这个就需要参照共享信息上系统规范和历史相同模块的处理方法。

4:确保式样书上没有遗漏,画面的动作没有系统err,基本功能正确,代码注释追加正确全面

5:bug类型确认,客户测试后产生的bug,需要bug类型区分。最主要是区分开开发bug或设计bog

 

五:上述总结

(1)       在接项目时,需要pm/pl对式样书进行初步review,列出各个模块修改包括的各个技术点,以此计算出模块的开发时间,已经得出总体的开发时间。和各个模块的技术的。

(2)       项目开发:分使用辅助工具完成一部分,手动完成剩余部分,式样书对照疏通,确保功能实现没有遗漏和实现正确。测试从运行程序和代码review两个方面来保证。

(3)       Bug分类:区分bug种类,区分开bug类型,保证公司和员工既得利益。

(4)       项目结束总结,从项目bug,项目问题,项目总结。完善辅助工具和共享信息平台的信息数据。

六:信息平台应用的可行性分析

平台框架组成

 

 

 

这是最简单的构成图,分三个部分,(1)web页面部分,(2)from工具部分,(3)数据存储部分。

(1):web页面部分,主要功能就各种信息的登录,查询和显示

         1:系统构成,系统的框架构成,各个功能模块的框架结构等系统的组成结构,需要详细到每种模块包含哪些功能,包含哪些类,某种功能在哪些类中实现,某个类实现了哪些功能。类之间的调用方式,模块的架构组装方式等系统信息,作用是:a教育新人,b摸个技术点的实现方式查询

         2:对系统的某种修改,涉及到的技术点给出修改技术点一览,便于开发和测试查询和判断是否有式样书上没有提及到的修改点没有修改的check。例如:在报表模块在画面和报表上追加了控件,一览中给列出所有涉及到的技术点:如控件注册,控件事件绑定,报表文件追加,xml文件追加,报名控件类型format设置,边线是否对应,内容是否全显示等方面。

3:工期计算,对照式样书,将式样书上涉及的修改点,在工具计算页面上选择已有的技术的和对应规模,系统会参照以往的同类的模块类似的功能完成所需的时间时间,给出一个相对合理的预计时间,在确认后登陆到数据库中,便于第二步查看和客观给的预定工期是否合理。

(2)From工具组成:这个一个工具集合,包含很多实现不同功能的集合。

1:画面部分,追加画面控件并对控件改名,生成控件的注册方法代码,生成控件的基础事件代码,对需要数据读写的控件生成控件绑定代码。有【设定】功能的生成对应设定中的xml而配置的代码。

2:报表部分,新做成的报表,根据客户提供的excel模板,生成对应的rpt报表文件,和对应的sql操作的xml文件,画面控件有特殊format的生成后台的对应格式化代码。

七:from工具可行性试验

利用空闲时间做了个新规报表根据excel文件模板生成rpt报表文件的验证。

 

这个产品公司提供的excel模板,

 

 

这个图是根据客厅提供的excel提供的模板通过读取excel单元格的方式,生成了一个的rpt文件,这个只是为了验证是否可行,结果是:可行,在吧生成的报表文件设置了字体,字号,对应方式,背景色,边框线等工具,这个生成报表的功能就是比较完善了。

八:总结,首先接项目阶段根据人员情况和工作量合理安排工具,其次在开发阶段尽量做熟悉的模块,使用工具提供效率,再次测试确认保证代码是全部不会出现代码文件遗漏,程序基本功能正确,式样书无遗漏。最后对应bug是区分开代码bug和式样变更。

    信息平台在一定程度上能对新人教育,提高开发效率,减少bug有一定的作用,但是现在公司没有这样的平台,平台的开发需要一个期间来完成。所有这个平台适用于对该类项目长期的有一定规模量的开发。