软件集成策略故事连载----对项目的不利影响竟然这么大

 

2对项目的不利影响竟然这么大

    项目经理老刘跟晓川说,等这一轮集成做完,一起聊一聊。晓川听了有点紧张。不过想一想,自己已经很努力了,也没有什么可担心的。其实关键是程序员提交的质量。倒正好可以借这个机会跟领导沟通一下。

 

周一早上。老刘先是说了些感谢的话,感谢晓川的辛苦工作。晓川听了很欣慰。接着,老刘用笔记本给晓川展示了一张巨大的图,跟他说,这是项目的任务计划图。好复杂啊,晓川看得一愣一愣的。老刘见状,转向白板,在白板上给晓川画了张简单的图。如图 1所示。


 晓川,我想让你了解,你的工作对于这个项目有多重要。看这张图,这是一个典型的例子。开发任务 BCD要想开始,必须在开发任务 A完成之后。类似这样一个一个任务串在一起,就决定了项目至少需要多久才能完成。这个你能理解吧?

能。

但是现在 A任务完成后, BCD任务不能立即开始。即便是 BCD任务的人手已经到位了也不行。你知道细节。

嗯,A任务完成后,要等到下一轮集成时才能去集成。而集成本身也需要时间,要等集成结束, A任务对应的改动进了基线才行。这时候大家才能看到 A任务的成果, B任务才能开始。晓川很熟悉。

现在要等多久?老刘问。

嗯, 那要看我这边集成需要多久。刚结束的一次是整整一周。哦,不止是集成的时间。还要算上等待集成的时间。如果刚好是周一上午完成的,那几乎不用等。如果不巧 是周二完成的,或者就晚了一步,是周一下午完成的,那就要先等上两个星期。也就是说,平均要先用一个星期等待进入集成环节,再用一个星期等待完成集成。

晓川说完,陷入沉思。以前只是觉得自己的工作很辛苦,没想到,整个项目都在看着我,指望我快些、再快些……

我知道你很辛苦,晓川,老刘说,现在你也知道我多么期待你把工作做得更好。你有什么好主意吗?

晓川:我觉得关键是开发人员提交代码的质量。如果他们在提交前保证代码是可以编译通过的,那集成的时候就不会有构建问题了。现在昀费时间的就是集成的时候反复构建。

老刘:你是说,大部分时间是用在反复构建上,而不是在这之前的版本合并上?

晓川:对, 是这样。比如这次集成,星期一下午一点开始处理大家的提交。您知道,大家的代码改动,都在各自的任务分支上。所谓提交,就是告诉我,等到集成时,要把他的 分支合并到集成分支。在我合并的过程中,可能会遇到版本合并冲突,我就要协调,谁提交的,就找谁解决。快下班的时候我给所有的还有提交没有处理的程序员发 了邮件,让他们待命,准备解决冲突。这样,到晚上九点的时候,所有的版本合并冲突都解决完了。而后面的时间,就都费在反复构建上了。

老刘:好。那看来反复构建昀费时间。然后你的思路是,如果程序员提交的版本都是能构建的,你这里就不需要反复构建了?

对。这样的话,说不定周二早上,任务 BCD就可以开始了。 晓川很有信心。

如果程序员的提交都没问题,你确定你构建的时候就肯定没问题么?老刘降低了语速,一个字一个字地说。

那当然,但是……晓川意识到了什么,好像这里的逻辑看似简单明确,其实并不是严格的推理。

这样吧,我看到你有一些想法,这很好。你再想一想。多调查调查,看看现在究竟是什么原因需要反复构建。也跟大家聊聊。总之,请你帮忙想想办法,缩短从任务 A完成到任务 B可以启动这中间的时间。

本文节选自《软件集成策略》一书

董越 .
电子工业出版社出版。

转载于:https://www.cnblogs.com/broadview/p/3326519.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/460783.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uboot源码——汇编阶段的start.S文件

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 一、总结 1、关于阶段的定义 第一阶段,即在内部SRAM运行的阶段,简单地理解为汇编阶段。此阶段主要涉及start.S文件,在cpu/s5pc11x/目录下。第一阶段以ldr pc _sta…

TCP三次握手及四次挥手详细图解(转)

1.链接:http://www.cnblogs.com/hnrainll/archive/2011/10/14/2212415.html Andrew Huangbluedrum163.com 相对于SOCKET开发者,TCP创建过程和链接折除过程是由TCP/IP协议栈自动创建的.因此开发者并不需要控制这个过程.但是对于理解TCP底层运作机制,相当有帮助.而且对…

rm命令:linux如何反向删除文件

假如某目录下有多个文件:file1,file2……filen。 保留单个文件file1,其他文件删除的方法: # shopt -s extglob # rm -fr !(file1) 保留多个文件如file1和file2,其他文件删除的方法: # shopt -s extglob…

何以解养老之忧

何以解养老之忧 何以解养老之忧 很久没有写读后感了,记得那还是上高中以前做的事情。今天,2013年9月的某日。我读了一篇社论,题目为《如何让民众信任“以房养老”》的文章。 从文章当中得知,2012年底我国60周岁以上老年人口已达1.…

机器学习算法之旅

在理解了我们需要解决的机器学习问题之后,我们可以思考一下我们需要收集什么数据以及我们可以用什么算法。本文我们会过一遍最流行的机器学习算法,大致了解哪些方法可用,很有帮助。 机器学习领域有很多算法,然后每种算法又有很多延…

Android Handler的使用方法

如何让程序5秒钟更新一下Title.首先我们看一下习惯了Java编程的人,在不知道Handler的用法之前是怎么样写的程序,代码如下所示: package com.example.androidhandletest; import java.util.Timer;import java.util.TimerTask; import android.os.Bundle;import andro…

转:[C/C++]2014年7月华为校招机试真题(一)

[C/C]2014年7月华为校招机试真题(一)转载于:https://www.cnblogs.com/kira2will/p/4039521.html

df命令:显示系统上可使用的磁盘空间

以下内容源于网络资源的学习与整理,如有侵权请告知删除。 简介 df命令的英文全称即“Disk Free”,用于显示系统上可使用的磁盘空间。 日常普遍用该命令可以查看硬盘的挂载点,磁盘被占用了多少空间、还剩多少空间等信息。 默认单位为KB&#…

核心动画--基本动画

#pragma mark 动画暂停- (void)pauseAnimation{// 1. 取出当前的动画的时间点,就是要暂停的时间点CFTimeInterval pauseTime [self.myView.layer convertTime:CACurrentMediaTime() fromLayer:nil];// 2. 设置动画的时间偏移量,指定时间偏移量的目的是让…

du命令:显示文件或者目录的大小

以下内容源于网路资源的学习与整理,如有侵权请告知删除。 由于磁盘空间将满,需要整理磁盘时,想知道哪些文件夹的内容过大,以及删除一些无用文件,du命令会非常有用。在用户目录下输入“du --max-depth1 -h”查看哪些文…

windows 下查看进程占用

2019独角兽企业重金招聘Python工程师标准>>> //查找出占用8086端口进程的ID netstat -nao | findstr8086 //本机输出效果为: TCP 0.0.0.0:8086 0.0.0.0:0 LISTENING 804 //很显然,进程ID是804 //找出ID为804的进程名 …

【知乎摘要】女生婚前应该清楚男友哪些方面了才能嫁给他

纽约时报15问 1. 我们要不要孩子?如果要,主要由谁来负责? 2. 我们的家庭赚钱能力及目标是什么?消费观及储蓄观会不会发生冲突? 3. 我们的家庭如何维持?由谁来掌握可能出现的风险? 4. 我们有没有详尽地交换…

利用tftp将内核镜像下载到开发板

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 一、前言 除了利用fastboot将内核镜像从PC主机下载到开发板的inand中,还可以利用tftp指令将虚拟机linux系统中的镜像下载到开发板的内存中。比如将bootcm设置如下: set boot…

MySQL数据库增删改查

常用的数据类型: int:整数类型,无符号的范围【0,2^32-1】,有符号【-2^31,2^31-1】 float:单精度浮点,4字节64位 double:双精度浮点,8字节64位 char:固定长…

C#多线程案例基础

C#多线程案例基础(转) 在学习多线程之前,我们先来看几个概念: 1,什么是进程? 当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源,当然一个程序也可能…

什么是shell?

本文源于网络资源的学习与整理,如有侵权请告知删除。 shell的概念 shell,它的意思是“壳”,如果理解shell在linux中的作用(内核的外壳,既保护了内核,也向用户提供了操作内核的接口)&#xff0c…

chmod的理解

ll file 共有是十位第一位:如果是 - 表示它是文件第一位:如果是d 表示它是目录剩下的333 分别表示 属主u属组g其他用户o所以如下:转载于:https://blog.51cto.com/zlong37/1567472

中国象棋程序的设计与实现(五)--回答CSDN读者的一些问题

最近写了很多文章,同时,也上传了很多免积分的FansUnion原创的优质资源,有兴趣的同学可以看来我的CSDN博客瞧瞧 http://blog.csdn.net/FansUnion。近期,收到了不少读者的评论、反馈、留言。对于其中的一些问题,我想专门…

几种常见的shell:sh、bash、csh、tcsh、ash

以下内容源于C语言中文网的学习与整理,非原创,如有侵权请告知删除。 我们知道,Windows、Mac OS、Android 等操作系统由一家公司开发,所有的核心软件和基础库都由一家公司做决定,容易形成统一的标准,一般不会…

第九周项目6-穷举法之年龄几何

张三、李四、王五、刘六的年龄成一等差数列,他们四人的年龄相加是26,相乘是880,求以他们的年龄为前4项的等差数列的前20项。 构建代码: /**Copyright (c) 2014,烟台大学计算机学院*All gight reserved.*文件名称:temp.…