书评-从微软VSTS体现软件工程

软件工程与 Microsoft Visual Studio
 Team System

 Sam GuckenheimerJuan J. Perez着,
 蔡焕麟/

随着信息系统的规模扩大,触角深入每个环节。要完成一个信息系统真是千头万绪,若项目的各开发过程有辅助工具,以建立完整的开发架构,即可让信息团队所有成员,更容易撷取各个开发流程所需要的进度评估数据。能有几本书能描述各阶段性流程的精神,对应工具的操作方式就好了。

欲善软工事,先利软工器
微软在 2005 年推出了 Microsoft Visual Studio Team System VSTS ),并搭配新版的 MSF Microsoft Solution Framework 4.0 方法论。

有别于先前的 MSF 3.0 版, 4.0 版是以当下最流行的两套开发方法论:「敏捷( Agile )」和「软件能力成熟度整合模式( Capability Maturity Model Integration CMMI Level 3 」为本,期待提供大家整合开发流程的利器。

透过集中而共享的信息, VSTS 让团队所有工作者通透地了解任何一个开发环节的现状。并将抽象的方法论化为实际的模板档案和需要填入的窗体,并以专属的工具程序来完成各流程的需求,随后以报表呈现结果。而藉由此类工具,也比较能够发挥敏捷开发的精神,快速地走过各个阶段,让多个团队成员同时并进,一次次递归分析、设计、开发、测试、除错、部署等流程。

虽然整个 VSTS 架构立意良善,但如此大部头的全套开发流程辅助工具在国内还算开风气之先,这不是只靠一个项目经理熟悉项目建置、程序设计师学会程序技巧,或是 DBA 熟悉数据库架构,就可以单兵作战。而是整个团队的学习与工作上的默契培养,必须向一个团队推广各成员角色独特的理论与技术,然后要成员们再凭着各自学到的新技术协同合作,这让学习与应用本身就是一件大工程。

此次介绍的这本书《软件工程与 Microsoft Visual Studio Team System 》( Software Engineering with Microsoft Visual Studio Team System ),就是描述各开发流程重要的精神。作者 Sam Guckenheimer VSTS 的产品规画师,由他来解释 VSTS 的理念再适合不过。

这是一本讨论 What Why ,而没有 How 的书,由于内容较形而上,且知识密度很高,所以并不好读。每每笔者读了一段后,总要停下来思考实务上是否能以此为准则?是否会因为办公室政治与文化的差异,而导致作者的立意虽好,而使自身企业水土不服?

增值的软件开发生命周期
本书强调反复与渐进( Iterative and Incremental I & I )的增值( Value-up )式开发流程,希望能够同时整合迅速灵活与责任归属两个面向。

本书涵盖了软件开发大部分的生命周期,除了书中最后的发行 / 上线 / 维护外,一般的项目管理、需求分析、架构设计、程序开发、测试除错都有专章涵盖。并伴随 MSF 4.0 的主要角色,若你在团队中,刚好身处该角色,可以先熟悉 MSF 所赋予的责任归属。再搭配一步步教你 VSTS 操作的书,将概念实现出来。

本书在各章都有图解来辅助理论解说,并尽量以故事或实务经验来让论点鲜活。而部分章节以统计图为例证,说明相对开发流程阶段的趋势分析,以讨论需求的满足、项目的进度、测试的周延、程序臭虫的分布等,并描述图表的解读方式与潜藏的迷思。透过一目了然的图示,更能掌握项目的运作。

软件质量是国内软件开发者普遍欠缺的,作者以增值思维贯穿全书,并约有一半章节对程序臭虫深入讨论,这是国内一般软件开发团队所忽视的。

书中有趣的论点与作法俯拾皆是,例如在收集需求时,有易用性实验,也就是要受测者进入被监控的房间内操作软件,同时大声说出作每一动作的感想,而测试环境会录制使用者操作软件的方式,在检讨时,结合使用者的影像声音一起呈现。

又如管理项目时,使用描述性而非规范性的度量。规范性的度量是明白指出达成目标的条件,例如程序设计师撰写的程序代码行数、测试工程师发现的程序臭虫数,或是程序开发者解决程序臭虫的数量-这种单一的简单度量在长时间施行后,只是鼓励员工钻漏洞(宁愿重复复制程序代码,而不撰写成可重用的函数或对象,或是故意埋入程序臭虫后,再发现并解决)、打击做事者的士气。

为了预防上述弊端,作者强调在周期性开发、逐次达交的模式下,管理项目量测的重点应是已完成、有质量、可交付的工作,参照多个量测数据才推测合理的结果,且评比的对象是团队而非个人,不以单一数据而以客户满意度为奖惩依据。

译者的心路历程
本书译者蔡焕麟是位功力扎实的讲师与工程师,他曾经与笔者在恒逸信息教育中心共事。他表示,尽管这是一本写给开发团队所有成员阅读的书籍,但其内容深度对一般开发人员来说,恐怕还是有些过于艰涩、不易阅读,这是他在翻译时经常担心的。作者没有用太多文字向读者解释什么是 Extreme Programming Agile CMMI Scrum 等术语,而是假设读者已经有基础的认识,或者应该自行去阅读相关的书籍、文章。

但从台湾软件工程相关书籍的种类与数量,以及各大讨论区、论坛网站的主题大都围绕在程序设计方面的情况来看,台湾软件开发人员在这方面似乎仍偏重于程序设计的技术面议题,如 ASP.NET ADO.NET 等。在这种情况下,有些读者或许仍欠缺一些必要的背景知识,再加上 VSTS 又是一项新产品,因此读者在阅读时,可能无法平顺地前进。虽然作者适时地在每章后面加上注释,让读者能够找到相关的信息或参考出处。但是对大多数忙碌的读者来说,恐怕也考验着他们的耐心。因此,蔡焕麟在书中加了一些译注,期望能降低阅读门坎,让读者阅读时会比较平顺些。

由于 VSTS 是新产品,以往在微软领域里也少有软件工程论述译作,相信在翻译此书时,名词的选择、陌生领域的术语意义都需揣摩推敲。例如:书中出现 flow (心流),这个名词出自《快乐,从心开始》。当初为了翻译这个名词,蔡焕麟跑了好几家书店,却都买不到这本书,原来早已绝版,最后总算在图书馆借到。

另外,为了顾及翻译的正确性,也尽量查找书中引用术语的参考文献,如:《戴明的新经济观》、《跨越鸿沟》、《人月神话》、《 Extreme Programming Explained 》等。这样一路翻译下来,让他觉得本书作者真是博学多闻。而当初为了翻译一句话而去买一本书,本来颇觉费事,但却也发现自己的视野更加开阔。

另外,本书图片也都经由蔡焕麟中文化了,他架起 Team Foundation Server 、建立范例项目的数据,以抓取 VSTS 中文版的操作画面。他顺著作者的思绪走访一遍 VSTS 的各项功能,让他更贴切地译出文字,同时也让习于中文环境的使用者在阅读本书时,没有障碍。

阅读建议
本书的第一、二、九、十章是综合的概论,而中间的章节比较偏向软件团队中,不同职称的人所负责的工作。你可以先阅读概论后,接着跳到属于自己工作角色的章节,而后再扩散到邻近工作项目,相信对于整个软件开发生命周期会有更深一层的认识。

书中每章都有注释,主要是详列引言的出处,但都可以当作你的延伸阅读。你可以将本书当成建构现代化信息系统的入门指引,而后藉由注释提供的联结,进一步深入各领域。

由于本书仅着重在精神描述,并未介绍实际操作,或许你可以搭配一本与 VSTS 逐步使用指引有关的书,例如 Microsoft Press 所出的《 Working with Microsoft Visual Studio 2005 Team System 》,并辅之以试用 VSTS ,将更有收获。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值