论文部分内容阅读
【摘 要】现代社会已进入信息时代,各行各业都离不开信息化,上到航空航天,下到卖场交易,都与信息化系统息息相关。社会对信息化特别是软件系统有着越来越多、越来越高的要求。
【关键词】软件开发 外包 管理
随着软件开发及上线项目的增多,像其他行业一样,如何进行管理摆在了众多软件从业人员甚至是公司领导层的面前。
软件这个特殊产品有着与普通意义上的产品诸多差异。首先是软件作为一个实物存在的物理价值极低,存在形态可能就是一张光盘,价值不超过5元钱,在长期的软件使用经验上,可能某些商业软件在用户眼里也就值这个价值,但它的无形成本(开发成本)可能非常巨大。这就引申出第二个问题,开发成本的计算。
软件是人们思想及经验的作品,这些存在很大的主观因素,非常难以量化,对成本的预估及核算有着非常大德难度。
再有对软件开发人员及模块的标准化困难,普通产品可以对大小尺寸重量进行标准化定义,但软件由于每个人的开发实现方式、经验不同,很多情况下由于工时紧张,标准化的制定及检查都存在着非常大德困难。
最后是软件产品的测试验收。由于软件是由各个不同的开发人员制作,开发水平参差不齐,某些bug可能隐藏很深,如何找出这些bug非常困难。如果找寻不出,这些bug就像定时炸弹,随时会爆炸,威力可能非常巨大。
以上是笔者对从事软件行业以来的一些观点,在工作中笔者身处甲方公司,随着公司高层对信息化的要求越来越高,软件项目也越做越庞大。有大型商业化软件,也有定制开发的软件。由于甲方不是一家软件公司,所以对软件开发上配备的人员不可能充裕。所以原则上小型开发及维护由甲方公司的开发人员来全权负责。大型的开发周期比较长的,则交由外部软件公司外包开发,由甲方开发人员负责项目管理,全程跟踪。
软件的形成由部门用户需求的提出开始,甲方公司IT人员与部门用户沟通,了解需求具体内容,再结合在甲方公司工作时对实际情况的了解与软件从业经验,修正部分用户需求。等需求了解清楚,再进行工作量估算,如果估算结果超出3周,则考虑是否进行外包操作。
以软件外包为例,先期将与外包商讨论需求,代码规约,确定估算工作量,并且确定上线日期。在此基础上进行软件开发各阶段周期划分,公司开发以原型加迭代法进行。
由甲方公司开发人员进行需求分析,划分各个模块,对主要模块做出演示程序,不作后台数据支持,主要作用是与用户确定界面及操作习惯。在演示完成,大家在都有了概念的基础上进行需求修正,并按模块开始编写概要设计书。并将概要设计书交由软件开发外包商进行技术及工时确认,达成一致后,甲方开发人员开始对数据库进行构建,对重要的涉及数据计算、外部系统数据的采集等核心内容制作类及方法,进行封装,编写使用参数说明,提供给软件开发外包服务商,只提供调用接口,而隐蔽了具体的过程实现,这样最大限度的保护自己公司的核心機密。在此基础上开始按照模块优先级顺序及约定的开发周期跟踪开发进程。
在软件开发外包商完成某个功能交付代码时,甲方将要求对方提供测试报告,理论上是每个判断语句的分支都要以不同的数据进行测试,并将所有的输入值与输出值列示在测试报告中。
拿到这份报告后甲方开发人员首要就是按照该报告中的输入值输入进行测试,检查结果是否与报告所列输出值相符,并且与要求的结果是否相符; 测试点是否都已到位;抽查代码规约是否符合。全部的检测完成后,将该模块在测试系统中添加,与其他模块进行集合测试。在集合测试之前,甲方人员会预先准备根据业务流程为基础制作的测试用例,模拟实际使用情况。集合测试完成后通知业务部门用户进行使用测试,并根据用户反馈进行需求改进汇总,制作需求修正概要设计,发至外包商进行开发修正。
正常情况下每一周与外包商进行沟通,确认开发进度,及时进行偏差修正。各模块完成后,有甲方IT人员负责验收,验收方法之一是在这个系统上模拟用户操作完成一系列操作,得到正确的结果集。并根据这些操作完成使用手册,交由用户使用。并将所有相关文档归档。如果一切顺利则可视为该外包商已完成这一项目的开发工作。
在余下的使用中,将有甲方IT人员整理所有的开发文档,完善数据字典,补充遗漏的使用手册,着手接管该项目的后续维护开发任务。在后续开发中如果遇到大型开发需求,根据企业情况需要开发外包的则可以复用该开发管理流程。
在笔者多年的开发管理工作中,这套管理流程很好控制了软件委外开发的风险,保证了公司的核心商业机密不外泄,又很好地使用外部资源满足了企业内部业务管理的需要,而且甲方人员参与到了开发管理的各个环节,对于软件的质量做到可控可维护。
以上开发步骤只能是从企业自身角度出发,尽量避免软件项目管理中的那些不确定因素,无法完全克服。只有在工作中不断学习不断总结,希望能够达到一个最完美的平衡点。
作者简介:
任思宇(1980年08月出生)、性别:男、籍贯(江苏省、常州市)、2005年毕业于上海交通大学 计算机科学与技术 专业,现供职于上海申得欧有限公司从事软件开发及管理工作、学士 学位、研究方向:软件开发及管理。
【关键词】软件开发 外包 管理
随着软件开发及上线项目的增多,像其他行业一样,如何进行管理摆在了众多软件从业人员甚至是公司领导层的面前。
软件这个特殊产品有着与普通意义上的产品诸多差异。首先是软件作为一个实物存在的物理价值极低,存在形态可能就是一张光盘,价值不超过5元钱,在长期的软件使用经验上,可能某些商业软件在用户眼里也就值这个价值,但它的无形成本(开发成本)可能非常巨大。这就引申出第二个问题,开发成本的计算。
软件是人们思想及经验的作品,这些存在很大的主观因素,非常难以量化,对成本的预估及核算有着非常大德难度。
再有对软件开发人员及模块的标准化困难,普通产品可以对大小尺寸重量进行标准化定义,但软件由于每个人的开发实现方式、经验不同,很多情况下由于工时紧张,标准化的制定及检查都存在着非常大德困难。
最后是软件产品的测试验收。由于软件是由各个不同的开发人员制作,开发水平参差不齐,某些bug可能隐藏很深,如何找出这些bug非常困难。如果找寻不出,这些bug就像定时炸弹,随时会爆炸,威力可能非常巨大。
以上是笔者对从事软件行业以来的一些观点,在工作中笔者身处甲方公司,随着公司高层对信息化的要求越来越高,软件项目也越做越庞大。有大型商业化软件,也有定制开发的软件。由于甲方不是一家软件公司,所以对软件开发上配备的人员不可能充裕。所以原则上小型开发及维护由甲方公司的开发人员来全权负责。大型的开发周期比较长的,则交由外部软件公司外包开发,由甲方开发人员负责项目管理,全程跟踪。
软件的形成由部门用户需求的提出开始,甲方公司IT人员与部门用户沟通,了解需求具体内容,再结合在甲方公司工作时对实际情况的了解与软件从业经验,修正部分用户需求。等需求了解清楚,再进行工作量估算,如果估算结果超出3周,则考虑是否进行外包操作。
以软件外包为例,先期将与外包商讨论需求,代码规约,确定估算工作量,并且确定上线日期。在此基础上进行软件开发各阶段周期划分,公司开发以原型加迭代法进行。
由甲方公司开发人员进行需求分析,划分各个模块,对主要模块做出演示程序,不作后台数据支持,主要作用是与用户确定界面及操作习惯。在演示完成,大家在都有了概念的基础上进行需求修正,并按模块开始编写概要设计书。并将概要设计书交由软件开发外包商进行技术及工时确认,达成一致后,甲方开发人员开始对数据库进行构建,对重要的涉及数据计算、外部系统数据的采集等核心内容制作类及方法,进行封装,编写使用参数说明,提供给软件开发外包服务商,只提供调用接口,而隐蔽了具体的过程实现,这样最大限度的保护自己公司的核心機密。在此基础上开始按照模块优先级顺序及约定的开发周期跟踪开发进程。
在软件开发外包商完成某个功能交付代码时,甲方将要求对方提供测试报告,理论上是每个判断语句的分支都要以不同的数据进行测试,并将所有的输入值与输出值列示在测试报告中。
拿到这份报告后甲方开发人员首要就是按照该报告中的输入值输入进行测试,检查结果是否与报告所列输出值相符,并且与要求的结果是否相符; 测试点是否都已到位;抽查代码规约是否符合。全部的检测完成后,将该模块在测试系统中添加,与其他模块进行集合测试。在集合测试之前,甲方人员会预先准备根据业务流程为基础制作的测试用例,模拟实际使用情况。集合测试完成后通知业务部门用户进行使用测试,并根据用户反馈进行需求改进汇总,制作需求修正概要设计,发至外包商进行开发修正。
正常情况下每一周与外包商进行沟通,确认开发进度,及时进行偏差修正。各模块完成后,有甲方IT人员负责验收,验收方法之一是在这个系统上模拟用户操作完成一系列操作,得到正确的结果集。并根据这些操作完成使用手册,交由用户使用。并将所有相关文档归档。如果一切顺利则可视为该外包商已完成这一项目的开发工作。
在余下的使用中,将有甲方IT人员整理所有的开发文档,完善数据字典,补充遗漏的使用手册,着手接管该项目的后续维护开发任务。在后续开发中如果遇到大型开发需求,根据企业情况需要开发外包的则可以复用该开发管理流程。
在笔者多年的开发管理工作中,这套管理流程很好控制了软件委外开发的风险,保证了公司的核心商业机密不外泄,又很好地使用外部资源满足了企业内部业务管理的需要,而且甲方人员参与到了开发管理的各个环节,对于软件的质量做到可控可维护。
以上开发步骤只能是从企业自身角度出发,尽量避免软件项目管理中的那些不确定因素,无法完全克服。只有在工作中不断学习不断总结,希望能够达到一个最完美的平衡点。
作者简介:
任思宇(1980年08月出生)、性别:男、籍贯(江苏省、常州市)、2005年毕业于上海交通大学 计算机科学与技术 专业,现供职于上海申得欧有限公司从事软件开发及管理工作、学士 学位、研究方向:软件开发及管理。