敏捷实践系列(三):代码管理流程

我们已经从SVN切换到Git很多年了,现在几乎所有的项目都在使用Github管理。对于那些还在坚持使用SVN的,我实在想不出原因,权且称作守旧派吧。

Git的优点

Git的优点很多,但是这里只列出我认为非常突出的几点。

  1. 由于是分布式,所有本地库包含了远程库的所有内容。
  2. 优秀的分支模型,打分支以及合并分支,机器方便。
  3. 快速,在这个时间就是金钱的时代,Git由于代码都在本地,打分支和合并分支机器快速,使用个SVN的能深刻体会到这种优势。

感兴趣的,可以去看一下Git本身的设计,内在的架构体现了很多的优势,不愧是出资天才程序员Linus (Linux之父) 之手。

版本管理的挑战

虽然有这么优秀的版本管理工具,但是我们面对版本管理的时候,依然有非常大得挑战,我们都知道大家工作在同一个仓库上,那么彼此的代码协作必然带来很多问题和挑战,如下:

  1. 如何开始一个Feature的开发,而不影响别的Feature?
  2. 由于很容易创建新分支,分支多了如何管理,时间久了,如何知道每个分支是干什么的?
  3. 哪些分支已经合并回了主干?
  4. 如何进行Release的管理?开始一个Release的时候如何冻结Feature, 如何在Prepare Release的时候,开发人员可以继续开发新的功能?
  5. 线上代码出Bug了,如何快速修复?而且修复的代码要包含到开发人员的分支以及下一个Release?

大部分开发人员现在使用Git就只是用三个甚至两个分支,一个是Master, 一个是Develop, 还有一个是基于Develop打得各种分支。这个在小项目规模的时候还勉强可以支撑,因为很多人做项目就只有一个Release, 但是人员一多,而且项目周期一长就会出现各种问题。

相关内容:

我们如何从领域驱动开发当中获益–王德水

领域驱动设计,遇见你之前 我们公司推行和实践敏捷已经很多年了,SCRUM已经成功应用于大部分项目,得益与业界敏捷开发大师以及国内很多优秀工程师的分享和宣传,我们使用了很多优秀的软件开发实践,比如测试驱动开发(TDD),行为驱动开发(BDD), 持续集成(CI)等等为我们带来了很多收益。由于我们公司以……

IOT 研究 技术趋势 洞见与思考 观察与技术趋势 软件开发 94 阅读

如何选择靠谱的软件外包公司

在信息化建设中,随着IT与业务进一步融合, IT成为推动业务转型、管理变革的重要力量。很多企业在10几年前购买的软件产品,已经无法适应日益变化的业务需求,需要根据企业自身业务模式进行定制化开发,以助力企业发展及业务转型。 传统企业通常没有专业的软件开发团队,组建IT团队的成本比较高,后续IT人才维护……

观察与技术趋势 软件开发 85 阅读

Mind Matter项目分享——设计不仅仅是设计

Mind Matter软件旨在促进企业的战略发展,并帮助推动战略的实践。其核心业务是开发下一代战略软件和服务。与各种类型和规模的企业组织合作,共同定义、设计和执行战略。 目前开发的软件作为一款简单精巧的协助工具,帮助用户定义、设计、讨论、决策和交付发展战略。 Mind Matter项目自2017年9……

技术趋势 观察与技术趋势 80 阅读

远程办公:谈谈我遇到的挑战与机遇

每每与身边朋友说起我在家上班,他们都会投来羡慕的目光,外加两个字:“真爽”。而我,只能无奈地回应:“其实也就那样了,并没有多爽。”这是心里话,但是他们只会觉得我矫情,得了便宜还卖乖,我也只能呵呵苦笑了。
我承认他们部分正确,是有点身在福中不知福,这也是人的天性吧,永远不满足。但是,我之所以如此笃定地说,在家办公没有那么舒坦,是因为这两年的远程办公经验让我明白,这种看似“爽”的工作方式,其实暗含着许多挑战,对远程工作者也提出了更高的要求。

敏捷实践 洞见与思考 软件开发 远程办公 100 阅读

引导客户不是靠话术 而是全然的负责

近期我们接了一个在线教育的客户,他们业务发展很快,旧有的系统虽然比较稳定但已经不能适应业务发展的需求,因此找到我们。充分了解需求之后,我们判断客户提出的任务不现实,在规定时间内完不成,既定目标不可行。于是我们将需求拆分,将功能实现的顺序重新安排:哪些在3个月内可以完成,哪些不行,同时接手客户的运维。

敏捷实践 观察与技术趋势 软件开发 远程办公 82 阅读

跟客户面对面确认需求是一种什么样的体验?

Matthew是个澳洲客户,前期有过很长时间的沟通和推进,我们对业务和项目需求目标大概了解了。但是针对第一个要发布的版本,要做成具体什么样的产品还是两眼一抹黑。故此,客户来我们办公室两周,专门讨论具体细节。期望经过两周的密集讨论,我们能有若干产出: 想想都挺多事情的。当然,理想都是很丰满的……过程不……

观察与技术趋势 软件开发 76 阅读

善用工具——成就高效沟通协作的团队

《敏捷软件开发宣言》  我们一直在实践中探寻更好的软件开发方法,身体力行的同时也帮助他人。由此我们建立了如下价值观: 个体和互动 高于 流程和工具  工作的软件 高于 详尽的文档  客户合作 高于 合同谈判  响应变化 高于 遵循计划 也就是说,尽管右项有其价……

敏捷实践 观察与技术趋势 软件开发 85 阅读

我的ODC项目经验分享

项目介绍:客户公司旨在为病人提供更加优质低价的治疗方案。其主系统联合病人、医师和医保公司,根据病人的病症、体检数据、过敏情况、生活习惯和过往服药方案等信息,结合其内部一套引擎工具,检查用药过程中的问题(Drug Therapy Problem)并提出给药建议。 在三年的合作过程中,我们不断丰富其主系……

观察与技术趋势 软件开发 94 阅读

敏捷实践系列(二)

大话西游里有一段因为没有沟通的经典, 结局如何大家都知道。 唐僧:你想要啊?悟空,你要是想要的话你就说话嘛,你不说我怎么知道你想要呢,虽然你很有诚意地看着我,可是你还是要跟我说你想要的。你真的想要吗?那你就拿去吧!你不是真的想要吧?难道你真的想要吗?…… 悟空:… 一. 敏捷项目沟通尤其重要 敏捷开……

敏捷实践 观察与技术趋势 软件开发 66 阅读

敏捷实践系列(一)

开篇: 悟空:师傅,为什么你写东西,喜欢写系列呢? 师傅:因为很多东西需要长期的实践呀。 悟空:怎么又开始说敏捷了 师傅:就像一本好书,常读常新,人生不同阶段过的都是不同的人生呀。 悟空:师傅,为什么你原来用上、中、下呢? 师傅:因为原来只写了个上中,别人一直问下,现在如果只写一二,别人要问,我就说……

敏捷实践 观察与技术趋势 软件开发 66 阅读