4

小规模团队(5 人以下)代码管理问题

 2 years ago
source link: https://www.v2ex.com/t/879876
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

V2EX  ›  程序员

小规模团队(5 人以下)代码管理问题

  god7d · 2 小时 32 分钟前 · 2356 次点击

在小规模团队中,招聘开发的标准应该包含比如不少于 5 年工作经验、代码风格优雅、有一定架构经验等,这样可以保证每个成员都可以独立开发并且保证质量。一般来说,小团队对新手的容忍度较低,只有中型团队以上可以考虑培养新手。

团队开发工作一旦分工完成,成员所负责的代码部分应该不允许他人修改,除非是在得到了充分沟通和授权的情况下。如果其他成员发现其代码问题,应当指出并由该成员自主修改。在团队成员长期稳定的情况下,成员所负责的代码应该与该成员长期绑定,实现成员对代码“终身负责“和风格统一的问题。有的公司规模不小但是流动率超高,每个人都抱着最快完成任务而不在意代码质量的想法,导致项目可维护性极差,甚至无法维护,而重构的代价是比较大的。(不过对于这种公司来说他们的产品可能是一锤子买卖)

对于开发工程师来说,光速交付然后快速重构的模式可能是非常恼人的,因为这样会让人觉得疲惫,且开发过程中不慎愉悦。当然付钱的是老板,很多时候开发工程师并没有选择。不过在一些传统行业中,很多时候软件是具备充足的开发时间的,这时候选择精雕细琢显然是两全其美的事情。

第 1 条附言  ·  1 小时 39 分钟前

招聘的时候就已经充分考虑了楼上说的问题,首先团队成员都有很强的自觉性,不存在写成“屎山”的问题,大家都是对代码质量有一定追求的人;其次,团队内部分工确实是五个人独立开发的,每个人开发的代码对于其他人都是黑盒,只要约定接口、处理好线程等问题就可以;最后团队不追求统一风格,团队的理念是给每个人充分的发挥空间,保持自己的特性。
34 条回复    2022-09-14 11:46:59 +08:00
Navee

Navee      2 小时 22 分钟前

gitlab
protect branch
merge request
code review
lcy630409

lcy630409      2 小时 20 分钟前

感觉有个问题
5 人小团队 一般订单不多,还要保证不少于 5 年工作经验,养得起么

代码终身负责 也会带来一个问题,每个人都有代码风格,说不好听点 叫癖好吧,,如果不让其他人插手 就会导致 shi 山 越来越高,后续这个人离职怎么办? shi 山代码 一般都是一个人堆出来的,多人参与的代码 shi 山几率小,有问题会有大概率被发现出来
golangLover

golangLover      2 小时 8 分钟前 via Android   ❤️ 2

反了。小团队给不起钱,都是找低水平的
nothingistrue

nothingistrue      2 小时 7 分钟前

“谁编码谁负责”可不是让你这样搞的,结对编程或者相互代码评审才是保证代码风格的途径。你这样搞是 5 个独立的人在开发,不是 5 人团队在开发。
Cbdy

Cbdy      2 小时 6 分钟前 via Android

GitHub
god7d

god7d      1 小时 57 分钟前

@lcy630409
@golangLover
@nothingistrue 看行业,很多传统制造业上千人,养 5 个人做个内部系统应该不成问题吧?可能你们一说软件就代入到互联网行业。在传统行业里,工作清闲朝九晚五,工资开的虽然没有互联网高,但是足以招到一些水平不错,代码风格良好的程序员了
h1104350235

h1104350235      1 小时 52 分钟前

过于理想化
jones2000

jones2000      1 小时 46 分钟前

基本就是钱的问题,5 年工作经验老手, 每个 6w/月要的吧,1 个月就要 30W ,1 年下来就要 360W ,还不包括 5 险 1 金。只要你钱给足,你要怎么管理代码都可以。
daimubai

daimubai      1 小时 44 分钟前   ❤️ 5

5 年工作经验老手, 每个 6w/月要的吧。


张嘴就来
zhujq

zhujq      1 小时 41 分钟前

5 年就要 6w 了啊,真好
beiyu

beiyu      1 小时 40 分钟前

5 年才 6W/月?少说得要个 10w 吧。
king888

king888      1 小时 38 分钟前

低情商在扯淡,高情商过于理想化
king888

king888      1 小时 36 分钟前   ❤️ 1

每个人开发的代码对于其他人都是黑盒。。。这还是团队嘛,就算是保密项目也没这么搞
darkengine

darkengine      1 小时 34 分钟前

这样的团队 OP 你组建出来了吗?

我目前见到的小团队,都是一两个 5 年以上经验的人,带其他新人做。
Torpedo

Torpedo      1 小时 29 分钟前

@golangLover 我觉得同事水平低,也是有办法让他们保持一致的代码风格的。如果能意识到团队代码风格有问题,又不能解决,那说明水平和所谓水平低的同事们没太大差别
VictorJing94

VictorJing94      1 小时 27 分钟前

@jones2000 ...老哥啥坐标啥行业...五年国内新一线一般也就 15-25 吧,高低都还有比较大浮动空间
ChenDJ

ChenDJ      1 小时 25 分钟前   ❤️ 1

借楼吐个槽,实验室环境,代码靠 U 盘在几个师兄弟之间同步,曾力推 gitlab ,小导直接把 build 文件夹传上去 T_T
daliusu

daliusu      1 小时 20 分钟前

就我在成都的经验,能做到你说的这些的,不会来你个 5 人团队。另外别太看不起传统工厂了,传统工厂也起码几十个码农,而且根本没有你这么做的,我从到成都就一直在传统厂干
god7d

god7d      1 小时 11 分钟前

@king888 这里的黑盒指的是不关心实现,只关心如何调用,所以你可能理解上存在一定偏差
@darkengine 我们这边都是 10 年以上的作 leader ,带一群 5 年左右的
@daliusu 我完全没说看不起啊,我是说传统制造业养 5 个完全不成问题😅
@ChenDJ 没有 git 不成方圆,以前同事有用 tfs 的,有用 svn 的,现在大家统一用 git
god7d

god7d      1 小时 8 分钟前

@daliusu 这个真不一定,像我们这种养老胜地基本上都是这样的,工资不高但是自由度高,自己设计自己开发爽歪歪
wu00

wu00      1 小时 1 分钟前

6 人团队,4 后 2 前
gitlab flow 、mr 、code review 、ci/cd
后端严格执行,有建立统一技术规范、编码风格等内部文档,堆了 2 年的代码,还很清爽。
前端仅使用 gitlab 做仓库和自动化部署,堆了一年已成屎山
shijingshijing

shijingshijing      1 小时 0 分钟前

**招聘的时候就已经充分考虑了楼上说的问题,首先团队成员都有很强的自觉性,不存在写成“屎山”的问题,大家都是对代码质量有一定追求的人;**
-----------------------------------------
盲目自信,“屎山”是相对的,即使是一个设计优良的系统,如果对应的业务飞速成长,后续也存在小马拉大车的问题,更不谈这个过程中一直存在的修修补补,哪怕不是“屎山”,掺入越来越多的老鼠屎也是不可避免的。
代码质量是个比较笼统的概念,是性能很好?是扩展性好?是可读性很好?还是 bug 很少?目前,我见到的几乎没有全面兼顾的,即使是开源的巅峰 Linux 内核这样的项目,特别是接近硬件的部分,里面也有一堆骚操作。

**其次,团队内部分工确实是五个人独立开发的,每个人开发的代码对于其他人都是黑盒,只要约定接口、处理好线程等问题就可以;**
-----------------------------------------
这一段几乎就可以确定,日后项目成为“屎山”是必然,黑盒意味着日常开发别人做 code review 无从下手,紧急时刻别人无法替补,人员离职别人无法接手。

**最后团队不追求统一风格,团队的理念是给每个人充分的发挥空间,保持自己的特性。**
-----------------------------------------
成为“屎山”条件+1 ,意思是给程序员最大的自由度吧,但是自由是有条件的,Linux 内核不仅想要 Merge 进主分支不仅要符合严格的内核代码风格规范,https://www.kernel.org/doc/html/v4.10/process/coding-style.html ,还要担心 Linus 这种仁慈的独裁者随时邮件骂你。软件工程的最高境界就是整个项目仿佛一个人写出来的,这个人的水平处于团队中上等级。
shijingshijing

shijingshijing      58 分钟前

写点小工具还可以,大点的项目,几乎不可能。
dayeye2006199

dayeye2006199      56 分钟前

团队的水平方差甚至比均值有时候更重要
HugoChao

HugoChao      55 分钟前

20 个人的团队算小还是中?
zhujq

zhujq      41 分钟前

@HugoChao 20 人感觉不小了
god7d

god7d      41 分钟前

@shijingshijing 写的很好,领教了。我们这边业务量很小,基本上就是把固定的几个功能尽量优化。即便有新项目其实对于开发这边来说意义不大,因为使用的基础设施还是老一套,一般重新套个壳子就可以了,所以重心还是维护那些基础设施,比如核心算法、把三方库替换成自己造的轮子等等。至于说自由度的问题,主要是为了营造宽松氛围,因为工资不高等客观因素,需要提供其他方面的条件,但是就公司里的人来说,本身也比较散漫自由。但你的回复依然非常有意义,非常感谢。
@wu00 我们这边的项目不是严格意义上的工程项目,带有科研性质,成员除了写代码还要做实验分析数据
CaptainD

CaptainD      27 分钟前

我们就是 5 人左右的小团队,但是公司系统较简单,可能管理方式没你说的那么复杂,但有一点相同,也都是黑盒开发,自己负责自己的代码,这里有个问题,如果某个人离职怎么办,且不说能否找到合适的人,就算有新人来未必很快上手,而且其他成员对离职者的代码并不了解,甚至负责的方向有很大差别,技术栈完全不同,容易有交接问题
shaojz2005

shaojz2005      21 分钟前

看行业,很多传统制造业上千人,养 5 个人做个内部系统应该不成问题吧?可能你们一说软件就代入到互联网行业。在传统行业里,工作清闲朝九晚五,工资开的虽然没有互联网高,但是足以招到一些水平不错,代码风格良好的程序员了
=============
实际上没那么理想的。

传统制造业,很多软件可以外包或者买现成的产品。

传统制造业,对技术的追求没那么高,待遇不会很高,招不到合适的人。

还有个很致命的问题,在于传统制造业的业务需求的扩展性不是很大,因此技术氛围也很差。等软件稳定成熟之后,剩下的人会陷入工作量不大的状态。闲则生变,要么是领导觉得人太闲可以炒了,或者是人自己觉得太闲、上升空间不大,也跑了。剩下的都是老油条,也就不要想什么开发的精益求精了。

要实现这样的目标,需要有一个非常靠谱的技术负责人,对技术有追求,但又不大想去大厂打拼了,往往是本地人、名牌大学毕业、有家庭这种,那么他就有长期留在一个地方的心态,并且可以带领团队追求高质量的软件开发,也不怕人员流动。

这样的状态,其实是可遇不可求的。
cubecube

cubecube      18 分钟前

不会不存在屎山问题,一个人觉得是金矿,另一个人没准会觉得是屎山。
代码风格的统一需要团队负责人规划实施
Crawping

Crawping      17 分钟前

@daimubai 人家养 5 个人 5 个 5 年的 6w 一个月 平均一个 1w2 怎么就成了 张嘴就来了...
god7d

god7d      9 分钟前

@CaptainD 我们这边非常依赖架构师,他会对所有人的代码进行 review ,然后每个人也会持续不断的进行技术文档更新,因此有人离职几乎都不需要交接;技术栈的问题有人离职架构师会暂时接手这些工作。btw ,我感觉我工作三分之一时间都在写文档,这边的文档可以用海量来形容,从专利说明书到每个人的技术文档、代码笔记、通讯协议文档、技术对接文档、技术支持文档等等都需要开发来完成,而且是一直更新的
god7d

god7d      6 分钟前

@shaojz2005 你说的很对,看楼上对 captainD 的回复,我们这边架构师就是你说的这种人,说这个架构师是整个团队的灵魂也不为过

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK