建构自动化的开发环境
关键字:开发环境 软件开发 可以分为「前端」与「后端」两部分。「前端」指的是 需求 、分析、设计、测试等工作阶段,「后端」则指贯穿整个开发流程的管理工作。「前端」很重要,因为由它们负责制造产品,为公司带来营收;「后端」虽然不属于生产性的工作,
关键字:开发环境
软件开发可以分为「前端」与「后端」两部分。「前端」指的是
需求、分析、设计、测试等工作阶段,「后端」则指贯穿整个开发流程的管理工作。「前端」很重要,因为由它们负责制造产品,为公司带来营收;「后端」虽然不属于生产性的工作,但它的重要性也不容小觑,因为它可以避免「前端」白费功夫、白花时间、或白白浪费大把银子。
简言之,后端管理的主要目的,就是为了建构一个确保前端顺利运作、使错误减到最低的开发环境。这样的环境可由以下这些条件构成。
版本管理
许多人可能都经历过这样的情形:在产品开发过程中会产生各种版本,而且这些版本不仅出现在最终产品,也会在各种中间型、模块型、
子系统型产品中不断出现;
测试人员明明测了 C 系统的 0.112 版,
程序人员却去修改 D 系统的 0.121 版,结果大家鸡同鸭讲、越改越糟。
此外,即使彼此沟通的版本正确,也不代表修改正确。因为修改第 100 行的程序代码之后,可能影响第 50 行的程序代码运作;或是修正后的独立
组件 A 却导致组件 B 的运作错误。而且,当系统越庞大、分工越细、开发小组数目越多时,这种版本乱象愈发恶化。
事实上,「版本混乱」可说是所有开发者最头痛的问题,所以它是建构完美开发环境所必须解决的一大问题。解决这个问题只有两种方法:一是非常地细心,二是利用自动化版本管理工具。你可以要求每位开发成员都「非常非常细心」,也可以藉助工具;何者比较可行,高下立见。
多点分工管理
由于系统运作环境日趋多元、项目计划也趋复杂,
软件分工的情况十分常见,因此目前软件项目大多由不同小组合作完成,所以完善的分工管理也是建构完美开发环境的要件之一。
除了同一地点的小组分工外,目前还有一个趋势是「多点分布式分工」,就是切割一个项目成好几部分,分别交给不同小组,在不同地点同时进行开发,最后予以整合。这种分工法的优点是可以培养不同专长的开发小组,避免 double efforts ,失去分工意义,同时也可以节省总开发成本。
「多点分工」的情形已经越来越普遍,如果再加上前述版本混乱的问题,可能会让管理者一个头两个大。唯一的解决方法就是建立一套考虑到所有细节的「标准作业规范」,然后严格要求所有成员都切实遵循,没有通融空间。或是利用工具将「标准作业规范」定型为所有开发成员的「工作环境」,而且是处于自动执行的
模式,如此一来,大家就会在潜移默化下自然而然的遵循了。
瑕疵追踪管理
软件开发过程中一定会出现各种小错误、
bug 及许多无解的问题等,这些东西通称为瑕疵。我们无法要求瑕疵永远不发生,而是应该做到追踪管理瑕疵,使它不至于影响开发过程与结果。
追踪瑕疵要从发现源头开始。一般而言,瑕疵的「回报」可能来自各个地方,包括经程序人员发现、测试发现、客户发现、最终使用者发现等。瑕疵从发现到最后修改完毕,可能透过许多工具或各种程序。
例如,客户打电话抱怨一个程序问题,客服人员在「口头」上了解与接收问题后,将状况写成一张「便条纸」交给客服经理,客服经理再用「文书软件」把它整理成「
文件」, Email 给项目经理,项目经理用「电子表格软件」填好一份电子表格再交给分析人员 ….. 。以此
类推,结果最终是完全变质。
这就是用不同平台(纸张与
计算机)与不同工具(文书、邮件与电子表格)处理同一件事的情形。它会造成两个现象:一是很容易在转换过程中出错,因而制造出新的问题;二是这个过程根本无法有系统地加以追踪与管理。这些都不合乎标准作业。
正确的方法应该是让「瑕疵追踪管理」成为贯穿开发流程的环节之一,而且它应该与开发工作处于相同平台,并且可以自动比对与验证产品。例如,当客服人员接收一个问题后,就应该进入上述系统,跟着开发流程一起走,才能进行追踪与管理。
安全管理
在软件开发过程中,每个阶段都会制造各种
类型的产出物(包括文件、程序代码、执行档、报告等),这些产出物有不同层级的保密或安全顾虑,所以需要严密的管理。
安全管理分成内部层级管理与外部层级管理两种。内部管理主要针对不同成员与不同数据的存取权限进行规范与管理,此处应该留意二件事:一是设定正确的修改与只读属性,防止数据破坏;二是妥善管理不同项目之间的数据存取,避免机密漏洞。
外部管理则分成二种,第一种是与协力厂商、供货商或委外开发者的存取管理,这些厂商需要读取你的档案,也会制造各种产出物,所以当然要管理存取权限。第二种则是与客户之间的存取管理,其中数据保密尤其重要;客户对关于他的资料都会要求保密,特别是牵涉到智慧财产权时,对保密的要求更高。所以
项目管理人员在开发过程中必须设计一套能令客户信任放心的作法。
建立自动化的开发环境
后端管理与前端「生产」工作不同,后端管理存在目的主要是要解决问题,尤其面对五花八门的「人为问题」。所以最好的方法,应该是让后端管理达到最大可能的「自动化」,使他们随着前端工作的进展「自动执行」,为前端工作提供一个完美的开发环境。
原文转自:http://www.ltesting.net