小规模团队(5 人以下)代码管理问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
god7d
V2EX    程序员

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

  •  
  •   god7d 2022-09-14 09:20:29 +08:00 8578 次点击
    这是一个创建于 1130 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    第 1 条附言    2022-09-14 10:13:36 +08:00
    招聘的时候就已经充分考虑了楼上说的问题,首先团队成员都有很强的自觉性,不存在写成“屎山”的问题,大家都是对代码质量有一定追求的人;其次,团队内部分工确实是五个人独立开发的,每个人开发的代码对于其他人都是黑盒,只要约定接口、处理好线程等问题就可以;最后团队不追求统一风格,团队的理念是给每个人充分的发挥空间,保持自己的特性。
    47 条回复    2022-09-16 12:34:40 +08:00
    Navee
        1
    Navee  
       2022-09-14 09:30:24 +08:00
    gitlab
    protect branch
    merge request
    code review
    lcy630409
        2
    lcy630409  
       2022-09-14 09:33:03 +08:00   1
    感觉有个问题
    5 人小团队 一般订单不多,还要保证不少于 5 年工作经验,养得起么

    代码终身负责 也会带来一个问题,每个人都有代码风格,说不好听点 叫癖好吧,,如果不让其他人插手 就会导致 shi 山 越来越高,后续这个人离职怎么办? shi 山代码 一般都是一个人堆出来的,多人参与的代码 shi 山几率小,有问题会有大概率被发现出来
    golangLover
        3
    golangLover  
       2022-09-14 09:44:47 +08:00 via Android   3
    反了。小团队给不起钱,都是找低水平的
    nothingistrue
        4
    nothingistrue  
       2022-09-14 09:45:38 +08:00   2
    “谁编码谁负责”可不是让你这样搞的,结对编程或者相互代码评审才是保证代码风格的途径。你这样搞是 5 个独立的人在开发,不是 5 人团队在开发。
    Cbdy
        5
    Cbdy  
       2022-09-14 09:47:01 +08:00 via Android
    GitHub
    god7d
        6
    god7d  
    OP
       2022-09-14 09:55:25 +08:00
    @lcy630409
    @golangLover
    @nothingistrue 看行业,很多传统制造业上千人,养 5 个人做个内部系统应该不成问题吧?可能你们一说软件就代入到互联网行业。在传统行业里,工作清闲朝九晚五,工资开的虽然没有互联网高,但是足以招到一些水平不错,代码风格良好的程序员了
    h1104350235
        7
    h1104350235  
       2022-09-14 10:00:58 +08:00
    过于理想化
    jones2000
        8
    jones2000  
       2022-09-14 10:06:56 +08:00
    基本就是钱的问题,5 年工作经验老手, 每个 6w/月要的吧,1 个月就要 30W ,1 年下来就要 360W ,还不包括 5 险 1 金。只要你钱给足,你要怎么管理代码都可以。
    daimubai
        9
    daimubai  
       2022-09-14 10:09:13 +08:00   10
    5 年工作经验老手, 每个 6w/月要的吧。


    张嘴就来
    zhujq
        10
    zhujq  
       2022-09-14 10:12:13 +08:00
    5 年就要 6w 了啊,真好
    beiyu
        11
    beiyu  
       2022-09-14 10:13:13 +08:00
    5 年才 6W/月?少说得要个 10w 吧。
    king888
        12
    king888  
       2022-09-14 10:15:05 +08:00
    低情商在扯淡,高情商过于理想化
    king888
        13
    king888  
       2022-09-14 10:16:29 +08:00   1
    每个人开发的代码对于其他人都是黑盒。。。这还是团队嘛,就算是保密项目也没这么搞
    darkengine
        14
    darkengine  
       2022-09-14 10:19:11 +08:00
    这样的团队 OP 你组建出来了吗?

    我目前见到的小团队,都是一两个 5 年以上经验的人,带其他新人做。
    Torpedo
        15
    Torpedo  
       2022-09-14 10:23:27 +08:00
    @golangLover 我觉得同事水平低,也是有办法让他们保持一致的代码风格的。如果能意识到团队代码风格有问题,又不能解决,那说明水平和所谓水平低的同事们没太大差别
    VictorJing94
        16
    VictorJing94  
       2022-09-14 10:25:57 +08:00
    @jones2000 ...老哥啥坐标啥行业...五年国内新一线一般也就 15-25 吧,高低都还有比较大浮动空间
    ChenDJ
        17
    ChenDJ  
       2022-09-14 10:27:53 +08:00   1
    借楼吐个槽,实验室环境,代码靠 U 盘在几个师兄弟之间同步,曾力推 gitlab ,小导直接把 build 文件夹传上去 T_T
    daliusu
        18
    daliusu  
       2022-09-14 10:32:32 +08:00
    就我在成都的经验,能做到你说的这些的,不会来你个 5 人团队。另外别太看不起传统工厂了,传统工厂也起码几十个码农,而且根本没有你这么做的,我从到成都就一直在传统厂干
    god7d
        19
    god7d  
    OP
       2022-09-14 10:42:11 +08:00
    @king888 这里的黑盒指的是不关心实现,只关心如何调用,所以你可能理解上存在一定偏差
    @darkengine 我们这边都是 10 年以上的作 leader ,带一群 5 年左右的
    @daliusu 我完全没说看不起啊,我是说传统制造业养 5 个完全不成问题
    @ChenDJ 没有 git 不成方圆,以前同事有用 tfs 的,有用 svn 的,现在大家统一用 git
    god7d
        20
    god7d  
    OP
       2022-09-14 10:44:53 +08:00
    @daliusu 这个真不一定,像我们这种养老胜地基本上都是这样的,工资不高但是自由度高,自己设计自己开发爽歪歪
    wu00
        21
    wu00  
       2022-09-14 10:51:25 +08:00
    6 人团队,4 后 2 前
    gitlab flow 、mr 、code review 、ci/cd
    后端严格执行,有建立统一技术规范、编码风格等内部文档,堆了 2 年的代码,还很清爽。
    前端仅使用 gitlab 做仓库和自动化部署,堆了一年已成屎山
    shijingshijing
        22
    shijingshijing  
       2022-09-14 10:52:56 +08:00
    **招聘的时候就已经充分考虑了楼上说的问题,首先团队成员都有很强的自觉性,不存在写成“屎山”的问题,大家都是对代码质量有一定追求的人;**
    -----------------------------------------
    盲目自信,“屎山”是相对的,即使是一个设计优良的系统,如果对应的业务飞速成长,后续也存在小马拉大车的问题,更不谈这个过程中一直存在的修修补补,哪怕不是“屎山”,掺入越来越多的老鼠屎也是不可避免的。
    代码质量是个比较笼统的概念,是性能很好?是扩展性好?是可读性很好?还是 bug 很少?目前,我见到的几乎没有全面兼顾的,即使是开源的巅峰 Linux 内核这样的项目,特别是接近硬件的部分,里面也有一堆骚操作。

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

    **最后团队不追求统一风格,团队的理念是给每个人充分的发挥空间,保持自己的特性。**
    -----------------------------------------
    成为“屎山”条件+1 ,意思是给程序员最大的自由度吧,但是自由是有条件的,Linux 内核不仅想要 Merge 进主分支不仅要符合严格的内核代码风格规范,https://www.kernel.org/doc/html/v4.10/process/coding-style.html ,还要担心 Linus 这种仁慈的独裁者随时邮件骂你。软件工程的最高境界就是整个项目仿佛一个人写出来的,这个人的水平处于团队中上等级。
    shijingshijing
        23
    shijingshijing  
       2022-09-14 10:54:41 +08:00
    写点小工具还可以,大点的项目,几乎不可能。
    dayeye2006199
        24
    dayeye2006199  
       2022-09-14 10:56:52 +08:00
    团队的水平方差甚至比均值有时候更重要
    HugoChao
        25
    HugoChao  
       2022-09-14 10:57:55 +08:00
    20 个人的团队算小还是中?
    zhujq
        26
    zhujq  
       2022-09-14 11:11:25 +08:00
    @HugoChao 20 人感觉不小了
    god7d
        27
    god7d  
    OP
       2022-09-14 11:11:52 +08:00
    @shijingshijing 写的很好,领教了。我们这边业务量很小,基本上就是把固定的几个功能尽量优化。即便有新项目其实对于开发这边来说意义不大,因为使用的基础设施还是老一套,一般重新套个壳子就可以了,所以重心还是维护那些基础设施,比如核心算法、把三方库替换成自己造的轮子等等。至于说自由度的问题,主要是为了营造宽松氛围,因为工资不高等客观因素,需要提供其他方面的条件,但是就公司里的人来说,本身也比较散漫自由。但你的回复依然非常有意义,非常感谢。
    @wu00 我们这边的项目不是严格意义上的工程项目,带有科研性质,成员除了写代码还要做实验分析数据
    CaptainD
        28
    CaptainD  
       2022-09-14 11:25:53 +08:00
    我们就是 5 人左右的小团队,但是公司系统较简单,可能管理方式没你说的那么复杂,但有一点相同,也都是黑盒开发,自己负责自己的代码,这里有个问题,如果某个人离职怎么办,且不说能否找到合适的人,就算有新人来未必很快上手,而且其他成员对离职者的代码并不了解,甚至负责的方向有很大差别,技术栈完全不同,容易有交接问题
    shaojz2005
        29
    shaojz2005  
       2022-09-14 11:31:20 +08:00   1
    看行业,很多传统制造业上千人,养 5 个人做个内部系统应该不成问题吧?可能你们一说软件就代入到互联网行业。在传统行业里,工作清闲朝九晚五,工资开的虽然没有互联网高,但是足以招到一些水平不错,代码风格良好的程序员了
    =============
    实际上没那么理想的。

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

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

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

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

    这样的状态,其实是可遇不可求的。
    cubecube
        30
    cubecube  
       2022-09-14 11:35:01 +08:00
    不会不存在屎山问题,一个人觉得是金矿,另一个人没准会觉得是屎山。
    代码风格的统一需要团队负责人规划实施
    Crawping
        31
    Crawping  
       2022-09-14 11:35:52 +08:00
    @daimubai 人家养 5 个人 5 个 5 年的 6w 一个月 平均一个 1w2 怎么就成了 张嘴就来了...
    daimubai
        32
    daimubai  
       2022-09-14 11:36:52 +08:00
    @Crawping 多读几遍再回复我
    god7d
        33
    god7d  
    OP
       2022-09-14 11:43:49 +08:00   1
    @CaptainD 我们这边非常依赖架构师,他会对所有人的代码进行 review ,然后每个人也会持续不断的进行技术文档更新,因此有人离职几乎都不需要交接;技术栈的问题有人离职架构师会暂时接手这些工作。btw ,我感觉我工作三分之一时间都在写文档,这边的文档可以用海量来形容,从专利说明书到每个人的技术文档、代码笔记、通讯协议文档、技术对接文档、技术支持文档等等都需要开发来完成,而且是一直更新的
    god7d
        34
    god7d  
    OP
       2022-09-14 11:46:59 +08:00
    @shaojz2005 你说的很对,看楼上对 captainD 的回复,我们这边架构师就是你说的这种人,说这个架构师是整个团队的灵魂也不为过
    lengyuqu
        35
    lengyuqu  
       2022-09-14 11:57:07 +08:00   1
    团队不大
    1 ,推荐使用 gitea 作为代码管理工具,对配置要求低,甚至最后整个软件仓库都可以备份好。
    2 ,推荐准备一台极空间 nas 作为文件服务,主要是文件的储存。这涉及到线上代码原版备份和文档备份。
    lixintcwdsg
        36
    lixintcwdsg  
       2022-09-14 13:23:52 +08:00
    1. 小团队水平低。
    2. 可以做 cr 并且管控这么细致的架构师,小团队用不起。
    3. 小团队最重要的是产品然后还有销售。代码黑盒测可以接受就星。

    最后,大公司小团队没办法讲,那属于大团队。

    事实如此,真的小团队哪能这么养研发,太理想化了。如果有,那么是业务性质绝对的,本来就利润厚且稳定,而不是因为你这么开发管理导致的果。
    theguagua
        37
    theguagua  
       2022-09-14 15:15:25 +08:00
    @VictorJing94 坐标一线,5 年怎么说 20+了,三年 15+差不多,抛开重大厂不谈
    eric614802
        38
    eric614802  
       2022-09-14 15:24:07 +08:00
    jones2000
        39
    jones2000  
       2022-09-14 20:28:26 +08:00
    @daimubai 5 人稳定开发团队, 工资如果不对标大厂, 你前脚刚组好团队,后脚就被人挖走了。你如果 1 ,2W 招的人, 人员流动性很大,代码质量更不好管理,都是屎山。人员稳定才能确保代码质量比较稳定。
    JellyDong
        40
    JellyDong  
       2022-09-14 20:43:02 +08:00
    @wu00 可否分享下规范呢?
    luomu24
        41
    luomu24  
       2022-09-14 20:46:13 +08:00
    老实讲,这样的团队和薪资好招到匹配的目标成员吗?
    GP1
        42
    GP1  
       2022-09-14 20:51:24 +08:00
    不可能三角了解一下。
    qile1
        43
    qile1  
       2022-09-14 22:16:15 +08:00 via Android
    阿里的云效有没有用过,只是代码管理应该也省事
    jones2000
        44
    jones2000  
       2022-09-14 23:27:19 +08:00
    @VictorJing94 金融,量化交易
    cepro
        45
    cepro  
       2022-09-15 00:23:35 +08:00
    主要看这 5 人团队是否从事的是同一个工种的工作。比如都是 Android 、都是 Web 前端、都是后端、都是数据分析等。
    如果这 5 个人,各自独当一面,只能从人员角度去保证。
    如果这 5 个人从事同一类工作,那就考验架构师是否能够解构模块,代码是否具有可读性。即使出现人员离职,最多也就是重构模块,相对来说工作量会小很多。
    但无论是哪一种,开发过程的文档都是尽量留下来的,尤其是关键的逻辑和流程。
    无论薪资高低,水平高低,人员管理总会有疏漏,关键是要能从你(假设你是管理者)这里,在可接受的时间范围内,把窟窿堵上。
    QKgf555H87Fp0cth
        46
    QKgf555H87Fp0cth  
       2022-09-15 11:54:46 +08:00
    一些 eslint ,代码风格修正的用下就可以。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2542 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 10:36 PVG 18:36 LAX 03:36 JFK 06:36
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86