InfoQ

新闻

图书节选:移山之道——VSTS软件开发指南

作者 霍泰稳 发布于 2007年9月6日 下午7时0分

社区
.NET,
Agile
主题
方法论,
故事和案例分析
标签
Visual Studio Team System,
微软,
管理

InfoQ中文站独家节选了移山之道——VSTS软件开发指南一书的第一篇第二章节的“白话MSF方法论”部分,希望能让更多的读者了解微软推荐的做软件的方法,以应用于自己的软件开发过程。本书的作者邹欣曾在微软总部参与开发过Outlook和Visual Studio 2005等软件项目,现为微软亚洲研究院技术创新部门研发经理,对VSTS有深入的研究和应用经验。

下面是InfoQ中文站针对本书相关话题,如使用VSTS需要注意的地方,什么是移山方法论,什么是“现代”软件工程等,对作者邹欣进行的专访。

InfoQ中文站:在使用VSTS的过程中,需要特别注意的地方是什么?作为这方面的专家,请简述你的个人经验。

邹欣:精简过程,直奔主题,把精力放在开发软件上,而不是在折腾VSTS上。以前曾经看过这样的漫画,两个穿白大褂的大牛在一大堆仪器和图表中间发愣——“经过3年时间和5百万的花费,我们都忘了当初要做什么了。”

我们软件项目要解决的问题都是比较复杂的,如果我们的开发流程,开发工具也很复杂,软件产品也很复杂,那么我们就会得到这样的情况:复杂的问题,复杂的开发流程,复杂的开发工具(有些企业还要加上复杂的人事关系)以及复杂的产品及维护。这样一来,我们软件开发成功的希望就不是太大。

我知道很多人热衷于搞方法、6西格玛(我本人曾经做过9个月的此类项目)、模式和架构等等。但是我曾经间接地听到一个搞销售的经理对一些技术/方法论大牛的咆哮:没有客户,软件卖不出去,你们的代码和方法都是狗屁不如!虽然我不全部同意这样的说法,但是我觉得话糙理不糙,我们也不妨把这些话好好打印出来,装裱后,挂在办公室墙上。

InfoQ中文站:在书里面你提出了一个精简的开发方法论——移山方法论,这个方法的主要特点是什么?

邹欣:这个地方,可以用书中的一段话来解释:

对于小规模的项目,我的原则是“直奔主题,精简过程”,我们的主题是啥?让用户买我们的产品,只要我们用户满意我们的产品,他们会关心我们内部开发模式是用哪几个工作项类型么?

我个人认为项目开发过程中有两件不同类型的事:

  1. 事先预计到的要做的事。这就是任务,把要做的事情组合起来实现用户某一个特定的需求,这就是场景,也可以用任务来表达。
  2. 事先没有预计到,但是为了项目成功而不得不做的事。这就是缺陷。

软件开发的过程就是做完这些“计划要做的事”和“没计划,但是不得不做的事”,做好就行了。等你们做了三五个项目,写了一万行以上的程序,再来看场景、风险、服务质量需求也不迟。

阿超:你们可以回去告诉老师说这是最新的“移山精简开发模式”,填补了国内外空白,很好用。

……

对于一个新建的团队,保持一个精简的过程和管理方法是很重要的。只要任务、缺陷这两个类型足以解决问题,就不必考虑更多的工作项类型,而是集中精力把项目开发好。

InfoQ中文站:在本书中,你最想传达的思想是什么?

邹欣:在愉快的环境中学习,应用。本书的写作,采用的是讲故事的形式,为什么要这样做?因为软件工程的管理,不光是技术的管理,更重要的是过程和人的管理,任何软件工程的理论,在实践中都要由活生生的人去执行。执行的情况可能是生搬硬套,可能是敷衍了事,可能是过犹不及,当然也有可能是恰到好处。如果脱离了人和环境的因素,生搬硬套一些貌似先进的方法论,在实践中可能适得其反。

InfoQ中文站:在VSTS的下一版本中,据你所知,会有哪些方面的主要更新或者改进?

邹欣:我要看看官方的报道,不过对于小型团队来说,用现在的VSTS 就够了。就像大部分人用office 2003 就能应付绝大多数任务一样。不必非等最最新的东西不可。现在VSTS一个明显的不足就是通过Web的访问功能稍差,最近通过并购一家专门做这一功能的公司,这个问题已经有很大的改善。

InfoQ中文站:近期你要在清华大学讲授《现代软件工程》,你是如何理解这儿“现代”的含义的?

邹欣:最近几年,随着互联网应用的发展,新的商业模式和以web 为主要媒介的应用的普及,软件开发的模式有了不少新的变化,我的书里涉及到一些新的开发模式。这是“现代”的用意之一。另外,由于软件工程的教学和实践在不少地方有所脱节,不少教材中仍然有很多“古典”的内容,这些内容就象古文,古典诗词一样,非常优美,但是未必能很好地解决当前软件业碰到的诸多问题。我想介绍微软公司在实践中是如何应用各种软件工程的概念,原理和方法,而不是重复一些“古典”的内容,这也是“现代”的含义之二。

直接阅读图书节选部分:白话MSF方法论

阅读全文:图书节选:移山之道——VSTS软件开发指南

1 条回复

回复

移山之道讨论区:http://yishan.cc 发表人 Vincent CHEN 发表于 2008年12月12日 上午9时40分
  1. 返回顶部

    移山之道讨论区:http://yishan.cc

    2008年12月12日 上午9时40分 发表人 Vincent CHEN

    发现《移山之道》还有个官方讨论区,移山之道
    作者在上面很活跃啊,可以去问问题:)

深度内容

Flex与JSON及XML的互操作

平台需要互操作性。在这篇文章中,作者仔细研究了Flex和JSON及XML的互操作性。文章也包含了使用E4X库来将XML映射到图表和表格组件的内容,还演示了如何使用as3core库来解码JSON消息。

用Qi4j进行面向组合编程

本文将简要介绍面向组合编程(COP,Composite Oriented Programming)的概念,展示它如何规避OOP存在的一些问题,并重新点燃使用可重用部件组装领域模型(Domain Model)的希望。

系统开发——新学科,新教育

一门新的计算机学科——“系统开发”,强调人性化、匠艺、设计、创意、创新和新事物的涌现,并建议用被称为“bottega”的工作室替代乏善可陈的教室。

图书聚焦:Visual Studio 2008 揭秘

Mike Snell和Lars Powers用他们最近由Sams出版的新书《Visual Studio 2008揭秘》,试图帮助大家提高开发人员的生产力。本文包括一个下载样章——第10章调试。

BPEL为何不是BPM的圣杯?

Pierre Vigneras在本文中讨论了作为标准之一的BPEL所存在的问题。Pierre先给我们大致介绍了一个简单的并行流程,接着讨论了从业者在试图以一个结构化模型为基础表达非结构化流程时遇到的一系列问题。

基于范型的多语言编程

你是否仔细思考过,为什么人们总在讨论“要正确的语言做恰当的事情”?在这篇文章中,Sadek Drobi向你解释了为什么应该在系统内部混合使用多种语言。

采访与书摘《Pro Web 2.0 Application Development with GWT》

Jeff Dwyer就关于他的新书(《Pro Web 2.0 Application Development with GWT》)、GWT1.5以及创建可搜索的Ajax应用谈了一些他的见解。

时刻准备着,迎接IT业的春天

我们需要设身处地地为客户及客户的业务本身着想,与客户同舟共济。更多创新的思路、产品和模式也同样将为IT业带来新的出路。IT业并不需要坐以待毙,在春天到来之后,市场将会更加繁荣!