随着网际网路的蓬勃发展,建置一个吸引人的网站已不再是学生或一般电脑专业人士才有与趣的事,各种大小企业无不全力透过网站介绍自己的公司、产品,提升企业形象,甚至利用网路无远弗届的力量达到行销的目的。在这样的转换过程中,除了大家所熟知的安全问题之外,变更管理(Software Change Management)也是一项重要的课题。
例如对于网站开发的专案而言,其专案参与人员可能散置于各地,例如内容编辑者在台北、美工人员在台中、网站建置人员在高雄、机房在汐止,面对这种情况专案经理要如何管理与协调他们的工作,以降低人为疏失与提高软体生产力,便是一个问题。
网路变更管理工具六大考量
传统软体工程要解决大型专案的开发问题,会采用变更管理的方法,利用ISO或SCM等机制来控管开发人员与程式码,并利用一些工具来辅助达成管理目标,而在选择这些辅助工具时,我们需要考虑哪些因素呢?
1.跨平台考量(Cross Platform)
在大型企业的资讯中心内通常有为数众多的伺服器,上至IBM Minframe,下至UNIX、NT Server或Windows 95/98,在这些伺服器上有各种的应用程式在执行,传统应用程式并不会有跨平台的问题,专案开发人员各自负责在所属平台上开发与维护这些程式。但对于Web Project情况就不同了,今天有可能Web Server是UNIX,背后的Database Server是NT,前端网页设计人员是用Windows 95/98 来进行设计,在某些业务如网路银行甚至还牵涉到IBM Mainframe 的连接。 (图一)
再者在旧有环境下,一个专案管理人员也可能同时管理数个不同平台专案的进行,一个程式设计师也会同时撰写不同平台上的应用程式,因此一个好管理工具首先就是要有跨平台的专案管理能力,并且能透过网际网路进行安全的程式码控管。
2.流程控管(Process Flow)
现代变更管理工具必须能实际执行以上软体开发流程,定义who and how to make these changes,同时在适当时机通知相关人员程式码的变更情况,并且保证每一步骤都完整无误。有人可能会认为这些流程会增加额外的工作负担,但实际上良好的控管流程会提高程式品质,减少日后的维护成本,如(图二)。
例如(图三)就显示了 1Dev, 2Dev, 3Dev 程式设计师可以自 Production 将程式码 Check Out 作修改,1QA 与 2QA 负责 Quality Control 的人员才有权限将程式码 Check In 回 Production。
3.版本控制(Version Control)
变更管理工具对于程式码版本的控制除了基本Check in、Check out能力之外,还必须能还原之前任一版本的程式码。国外某一知名网站就曾经发生过这样的状况:他们有天发现在某一网页以下的Hyper Link全部错乱,为了解决错误,维护人员将前一版本的Source还原回去,但错误情况依旧,最后他们将其所有程式备份都还原回去,却仍无法解决问题,这代表此一问题在很久以前就出现了,而他们手中的备份程式也全部是错的。因此变更管理工具必须有能力将程式码从任一版本还原回来,并且有稽核记录可供日后查询。
除了还原能力之外,变更管理工具还必须能支援平行开发能力,意指允许一支程式同时被两个人以上作修改,并有能力将不同人所修改的程式作Merge的动作。
4.稽核(Audit Trail)
变更管理工具最重要的是能对所有程式码的变更作完整的追踪,其稽核记录至少需包含(表一)所述项目:
专案管理人员可以透过稽核记录了解专案进行的状况,究竟是谁对程式的动作了什么样的处置,并且可以利用Filter过滤不必要的项目,并制作报表以利事后查询。
5.影响评估(Impact Analysis)
在程式开发过程与后续的维护中,常会需要对程式码作变更或修正,举例来说,您的程式码中有关错误讯息的输出是以"Error"字为开头,今天可能希望将其中文化变为「错误」这个字,可是您知道究竟在这数以万计的程式码中到底有多少地方出现"Error"这个字,同样的情形在Web based的应用式更是时常发生,一般网页内容或架构都时常作变更,在作变更之前,您必须了解究竟这些变动会造成多大的影响。
变更管理工具,除了可以帮你作影响评估之外,它也可以将目前专案「冰冻」(Freeze),后续的变更都不会影响到原来的专案,直至您确定这些变动是稳定的才回到正常的流程之下。
6.存取控制(Access Control/ Security)
变更管理工具必须能够限制专案参与人员看到他所能看到的东西,使用他能用的功能。例如负责Coding的程式设计师就不能看到QA的人员所负责的内容,稽核功能只有专案经理才能使用,负责A专案的人员不会看到B专案的内容。
除此之外,若是您的专案有部份程式是委外开发,而在程式码变更的过程中,是透过Internet来传递的,因此变更管理工具还须保护程式码在网路上传递时,不会被有心人士窃取(Sniffer)。
结语
软体变更管理的重要性一直为大众所忽略,尤其是由于电子商务的盛行,大众都将焦点放在网路安全之上,其实程式的错误或网页内容的不正确所造成的损失不下于网站被入侵,而所造成企业形象的伤害更是难以估计。试想若您在网站上办一个抽奖活动,奖品金额为1,000,000,若因人为疏失造成金额多一个零,其结果会如何实在难以想像。本文概略阐述使用者在选择变更管理工具所应考虑的因素,以其增加软体开发的品质与效率,并降低维护成本。(作者任职于优隆资讯)