首页 » 软件开发 » 什么是软件研发的工程化?研发团队真的理解吗?(团队标准化研发软件代码)

什么是软件研发的工程化?研发团队真的理解吗?(团队标准化研发软件代码)

雨夜梧桐 2024-07-25 01:35:03 0

扫一扫用手机浏览

文章目录 [+]

当你和他们讨论分支策略如何制定,二进制文件不能提交gitlab代码仓库,依赖如何管理的时候,反而感觉“很无力”。

什么是软件的工程化

介绍软件的工程化,首先要从代码说起。
程序员写完的代码,不是说能直接运行的,不管是编译型,还是非编译型语言,几乎都包含如下步骤:

•准备代码•下载依赖•编译(编译型时间更长)•打包

如果是部署,大体包含如下步骤:

什么是软件研发的工程化?研发团队真的理解吗?(团队标准化研发软件代码) 软件开发
(图片来自网络侵删)
•准备环境•安装运行依赖•启动程序

上面已经是比较简化的提炼过程,看似确实好像没什么大不了的,常有程序员不屑地说:我在本地电脑就一个脚本,就可以把上面步骤全部搞定可是,如果把以下因素放大倍数,或者引入更多不确定因素呢?

•写代码的是几十人,上百人呢?•集成多份不同业务代码•交付的流程更长,参与角色更多•依赖很多,三方的,二方的•语言技术栈更多•要求配置更灵活•要求快速回滚

还有更多意外因素?

•专门负责构建的机器挂了呢?•写脚本那个哥们走了•更新代码的凭证用的离职那个人的•包不小心丢了

上述意外情况,你能多久恢复,并且保证原样如初?

软件工程化解决的是团队协同,不是个人的问题

写个shell脚本只是解决了你个人的问题,它并不没有解决软件团队的问题,充其量只是自嗨,对于团队和组织的可持续发展没有任何价值,甚至是"一坨屎",后面还要找人擦屁股。
如果第二个人依然这样,前赴后继,最后这坨屎会越来越“糟糕”,就变成了”技术债务“。

研发人员的不屑就像当年在汽车厂里手工造车的工人,看不上流水线生产汽车。
手工造车可能还被视为“纯手工定制”,软件的“手工造轮子”能比得上吗,能有chatgpt造的好?

(此处已添加书籍卡片,请到今日头条客户端查看)

软件行业的先贤们,一致在试图解决复杂的软件问题,从单体到微服务,从虚拟化到容器化,目的就是要解决“依赖”和“标准化”问题。

而现实中,不管是管理,还是技术可能在都做着“逆解耦/降低依赖”和"反标准化"的事情。

软件工程的平台化解决了企业软件研发活动的可持续化

什么是研发活动的可持续化?最近头条热点就是”东方甄选小作文事件“,其实这个就是”标准化“和”个性IP化“的冲突,如果企业的某个活动全靠某个人,他离开就受到了影响,我想这是所有企业不愿看到的。

就如同代码一样,如果某个持续交付的业务具备很多个性化,逻辑异常复杂,到处是if/else, 字符串截取,一会儿从这里拉点依赖,一会儿又和另外其他部分做个奇怪的集成,更别提这里面有多少坑了。

作为基础设施,持续交付流程的个性化,给团队和企业带来的就是不确定和风险,离开他今天就不能上线了,排除错误大半天,不知道哪里莫名其妙多个文件,少个文件。

个人认为,软件工程的平台化,是可以帮助企业实现研发活动可持续化的重要基石,这是软件企业的生产线,生命线,但是往往忽视了这个基石。

image.png

如何实现软件工程的平台化?

1.首先必须坚持”标准化“这个原则和方针,一切有违”标准化“的行为统统干掉2.”标准化“不是一夜间就标准化的,识别优先级,考虑性价比3.”标准“是逐步演化的,让子弹多飞一会儿,找到属于自己特色的”标准化“4.团队培养”工程化“意识,特别是基础平台团队要带好头,基础设施决定上层建筑5.工程化需要一个人知识面非常的广,要懂多种语言、多种构建工具、多种部署工具、多种监控方式,深刻理解研发活动,试着寻找这样的人才6.不要盲目自动化,提起自动化好像感觉效率一下子起飞了,殊不知”盲目无脑的自动化“反而会”阻碍标准化“,纯属是自嗨,甚至饮鸩止渴。
之前有篇文章《你以为搞个流水线每天跑,团队就在使用CI/CD实践了?》[1],我就提过类似观点。

References

[1] 《你以为搞个流水线每天跑,团队就在使用CI/CD实践了?》: https://www.yuque.com/binowen/blog/fk2h1h0089bt2il8

相关文章

语言中的借用,文化交融的桥梁

自古以来,人类社会的交流与发展离不开语言的传播。在漫长的历史长河中,各民族、各地区之间的文化相互碰撞、交融,产生了许多独特的语言现...

软件开发 2025-01-01 阅读1 评论0

机顶盒协议,守护数字生活的新卫士

随着科技的飞速发展,数字家庭逐渐走进千家万户。在这个时代,机顶盒成为了连接我们与丰富多彩的数字世界的重要桥梁。而机顶盒协议,作为保...

软件开发 2025-01-01 阅读1 评论0

语言基础在现代社会的重要性及方法步骤

语言是人类沟通的桥梁,是社会发展的基础。语言基础作为语言学习的基石,对于个人、社会乃至国家的发展具有重要意义。本文将从语言基础在现...

软件开发 2025-01-01 阅读2 评论0

粤语电影,传承文化,点亮时代之光

粤语电影,作为中国电影产业的一朵奇葩,以其独特的地域特色、丰富的文化内涵和鲜明的艺术风格,赢得了广大观众的喜爱。本文将从粤语电影的...

软件开发 2025-01-01 阅读3 评论0

苹果游戏语言,塑造未来娱乐体验的基石

随着科技的飞速发展,游戏产业逐渐成为全球娱乐市场的重要支柱。在我国,游戏产业更是蓬勃发展,吸引了无数玩家和投资者的目光。而在这其中...

软件开发 2025-01-01 阅读1 评论0