博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
敏捷开发实践(3)-我们为什么需要持续集成?
阅读量:4049 次
发布时间:2019-05-25

本文共 1180 字,大约阅读时间需要 3 分钟。

背景

        自从我们使用scrum进行项目开发后,出现了这样那样的问题,有些是因为我们对scrum的理解不到位,有些则是客观因素导致的,针对这些问题,在每次迭代的总结会上,我们进行了反思,并根据具体环境对scrum进行了一一调整,想通过几篇文章和大家分享一下我的经验。


我说的不一定正确,只是描述问题,然后说说我对问题的看法,采取的解决方案,希望使用敏捷开发的大牛提供宝贵意见。


为什么我们需要持续集成?


又要从我们的故事说起,我越来越喜欢讲故事了……

在前几个sprint的评审会上,我们只是让各个组员单独演示了自己开发的功能,并且约定时间,大家都提交一个稳定的版本,做了一次集成。

过了一些天,领导L突然造访,想看看项目进展,让我们集成起来,这时候问题来了,各个模块开发进度不一,很难找到某个时间点,让大家顺利集成。上次是约定好时间,大家有所准备,这次又不能使用上次的集成版本,太陈旧了。所以出现了这样的情况,领导L坐在那里等着看,大家赶紧手忙脚乱的构建,然后集成,幸好没出大问题,结果可以看了,但中间浪费了不少时间。

领导L的造访,说明了他对进度和质量的担忧,我们该如何让他放心?

另一方面,scrum提倡,可用的软件优于面面俱到的文档。但如何保证可用软件的质量成了一个棘手的问题,尤其是在不断变化的需求中。

怎么办才能看出软件质量的优劣,进度的快慢?  经常集成起来,看看效果,不就知道质量怎么样,进度怎么样了嘛?而且经常集成起来看,有助于发现问题,解决问题,如需求有没有偏差,是不是领导和客户想要的效果,又或者发现和解决这样那样的bug等等。

但经常集成,又会牵扯开发人员很多精力去更好地协同工作,这是在开发过程中不可回避的问题。

这次又得站在巨人的肩膀上了,看下面一段话:

持续集成正是针对上述一系列问题的一种软件开发实践,
它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成。而每次的集成都是通过自动化的构建来验证,包括自动编译、发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件。
                                                                                                                                                                              —— 
Martin Fowler

持续集成的核心价值在于:

1、降低风险,每天都可能发生多次集成,有利于及早发现软件质量问题。

2、自动完成,通过自动化工具可以避免开发人员投入过多精力

3、软件运行状态随时可看,可以增加领导和团队成员对项目的信心。

4、利于对未来进行把控,持续集成的信息有利于我们对未来进行更好地规划和把控。


概念不多说,我们团队非常需要持续集成,所以经过调研,我们采用jenkins作为持续集成的大管家,Jenkins 就是一个配置简单和使用方便的持续集成服务器。由它完成自动构建、自动部署、集成。用了一段时间,还不错,上面说的一系列问题也迎刃而解。

写到这里有一点小感触:很多东西的产生是那么地理所当然,顺理成章。

转载地址:http://rpdci.baihongyu.com/

你可能感兴趣的文章
fastcgi_param 详解
查看>>
Nginx配置文件(nginx.conf)配置详解
查看>>
标记一下
查看>>
IP报文格式学习笔记
查看>>
autohotkey快捷键显示隐藏文件和文件扩展名
查看>>
Linux中的进程
查看>>
学习python(1)——环境与常识
查看>>
学习设计模式(3)——单例模式和类的成员函数中的静态变量的作用域
查看>>
自然计算时间复杂度杂谈
查看>>
当前主要目标和工作
查看>>
使用 Springboot 对 Kettle 进行调度开发
查看>>
一文看清HBase的使用场景
查看>>
解析zookeeper的工作流程
查看>>
搞定Java面试中的数据结构问题
查看>>
慢慢欣赏linux make uImage流程
查看>>
linux内核学习(7)脱胎换骨解压缩的内核
查看>>
以太网基础知识
查看>>
慢慢欣赏linux 内核模块引用
查看>>
kprobe学习
查看>>
慢慢欣赏linux phy驱动初始化2
查看>>