软件开发之平行生产

时间:2022-04-13 12:16:40

【摘要】对于平行生产的概念如何引入软件开发过程,思想源于我们公司的一名CEO,一名资深的有过三十多年开发经验的台湾项目负责人。他依据公司的特点-人员多、技术熟练度不高-量身定做的一种...

软件开发之平行生产

摘要:软件开发的模式贯穿于整个项目,影响到开发的整个过程。传统的软件开发有瀑布式及增量式等,本文介绍的是平行模式,其优点就是快速、高效,重要的是能节约资源成本降低项目风险。将平行生产首次应用到软件开发中是一次新的突破,通过介绍软件开发过程的分布及前端组,业务组及数据组的分工及合作,将平行生产的流程进行明确分工。全文以UC为实例通过数据进行探讨其科学性及合理性。

关键词:软件开发;平行生产;软件模式;UC;SD团队

中图分类号:TP393 文献标识码:A 文章编号:1007-9599 (2012) 13-0000-02

一、简介

对于平行生产,想必大家都有些陌生。是的,多数的平行生产模式大多用于工厂及农田作物,其目的是充分利用机器及硬件条件从而缩短生产周期提高生产效率,此模式在行间广泛流传并得到了广大好评。然而这里我们要讨论的就是对于软件开发过程中如何使用平行生产。

对于平行生产的概念如何引入软件开发过程,思想源于我们公司的一名CEO,一名资深的有过三十多年开发经验的台湾项目负责人。他依据公司的特点-人员多、技术熟练度不高-量身定做的一种开发模式。目前运行十分良好,以为客户广泛认可并使用。平行生产的过程有以下几方面:

二、总体目标

通过平行生产模式开发,缩短UC(unique cell)任务交付时程,提高交付速率。(UC是我们公司特有的意为独立的模块,是按照客户提出的任务将其整体的需求进行细致的划分,即为一个个独立的功能模块。)

三、平行生产分布

SD团队包括:前端开发组(JS+Java)、业务层开发组(Action+Service)、数据层开发组(DAO)。

四、各层任务内容

(一)SD(System Design)团队

1.估算

采用项目统一模板,根据客户提供UC设计,罗列UC功能点。

对于客户提供给我们的UC设计,我们根据每个UC的功能点即为:

跟后台有交互的查询、修改、删除、新增;跟后台无交互的显示、修改、删除等功能点。

根据各工作内容预估各个功能点所用工时

例如复杂的修改,涉及的table越多,所用的工时从3到7Hours不等;级联的查询,跟后台Database连接的次数越多所用的工时从4到8Hours不等。

2.需求

理解并验证需求,提出需求疑问点及需求理解问题,并将问题记录在问题列表中。

这里就要求PM及时跟客户沟通尽快解决问题列表中的问题项。

内部讨论并过滤需求理解问题

为避免多量的问题给客户带来时间上面的烦扰,同时也为了能顺利的对功能点进行估算,更重要的是保持客户对我们的信心和良好的品质,首先进行内部的讨论是及其重要的。

与客户Skype沟通需求理解问题,验证需求理解的正确性

Skype是一项沟通工具,因不能面对面进行交流,所以做足事前的准备工作,对双方来说是能高效沟通交流的保障。

3.设计

根据客户提供UC规格进行SD设计,产出Programming Spec

这里的SD设计是比较详细及其全面的,为后续的开发人员的开发工作打好有利的铺垫。

4.设计讲解

SD人员讲解设计内容给开发团队(时限半小时以内)

其实整个过程的开发,我们注重的是团队合作和有效的人员沟通,这里SD人员打好铺垫后要将他们对客户提出的需求理解全面的跟开发团队进行讲解,方便后续开发人员进行开发工作。

(二)前端开发组Front Development Group

1.JS事件编码(JavaScript的编写)

2.Java编码

3.三层整合(即为表现层、业务逻辑层和数据层,只需确保各层变量名称一致)

(三)业务层开发组Business Development Group

1.Action层编码(包括Form表单及相应配置)

2.Service层编码(包括接口及相关配置)

(四)数据层开发组Data Development Group

1.DAO层编码(实现与数据库的交互)

2.Domain层编码(对象编码)

五、平行生产工作流程

六、人员分组情况

项目团队包括:SD团队、前端开发组、业务层开发组、数据层开发组。这里的人员分工可根据任务完成情况进行动态调整,做到充分利用人力资源。

当然开发过程中难免会遇到一些开发人员解决不了的问题,这里我们就会安排一人负责做Coach职责,他的主要任务就是负责各层技术指导、UC的任务分配及各层角色在各UC间的及时调到。

每层人员都会有一个Team Leader,以UC为单位负责小组任务的分配及跟踪。

七、6个UC平行生产的表现

生产率对比背景:UC007和UC006的功能相似,UC008和UC005的功能相似。UC007模组中的5个事件,参与者:1名4年工作经验者。UC006模组中7个事件,参与者:1名8个月工作经验的SD+3名实习生。UC008模组中的5个事件,参与者:1名2年工作经验者。UC005模组中的12个事件,参与者:1名2年工作经验SD+3名实习生。

对比数据如下:

以此对比,在规模增加的情况下,能用较比平常缩短一半的时间内完成开发,同时所用工时并无增加,反而是越多的规模的情况下与平常情况下发的的工时成反比。由此可看出在提高生产效率的同时又节约了成本。

平行生产是一种新兴的生产模式,我相信她在以后的开发中会占领主导地位。同时也希望我的介绍能为她的发展起到点睛的作用。

参考文献:

[1]郑人杰,软件T程(高级)[M].北京清华大学出版社,1999,8

[2]Jeffrey L.Whitten.系统分析与设计方法(第6版)[M].肖刚译.机械工业出版社,2004

[3]张海藩.论文联盟整理软件工程导论(第五版)[M].清华大学出版社,2008

[4]张海藩.软件工程(第3版)[M].人民邮电出版社,2010

上一篇:基于GIS的地下水观测系统的设计与实现 下一篇:浅谈计算机通信的网络安全问题