InfoQ 中文站独家节选了移山之道——VSTS 软件开发指南一书的第一篇第二章节的“白话MSF 方法论”部分,希望能让更多的读者了解微软推荐的做软件的方法,以应用于自己的软件开发过程。本书的作者邹欣曾在微软总部参与开发过Outlook 和Visual Studio 2005 等软件项目,现为微软亚洲研究院技术创新部门研发经理,对VSTS 有深入的研究和应用经验。
下面是InfoQ 中文站针对本书相关话题,如使用VSTS 需要注意的地方,什么是移山方法论,什么是“现代”软件工程等,对作者邹欣进行的专访。
InfoQ 中文站:在使用 VSTS 的过程中,需要特别注意的地方是什么?作为这方面的专家,请简述你的个人经验。
邹欣:精简过程,直奔主题,把精力放在开发软件上,而不是在折腾 VSTS 上。以前曾经看过这样的漫画,两个穿白大褂的大牛在一大堆仪器和图表中间发愣——“经过 3 年时间和 5 百万的花费,我们都忘了当初要做什么了。”
我们软件项目要解决的问题都是比较复杂的,如果我们的开发流程,开发工具也很复杂,软件产品也很复杂,那么我们就会得到这样的情况:复杂的问题,复杂的开发流程,复杂的开发工具(有些企业还要加上复杂的人事关系)以及复杂的产品及维护。这样一来,我们软件开发成功的希望就不是太大。
我知道很多人热衷于搞方法、6 西格玛(我本人曾经做过 9 个月的此类项目)、模式和架构等等。但是我曾经间接地听到一个搞销售的经理对一些技术 / 方法论大牛的咆哮:没有客户,软件卖不出去,你们的代码和方法都是狗屁不如!虽然我不全部同意这样的说法,但是我觉得话糙理不糙,我们也不妨把这些话好好打印出来,装裱后,挂在办公室墙上。
InfoQ 中文站:在书里面你提出了一个精简的开发方法论——移山方法论,这个方法的主要特点是什么?
邹欣:这个地方,可以用书中的一段话来解释:
对于小规模的项目,我的原则是“直奔主题,精简过程”,我们的主题是啥?让用户买我们的产品,只要我们用户满意我们的产品,他们会关心我们内部开发模式是用哪几个工作项类型么? 我个人认为项目开发过程中有两件不同类型的事:
- 事先预计到的要做的事。这就是任务,把要做的事情组合起来实现用户某一个特定的需求,这就是场景,也可以用任务来表达。
- 事先没有预计到,但是为了项目成功而不得不做的事。这就是缺陷。
软件开发的过程就是做完这些“计划要做的事”和“没计划,但是不得不做的事”,做好就行了。等你们做了三五个项目,写了一万行以上的程序,再来看场景、风险、服务质量需求也不迟。
阿超:你们可以回去告诉老师说这是最新的“移山精简开发模式”,填补了国内外空白,很好用。
……
对于一个新建的团队,保持一个精简的过程和管理方法是很重要的。只要任务、缺陷这两个类型足以解决问题,就不必考虑更多的工作项类型,而是集中精力把项目开发好。
InfoQ 中文站:在本书中,你最想传达的思想是什么?
邹欣:在愉快的环境中学习,应用。本书的写作,采用的是讲故事的形式,为什么要这样做?因为软件工程的管理,不光是技术的管理,更重要的是过程和人的管理,任何软件工程的理论,在实践中都要由活生生的人去执行。执行的情况可能是生搬硬套,可能是敷衍了事,可能是过犹不及,当然也有可能是恰到好处。如果脱离了人和环境的因素,生搬硬套一些貌似先进的方法论,在实践中可能适得其反。
InfoQ 中文站:在 VSTS 的下一版本中,据你所知,会有哪些方面的主要更新或者改进?
邹欣:我要看看官方的报道,不过对于小型团队来说,用现在的 VSTS 就够了。就像大部分人用 office 2003 就能应付绝大多数任务一样。不必非等最最新的东西不可。现在 VSTS 一个明显的不足就是通过 Web 的访问功能稍差,最近通过并购一家专门做这一功能的公司,这个问题已经有很大的改善。
InfoQ 中文站:近期你要在清华大学讲授《现代软件工程》,你是如何理解这儿“现代”的含义的?
邹欣:最近几年,随着互联网应用的发展,新的商业模式和以 web 为主要媒介的应用的普及,软件开发的模式有了不少新的变化,我的书里涉及到一些新的开发模式。这是“现代”的用意之一。另外,由于软件工程的教学和实践在不少地方有所脱节,不少教材中仍然有很多“古典”的内容,这些内容就象古文,古典诗词一样,非常优美,但是未必能很好地解决当前软件业碰到的诸多问题。我想介绍微软公司在实践中是如何应用各种软件工程的概念,原理和方法,而不是重复一些“古典”的内容,这也是“现代”的含义之二。
直接阅读图书节选部分:白话 MSF 方法论
评论