这两天看了《移山之道:VSTS软件开发指南》,对团队软件开发又有了新的认识。也许对于我们这些软件开发的新手来说,最重要的是具体技术与应用框架,但读了这本书后我感觉到,实际团队项目中工具的使用是次要的,更重要的在于对人员的控制,如何高效得让一个团队各司其职、彼此之间在充分信息交流的基础上协同工作才是一个软件开发过程中最重要的因素。

VSTS 就是微软在MSF框架的基础上发布的一套团队软件开发集成环境,除了开发工具外还集成了测试工具、构建工具、管理工具和协作工具。其逻辑结构简单来说,就是把源代码存放在统一的服务器上,通过服务器程序为客户端不同的人员提供了不同的功能模块,也就是提供了不同的工具,比如为测试人员提供测试模块,为管理人员提供管理模块。不同的模块之间是高度耦合、协同工作的,我认为这样的运作体系之所以高效,除了因为各种工具集成完善之外,更多的原因在于所有人员一切的操作有有迹可寻,这一方面加强了人员的信息交流,免去了很多沟通的障碍,另一方面人们可以学习过去的经验,有一个“错题集”为你整理了过往的全部错题记录,这对于整个团队的建设十分有利。

说到底VSTS只是一个集成环境,完全可以有别的类似的工具出现,微软的这套工具之所以强大,原因在于其背后更深层次的思想与内涵,也就是刚刚说的MSF,即 Microsoft Solver Framework,中文是“微软解决问题框架”,说白了就是大型系统开发指南,是微软在多年软件开发经验的基础上总结出来的一套框架。下面就说说MSF的模型与准则。

MSF框架提出了软件开发过程中的组队模型和过程模型。组队模型其实就是如何进行人员配置,MSF 中技术人员组成为:开发、测试、用户体验、产品管理、程序管理、发布管理几个方面,这套人员体系的提出看似简单,其实背后藏着许多团队的血与泪。

更重要的是过程模型,这是一个团队开发软件的流程框架,如果缺少了这样一套流程体系,像无头苍蝇一样乱撞,开发过程必定会非常低效。过去的软件过程模型有两大类,瀑布模型和螺旋模型。瀑布模型是指,为整个软件开发过程设定一个个里程碑,在完成一个阶段的任务前,后续的工作都无法进行。这对用户需求始终保持不变的项目来说是适用的,但一旦用户需求有变化,整个里程碑的设置都要修改,十分低效。螺旋模型指的是依据用户需求不断改变重新构建软件,这对小型项目比较有效,但一旦项目较大,整个过程会非常混乱。

MSF框架提出的过程模型继承了以上两种模型的优点,它既使用了阶段里程碑的设计,也使用了迭代的方法根据需求重复构建软件。该过程模型中,软件不是像瀑布模型一下开发完整,而是先开发核心功能并构建、发布,然后再根据需求变化加入其他新的功能,不断发布新的版本,这是一个迭代的过程,体现了螺旋模型的优点。而在每一个版本的开发流程中,设置不同的阶段与里程碑,具体分为构思阶段、计划阶段、开发阶段、稳定阶段、部署阶段,分别对应需求分析、方案设计、技术代发、软件测试、项目发布这几个步骤。这样一套结合了迭代与里程碑的高效过程模型,既灵活多变又可稳步前进。

MSF有如下8个准则:推动信息共享与沟通;为共同的远景而工作;充分授权和信任;各司其职,对项目共同负责;重视商业价值;保持敏捷,预期变化;投资质量;学习所有的经验。这样一套设计准则在过程模型中有所体现,也为VSTS工具的设计提供了核心思想,我觉得其更重要的作用是为所有团队人员提供了一套行为与思想准则,是它们软件开发生涯中的人生观与价值观,心齐了步伐才能一致,思想统一团队才能前进。

VSTS集成环境就是对MSF框架的具体实现,其中蕴含了MSF框架的模型与准则。就算大家将来使用不到VSTS工具,了解MSF框架的基本原理对于团队软件开发还是必不可少的。

《移山之道:VSTS软件开发指南》读书笔记的更多相关文章

  1. csapp读书笔记-并发编程

    这是基础,理解不能有偏差 如果线程/进程的逻辑控制流在时间上重叠,那么就是并发的.我们可以将并发看成是一种os内核用来运行多个应用程序的实例,但是并发不仅在内核,在应用程序中的角色也很重要. 在应用级 ...

  2. CSAPP 读书笔记 - 2.31练习题

    根据等式(2-14) 假如w = 4 数值范围在-8 ~ 7之间 2^w = 16 x = 5, y = 4的情况下面 x + y = 9 >=2 ^(w-1)  属于第一种情况 sum = x ...

  3. CSAPP读书笔记--第八章 异常控制流

    第八章 异常控制流 2017-11-14 概述 控制转移序列叫做控制流.目前为止,我们学过两种改变控制流的方式: 1)跳转和分支: 2)调用和返回. 但是上面的方法只能控制程序本身,发生以下系统状态的 ...

  4. CSAPP 并发编程读书笔记

    CSAPP 并发编程笔记 并发和并行 并发:Concurrency,只要时间上重叠就算并发,可以是单处理器交替处理 并行:Parallel,属于并发的一种特殊情况(真子集),多核/多 CPU 同时处理 ...

  5. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  6. 读书笔记--SQL必知必会18--视图

    读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...

  7. 《C#本质论》读书笔记(18)多线程处理

    .NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Li ...

  8. C#温故知新:《C#图解教程》读书笔记系列

    一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...

  9. C#刨根究底:《你必须知道的.NET》读书笔记系列

    一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...

  10. Web高级征程:《大型网站技术架构》读书笔记系列

    一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...

随机推荐

  1. Django积木块一——验证码

    验证码 在github中搜验证码,那个有使用文档 # pip install django-simple-captcha==0.4.6 # setting app captcha # url url( ...

  2. RabbitMQ与消息总线

    Windows环境安装RabbitMQ,https://www.cnblogs.com/xibei666/p/5931267.html 1.消息发送流程 using System; using Sys ...

  3. 设置Acad2008默认启动 win10设置默认cad2008启动 调试设置.

    Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\AutoCAD.Drawing.17\shell\open\command]@=&quo ...

  4. Jenkins高危代码执行漏洞检测/开源漏洞靶场

    漏洞细节可以参看安全客的文章:https://bbs.ichunqiu.com/thread-22507-1-1.html Jenkins-CLI 反序列化代码执行(CVE-2017-1000353) ...

  5. Pycharm中自动生成作者,日期等信息

    初次安装使用PyCharm,在新建.py文件时会发现文件头并没有什么信息,因此,使用模板会比较方便.方法如下: 1.打开PyCharm,选择File--Settings 2.依次选择Editor--- ...

  6. 课程四(Convolutional Neural Networks),第四 周(Special applications: Face recognition & Neural style transfer) —— 3.Programming assignments:Face Recognition for the Happy House

    Face Recognition for the Happy House Welcome to the first assignment of week 4! Here you will build ...

  7. Centos 7 Asp.net core 使用QRCoder 报“Unable to load DLL 'gdiplus'"

    环境: Centos7 .Net core 2.0 问题: 使用QRCoder 报“Unable to load DLL 'gdiplus'" 同 https://q.cnblogs.com ...

  8. epel安装第三方扩展源后,运行yum报错的解决方案

    yum安装报错:Cannot retrieve metalink for repository: epel. Please verify its path and try again 解决方法: 一句 ...

  9. SQL Server性能优化(12)非聚集索引的组合索引存储结构

    一,非聚集索引组合索引 用户可以在多个列上建立索引,这种索引叫做复合索引(组合索引).但复合索引在数据库操作期间所需的开销更小,可以代替多个单一索引.当表的行数远远大于索引键的数目时,使用这种方式可以 ...

  10. mysql 开发进阶篇系列 31 工具篇(mysql连接工具与MyISAM表压缩工具)

    一.mysql 连接工具 在mysq提供的工具中,DBA使用最频繁的莫过于mysql.这里的mysql是指连接数据库的客户端工具. 1.1 连接选项 -u, -- user=name 指定用户名 -p ...