有源则至清——我读《移山之道》

news/2024/5/19 2:03:43 标签: 敏捷开发, 出版, 读书, Blog
<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/46860.html" frameborder="0" width="468" scrolling="no" height="60"></iframe>

引子
===============

大概是因为列在博文的作译者清单里的缘故罢,我常常能在第一时间得到有关新书的消息。这本《移山之道》的消息在《大道至简》出版前我就知道了。当时也是心中忐忑,因为同样是一本言“道”的书,同样以愚公移山为背景,同样讲软件工程……邹欣先生在博客中说这“车”撞得他眼冒金星,其实我又何尝不是如此?哈哈~于是当时便想着:等《移山之道》出版了一定得好好看看,是不是好书不论,评论的心态要先调整好。。。。

还没想好怎么个调整法子,书就到了手上;还没看到第一页,书就被同事抢去了。有些事往往如此,来也没个准备,去也没个准备。不过这被同事抢走的事实,让我知道:无论如何,这一定是一本受欢迎的书。

 
 
一、VSTS之源:MSF
===============

一本书,最怕写到糊里糊涂,自己说不明白别人也读不懂。我写书,所以便常常这样提醒自己。今天读到邹欣先生的《移山之道》,第一篇便说到这样一句话:

---------------
问渠哪得清如许,为有源头活水来。
---------------

书的开篇便解了我久久以来的疑惑:如何把一本书写清楚。这句话摘自朱熹的《观书有感》,所以说的是读书者如何“看书的‘清如许’”。同样一句话,简略下来就是“有源则清”。

书名“移山之道”并不是哲学的“道”,简言之就是“法子”。所以本书原本就是在讲“移山的法子”。作者将软件工程(的具体实施)寓作移山之艰,在这万千艰难中,作者给了的“法子”是两个东西:MSF和VSTS。前者,是思想理念,后者则是方法工具。

注1:我向来不直接讨论一个方法、思想的好或坏,因为这种讨论总是宥于某种具体的背景或范围的。所以我这里也不对MSF和VSTS直言好恶,我们这里只说书。


说实话,在读邹先生这本书之前,我与书中的“果冻”一样,面对MSDN上的“官方绕口令”大感困扰。基本上来讲,我除了知道“MSF/MSA是微软的工程理论”之外,没有从那些绕口令中得到任何有价值的信息。而这样的知识到了《移山之道》里,变成了“白话MSF”。一句话:就是微软推荐的做软件的方法。

再简而言之:一种方法。如同敏捷方法一样,MSF方法也有几个“基本原则”——好象从敏捷之后,工程理论都是先谈“原则”的。《移山之道》一书除了讲述这些原则之外,也讲述了他们在VSTS中的映射——一些具体的功能。

这大概就是前8章的内容了。其中前4章是我推荐阅读的部分。

 
 
二、移山之道,源出务实
===============

第二个该读的部分,则是12章之后的内容。这本书构建了一个虚拟的项目,并且围绕一个完整的项目过程“导演”了一出实战的大戏。我们可以清晰地看到每一个工程角色在这个戏目中的表演、心态,甚至神情(因为有很漂亮的插图)。

我们常读到一些讲工程实施的书籍,大概都是讲某种工程方法、工具或过程理论的条条框框或者(界面)操作指南。读者看完,大抵是既不见得能懂,也不见得会用的。凡是这些,都必须要放在具体的工程环境中,读者才会发现问题。而一发现问题,读者要么畏难而弃,要么以大无畏的精神一通乱撞。工程中不能活用的,大概都是这样的状况了。而《移山之道》则是切切实实的讲工程场景的,讲具体场景下的应用方法的。所以,你会看到类似这样的语句:
---------------
同学:对!我们要用全(敏捷开发模式的)5个工作项类型。
……
阿超:当敏捷模式变成强迫,那还能敏捷到哪儿去呢?
---------------

又或者一些应时应事的实战法门:
---------------
……
同学:你说得在理,但是老师让我们用全套敏捷模式,我们怎么办?
阿超:你们可以回去告诉老师说这是最新的“移山精简开发模式”,填补了国内外空白,(大牛、超人和理论家们都一致说——这是我加的^.^)很好用。
---------------

这样的段落看了是非常过瘾的。如果遇到这种连具体工程是什么都不知道,就要求“用全套XX方法、XX模式、XX过程”的那些工程角色时,这常常是可以派上用场的。

 
 
三、怎么读这本书
===============

这本书的内容可以分成好几个部分:
 1、VSTS与MSF基础
 2、团队角色的基础素质
 3、工程实战的细节与处理方法
 4、阿超的故事
 5、用好VSTS

一般的读者,大概可以把本书当成VSTS的快速指南,所以可以用它来学学VSTS以及MSF。毕竟如宣传所言这是“第一本由微软VSTS一线开发人员所写的原创精品”。同样的道理,对于一个工程团队来说,也不妨用这本书作为团队成员的一般性读物。另外,如果你的团队的“个人技术和协作精神及技巧”尚有待启蒙(在我看来许多人有此需求),不妨看看本书的第二篇(9~11章)的内容。

但如果这样读这本书,大概是暴殄天物。因为这些大概是1、2、5三个部分的内容,只是书中所述的末节,远非精要。

我读这本书,看完前四章,全书的思想基础与行事原则就已经了解了。接下来,我大概都是在看书中以阿超、大牛、果冻等虚拟角色之间的对话,我称之为“阿超的故事”。在我看来,“工程实战的细节与(具体的)处理方法”,只不过是阿超的思想的一种表达罢了。所以上述3、4两部分综合起来,才是全书的精华。而这些精华,作者用楷体小字藏在一段段对话、一篇篇文言,以及一个个籍阿超的身份而作出的工程决策之中。

这些一般读者快速掠过的东西,我看得反倒细致些,启我思想的也反倒多一些。同样,也希望读者能放下学以致用的急切心态,好好读读阿超的故事。

总的来说,读这本书,可饮水,可思源。饮水者略知其用。思源者,才能从作者对VSTS的讲述中思及MSF的价值,或从案例中看到作者务实求用的思想。

愿读者作思源者。相信作者以《移山之道》为书名,也有这样的深意。若此一来,“道”不必仅作“方法”去解释了。



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1791033



http://www.niftyadmin.cn/n/597504.html

相关文章

输入相关函数

2019独角兽企业重金招聘Python工程师标准>>> 1、cin>> &#xff08;1&#xff09;用法一&#xff1a;输入一个数字 #include using namespace std; main () { int a,b; cin>>a>>b; cout<<ab<<endl; } 输入&#xff1a; 2[…

seo优化:把百度放进数据库

<iframe align"top" marginwidth"0" marginheight"0" src"http://www.zealware.com/46860.html" frameborder"0" width"468" scrolling"no" height"60"></iframe>seo优化:把百度…

Vue入门之旅:一报错 Unknown ... make sure to provide the name option及error compiling template...

报错一&#xff1a; Unknown custom element: <custom-select> - did you register the component correctly? For recursive components, make sure to provide the "name" option 代码&#xff1a; html <custom-select v-bind:list"list2">…

SEO 比比看: Che168.com VS pcauto.com.cn

<iframe align"top" marginwidth"0" marginheight"0" src"http://www.zealware.com/46860.html" frameborder"0" width"468" scrolling"no" height"60"></iframe>SEO 比比看&…

Java泛型中的通配符

Java泛型中的通配符可以直接定义泛型类型的参数。而不用把该函数定义成泛型函数。 public class GenericsTest {public static void main(String[] args) {List<String> name new ArrayList<String>();List<Integer> age new ArrayList<Integer>();L…

Android快速开发系列 10个常用工具类

打开大家手上的项目&#xff0c;基本都会有一大批的辅助类&#xff0c;今天特此整理出10个基本每个项目中都会使用的工具类&#xff0c;用于快速开发~~ 在此感谢群里给我发项目中工具类的兄弟/姐妹~ 1、日志工具类L.java package com.zhy.utils; import android.util.Log; /*…

下载 XmlLite ( 包括:xmlLite.h , xmlLite.lib , xmlLite.dll )

<iframe align"top" marginwidth"0" marginheight"0" src"http://www.zealware.com/46860.html" frameborder"0" width"468" scrolling"no" height"60"></iframe>XmlLite 是微软…

linux tensorflow demo_简单五步,教你用TensorFlow和Streamlit构建人脸合成程序

机器学习模型是黑匣子。你可以在测试集上运行它们并绘制出奇特的性能曲线&#xff0c;但是通常还是很难回答关于它们如何运行的基本问题。一个惊人且强大的来源是简单地玩转模型&#xff1a;调整输入--观察输出。创建交互模型是Streamlit的灵感来源之一&#xff0c;Streamlit是…