谈项目托管为什么从GitHub迁移到GitLab

在这篇文章之前,我想先说一下自己的关于项目托管工具的使用经历。
从最初使用SVN,到后来的github,转战到禅道,然后是现在使用的gitlab
就一个体会,看似整个使用过程变得复杂了,但是实际在开发过程中带来了很多很多的便捷,具体的优点就不在这里说了,网上一大堆。
但是有一个问题就是很多开发者会在想,我们写一个小项目,有必要使用这个github,gitlab,禅道等等管理工具吗?我以前也有想过,一个开发周期半个月的小项目有必要使用吗?要拉取,提交,请求合并等等。。。,但是在使用的过程中会愈发的觉得这是一个很好的管理工具以及会让你养成比较好的开发习惯。一个很简单的例子,有了版本,并且每一次提交有了标题,描述,很清楚知道这次提交是有哪些改动。可以让管理层便于项目开发进度的把控,回滚,降低风险等等。。。
好了,不多说了,下面开始正文吧。
为什么需要使用git?
这里分两个问题:

第一,有没有使用流水线和协作平台的必要

关于第一个问题 公司人员经常会有两个误区,

1.人少没必要使用协作和流水线工具

在实际产品研发过程中,一个课程开发,可能持续最短一周,每天进度不一样,会存在第四天课程研发出现错误回滚回第三天,或者第四天的案例需要第二天部分代码的情况。
同样,技术产品文档和优势力所产生的文档会存在不断的版本迭代,如果更新到第四版,需要第一版的资料做参考或者想查看一下版本迭代过程,是非常平常普遍的需求。
所以,即使一个人也需要版本的控制。
另外,经常会有其他部门如销售和运营需要产品部门输出协作的情况。协作互相沟通浪费时间,只要有两个人就存在版本和协作问题。

2.公司变化太多,项目管理软件满足不了多变的业务需求,增加管理成本。

公司变化太多自然会有大量的沟通和版本协作,这恰恰是协作平台的优势所在。另外变化太多自然会带来混乱,需要量化的管理和查找可以提高效率的部分。
举个例子:
在这里插入图片描述
这个如果用燃尽图表示就是图中蓝线的部分:
在这里插入图片描述
横轴:显示工作天数
竖轴:显示剩余工作
计划剩余工作曲线:该曲线实际上是一条直线
实际剩余工作曲线:该曲线受团队实际工作效率的影响在计划曲线上下浮动
在这里插入图片描述
明显,实际项目一定不会那么理想,具体实际情形可以参考:
燃尽图是什么?
协作软件可以客观的反应项目的进度和任务量,以及客观出现的各种情况。比如由于某个里程碑没有完成造成了整个项目延迟,比如整个计划分配不合理,造成工作量太大根本无法完成,都能客观的反映出来,这对项目的合理管理非常有必要。

第二,为什么使用gitLab?

同类竞品
1.QQ空间,丢数据,另外根本不存在版本控制,更没法监控项目进度
2.网盘类,根本不存在版本控制,更没法监控项目进度
3.禅道、teambition等项目软件,使用太复杂,培训成本太高,另外都付费。
4.SVN 部署麻烦,不存在项目进度控制。
5.Github 免费不提供私有库,另外没法进行精确权限控制,无法满足企业私密和安全需求。
6.GitLab 免费,不需要部署,操作简单,可以流水线和项目进度协作,私有库满足安全性和私密需求。
怎么用?这里以实际项目为例。
以51talkshow项目为例,

1.第一步,把网上库下载下来,这个只做一次就好。
git clone [email protected]:breadteam/51talk.git
2.第二步,我想看其他人更改的最新版本。
git pull
3.第三步骤,我想提交东西让别人看到
git pull
git add .
git commit -m '提交说明,方便查阅'
git push

我不想改东西,也不想上传东西,我想看看产品部有什么新的进展或者有什么需要我协作的?
在这里插入图片描述

第三,用gitLab好处

1.不管是产品部还是其他部门想看三个月前某个课程的版本都很容易看到,需要东西不需要再跟产品部要

2.任何部门都能看到产品部门的进度不用问产品部活儿干的怎么样了,那里摆着呢

3.清晰的项目管理和责任明确,产品延迟上线原因很明确。比如产品确实没上线可是一个月产品的版本迭代了4次,
  文档超过10万字,这说明工作量太大制定计划不合理。运营没有提供运营方案造成产品一直在等着。
  说明不是产品部的问题,通过燃尽图可以清晰的知道团队的状态。
  
4.清晰的看到产品迭代,为产品研发提供参考

5.能够形成项目管理课程,为我们的后续产品做准备,同时课程设计过程完全公开,降低产品和运营不匹配的问题。

6.作为最大和程序员首选平台,使用这个平台有利于销售和运营了解我们的用户思维方式。

第四,建议

在这里插入图片描述
从这篇文章大家可以看到其实GitLab的使用和GitHub几乎一致,难度相当,GitHub是一个优秀的管理系统,不过确实私有库收费,另外权限管理不够,这是一个硬伤,如果你是个人开发者想通过Github提高个人影响力和代码希望更多人评论和star那是一个很好的选择,但是作为公司明显不是为了这个目的,而我们的公司做技术的目的更多不是为了秀,而是为了满足企业需求。
所以,如果你很努力最后却并没有得到公司应有的回报,那么你就要考虑下了,你是不是学错了,学了一堆屠龙之技,记住,技术的价值在于解决问题

猜你喜欢

转载自blog.csdn.net/gu_wen_jie/article/details/83577779