敏捷开发让程序员越老越值钱

SpringBoot+Vue+MySQL 高校学科竞赛平台 完整可运行版(源码+文档) 本项目基于SpringBoot+Vue+MySQL构建高校学科竞赛管理平台,覆盖学生、教师、领队教师、管理员四大角色,实现竞赛发布、报名、刷题、评分、公示等全流程闭环管理。系统架构清晰,技术主流,配套完整源码、数据库脚本、万字论文、开题报告、答辩PPT及部署文档,支持一键运行,适用于毕业设计、课程设计及院系二次开发,真正实现“开箱即用”。 阅读详情

35岁危机是程序员绕不过去的一个问题,各路大V已经讨论过各种解决方案:转行、做自媒体、干副业、考公....

如果有人说敏捷软件开发可以让程序员越老越值钱,你会是什么感觉?

估计有不少人要跳起来了:敏捷开发已经变味,成了压榨程序员的工具,成了需求不断变更的借口!还能让我越来越值钱,这不扯吗?!

我最近看了一篇文章(阅读原文可达),是对一家公司的CEO采访,文章提到:

现代的软件工程借鉴了工业生产的方式,强调流程可控性,把软件开发也拆分成需求分析、架构设计、详细设计、编码、测试、部署、运维等独立的步骤。

于是程序员‘前面’有架构师、需求分析师、项目经理等等,他们敲定了整个软件的框架和功能,最后剩下大量的代码工作,留给程序员去填。然而‘前面’的环节才是最有价值的。

由于代码的工作量非常大,需要占用诸多人力,一些欧美软件公司在做好了前期的需求、设计、架构之后,将代码“外包”给更具人力成本优势的其他国家的软件公司来做。

在这种模式下,很多程序员的职业生涯一直就是在写代码,就是可以被替换的组件,尤其是在中国这个人数众多,激烈竞争的市场,随着年龄增大,精力不济,被更年轻的更有活力的“组件”给替换掉。

与传统模式不同,敏捷开发更依赖程序员的能力,更能体现和提升程序员的价值。

传统模式下程序员开始工作时,问的第一个问题是:“需求是什么”? 

敏捷程序员应该问的问题是:“问题是什么?”

因为敏捷程序员一定要去碰客户,了解业务,了解需求,然后解决客户的问题,而不仅仅是写代码。 

敏捷程序员会身兼数职,不仅仅是需求分析和设计,有时甚至需要熟知客户所在行业的业务特性和行业特征,以便提供更有针对性的服务和解决方案。

不同的客户会有不同的需要解决的问题。我们认为程序员需要去理解这些,并且提高自身解决问题的能力。随着年龄增长、阅历增加,经验不断地累积,他解决问题的能力会不断提升。

因此在敏捷模式下,程序员是“越老越值钱”。

从大的方面来说,我是认同这个说法的。

我们应该深入的从两个层次讨论一下。

1. 到底什么能力能让程序员越老越值钱?

越老越值钱的本质是经验可以积累,在IT界,技术变化太快,很难积累。

什么东西可以积累呢?

一种是做基础软件开发,操作系统、数据库、编程语言...... 这些领域需要长期的积累,并且技术变化很慢,只要技术不断精进,可以越老越吃香。

另外一种就是项目开发,用技术解决客户业务问题是极其关键的一个能力。

客户的业务问题多种多样,需要不同的架构、不同的技术方案来应对,就像医生看病一样,经验不断积累,成功解决问题的次数越多,经验越丰富。

如果你有过多次成功的项目交付经验,公司肯定会把下一个项目交给你,而不是一个刚入行的年轻人。 

即使是离开公司也不怕,轻松找到下家,自己有人脉还可以单干。

所以大家可以想想,自己能不能和客户面对面的进行顺畅的沟通,帮助他把真正的需求提取出来,然后做出架构设计,详细设计,最终写代码给实现了。

如果项目太大,能不能组织一帮人,领导一帮人,一起把这个项目完成了。

我觉得这才是程序员真正的能力,它更像是一种复合体:业务分析+架构设计+领导力(项目管理)。

2. 敏捷开发能让程序员具备这种能力吗?

现在很多公司的敏捷开发都是伪敏捷,也有计划会议,每日站会,回顾会议,但都是做做样子而已。

有其型而没其神,这样的敏捷开发只会让程序员心生厌恶。

我一直认为,敏捷宣言的大牛们所说的敏捷对程序员的要求是非常非常高的,甚至是一种精英程序员的模式。

想想看,你需要能和客户流畅沟通,和客户建立牢固的信任关系;需要能做设计;能写出高质量的代码,能测试,会重构,最好能TDD;需要和伙伴高效率的交流、结对;捎带手还能写出抓住重点的、简明扼要的文档。

这样的程序员可以说是无所不能,他们组成的特种小分队,无论在什么模式下都能成功,敏捷开发的那些实践只是助推剂而已。

敏捷开发强调和客户协作,程序员会直面客户,会逼着程序员提升沟通能力和业务分析能力,见到客户就想躲,肯定是搞不起来的。

敏捷开发要求程序员参与设计,提倡价值驱动,风险驱动,需要不断演进的架构(以便应对变化),也会逼着程序员在架构设计能力上不断提升,不断积累。

对照前面说的业务分析+架构设计+领导力,剩下的就是程序员领导力这一块儿了。

可见,理想的敏捷对程序员的能力提升肯定大有好处,但是在国内我们最常见的就是毫不讲理的、做不完的需求,不顾代码质量的疯狂发布,以及走了样的敏捷架子。

这样的敏捷,不但对能力提升毫无帮助,还会不断压榨程序员,把程序员变成可替换的组件。

(完)

点击下方图片,查看更多精彩

025d689006b1a1f3134561a48ddd8dee.png

d7afc3aefaedb9295c5121ca747923aa.png

c2b155845e1f59ae50becb47fe016cd6.png

e5e0bbdb54f2139b4ec10b8d79a5b2c9.png

fdc1a1623d73a6b53ab54194453ba4bd.png

LeRobot 入门教程(七)数据集 LeRobot Dataset v3.0 是机器人学习数据的标准化格式,支持多模态时间序列数据和视频的统一访问。该版本通过基于文件的存储(Parquet/MP4)、关联元数据和Hub原生流式处理等新特性,显著提升了性能并降低了存储开销。文档详细介绍了格式设计、安装使用、数据记录与加载方法,以及从v2.1迁移到v3.0的步骤,特别针对大型数据集(如DROID 1.0.1)的处理提供了SLURM集群移植方案。v3.0通过优化文件组织和元数据管理,实现了更快的加载速度、更高的内存效率和更好的可扩展性。 阅读详情

相关推荐

【规则引擎连载3】 WebSphere ILOG JRules 开发——新建一个规则项目

规则项目依赖于bom,bom来自于一个Java项目,所以在建规则项目之前,需要先建立一个Java项目,也就是建模。 说明:原则上是一个规则项目,一个bom。如果规则项目很多,并且每个规则项目的bom都是一样的,那么可以将bom提取出来,单独作为一个项目,这样减少不必要的重复操作,减少维护成本,降低出错几率。这里逐步讲解两种方法来创建规则项目,推荐第二种。 本文主要建立两种规则项目与bom之间的关系,编写相关的规则内容,如操作规则、规则流、决策表等,在后续文章中详细讲解 。

manman的分享 2331

为什么那么多程序员讨厌敏捷开发

在跟程序员聊天的时候,一提到敏捷开发,他们总是会流露出不太高兴的表情。你想知道为什么吗? 他们消极的对待敏捷开发思想以及敏捷相关实践方法的原因是什么?有没有这种可能,他们认为导致方法失败的东西其实完全不是敏捷实践,而误会了敏捷的价值呢? 有这种可能性,但是团队成员认为他们只是敏捷教练的棋子。很容易看出他们为什么会这么想。管理上有一种趋势,要么引进独立的敏捷咨询公司,要么雇佣一个敏捷教练,监督团

sky_dsy的博客 4360

ST7102驱动移植与调试实战

本文详细介绍了在君正T40平台上移植和调试ST7102 LCD驱动芯片的实战经验。内容涵盖硬件接口配置、时序参数调整、寄存器初始化序列编写及常见问题解决,重点解析了ST7102单芯片集成显示与触控功能的特性,为嵌入式设备显示驱动开发提供实用指南。

k6l7m8n9的博客 1413

数据库技术就像陈年酒越老越香

范春莹(Fancy Fan), 北京大学MBA,现任中国万网技术总监。许多人对这个名字可能并不熟悉,但提起他的网名“范生”,则老一代技术开发人员都能讲出一段关于他的故事,关于他 在ChinaASP数据库版的版主时光,关于他曾用心经营的数据库发展空间的技术网站,关于他组织的一次次的数据库的技术培训等。2007年,Fancy 被微软(美国)评为全球IT Hero,2008年又被评选为微软SQL方向的M

phphot 1873

dbt+Snowflake实战:数据建模、权限隔离与性能优化全指南

dbt(data build tool)作为现代数据栈的核心建模工具,其与Snowflake的深度协同远不止于SQL编译执行——它本质是将软件工程实践(如版本控制、测试驱动、CI/CD)注入数据交付流程。理解dbt的声明式建模原理与Snowflake的虚拟仓库、Time Travel、TRANSIENT表、聚簇键等底层机制如何咬合,是实现可维护、可审计、低成本数据产品交付的关键。本文聚焦dbt在Snowflake环境中的真实落地挑战,涵盖schema与warehouse的物理映射设计、role级硬隔离策略、

weixin_34389926的博客 314

Docker一键部署NextCloud+OnlyOffice:打造企业级私有云办公环境(含HTTPS配置)

本文详细介绍了如何使用Docker Compose一键部署NextCloud与OnlyOffice,构建安全、高效的企业级私有云办公平台。内容涵盖从架构设计、Docker编排配置、HTTPS证书自动化管理,到系统初始化、性能优化及高级功能扩展的全栈实战指南,帮助企业实现数据自主可控与高效的在线文档编辑协作。

Apple的专栏 1240

【为什么程序员的价值随着年龄增长而急剧贬值?】

另一个原因是市场需求的变化。随着技术的不断进步,一些传统的编程工作可能会减少,而新兴技术和领域的需求可能会增加。移动设备的普及和用户对移动应用的需求日益增长,移动应用的开发也成为了程序员的重要方向之一。程序员可以专注于开发创新的移动应用,提供便捷的用户体验和实用的功能,以获得用户的青睐。那些具备高级技能、专业知识和经验丰富的程序员,以及能够持续学习和适应变化的人,仍然能够在市场上获得更好的机会和薪酬。一些国家的程序员可能接受较低的薪资水平,这意味着在竞争中,成本较高的国家的程序员可能会面临更大的挑战。

都会一点点的博客 1009

S7-1200与KINCO伺服通信实战:CM CANopen模块配置避坑指南(附完整PDO映射表)

本文详细解析了西门子S7-1200 PLC通过CM CANopen模块与KINCO伺服驱动器的通信配置全流程,重点解决PDO映射混乱、心跳报文配置错误等常见问题。提供硬件组态、参数设置、PDO映射模板及故障排查方案,助力工业自动化系统实现稳定高效的多轴运动控制。

2y3u4i5o6p的博客 1101

IT技术人员超过35岁,如何才能保住饭碗?靠ITIL4可行?

综上所述,ITIL4的底层逻辑是非常清晰的,就是让你掌握1套指导数字化转型的思路、5种执行数字化转型的方法以及34种与业务相融合的实践。2)设计方案阶段,就是让你掌握数字化方案的设计方法。DSV 给出的方法是“客户旅程”,仔细分析数字化系统是如何与我们“交互”的,这些交互就是触点。5)DITS 数字化和 IT 战略,是给更高级的 IT 管理人员的,让他们掌握 IT 战略设计的方法。从 ITIL4 框架设计的底层逻辑可以看出,这是一套指导 IT 从业者掌握数字化转型思路和方法的最完整的体系。

691

人形机器人专题:人形机器人关节,从Optimus选型看关节的发展

今天分享的是深度研究报告:《(报告出品方:中泰页。

GPT20236688的博客 3225

[捷稀 JCG Q30 Pro 刷机说明] 以刷入openwrt24.10为例

摘要: 本文详细介绍了捷稀JCG Q30 Pro路由器刷入OpenWrt 24.10系统的步骤。通过先刷入OpenWrt 23.05过渡固件,再升级Uboot,最后通过TFTP加载工厂镜像完成刷机。关键步骤包括解锁分区、刷写Uboot、进入恢复模式及配置网络。文章还提供了无线设置、Tailscale内网穿透等进阶命令,并附参考文档和固件下载链接。适用于有一定技术基础的玩家,需注意操作风险,严格按流程执行。

贤时间 7139

InnoDB 内存结构总览:Change Buffer、AHI 与 Log Buffer

本文系统梳理InnoDB内存结构中的ChangeBuffer、Adaptive Hash Index(AHI)与LogBuffer。ChangeBuffer缓存二级索引页不在内存时的变更,减少随机IO,仅在页加载时合并;聚簇索引修改立即执行,因数据本身不可延后。AHI基于高频等值查询自动构建哈希索引,加速定位,仅支持等值操作。LogBuffer为redo log内存缓冲,配合磁盘日志实现崩溃恢复。三者均服务于性能优化,其中ChangeBuffer与AHI共享BufferPool空间,而LogBuffer独立

bksczm的博客 289

CAN轴控制流【6041,6040】

【代码】CAN轴控制流【6041,6040】

cfqq1989的博客 1783

V8 机制、手写核心函数与 TypeScript 类型体操

或固定初始化(如数组先定长、对象先给全字段)保持类型与形状稳定;这些都比"换框架"更基础。只能处理纯数据(丢函数、Date、RegExp、循环引用报错)。生产级深拷贝要处理:原始值短路、循环引用、V8(Chrome / Node 的 JS 引擎)不是"解释一行跑一行"那么简单,它用。图:V8 执行流程——解释执行 + 热点优化,优化失败会 Deopt 回退。JS 内存自动管理,但"自动"不等于"不会漏"。是"固定间隔最多执行一次"。手写 Promise 是"懂异步"的试金石。是"停下后才执行最后一次",

qq_38468358的博客 346

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Spring Boot 数据源与 MyBatis(-Plus) 自定义配置详解

本文详解 Spring Boot 中单数据源环境下 HikariCP 与 MyBatis-Plus 的自定义配置。通过手动声明 SqlSessionFactory,实现下划线转驼峰、日志输出、一级缓存策略等精细化控制。结合 HikariCP 核心参数调优(如最大连接数、连接生命周期),确保高性能与稳定性。适用于仅需访问单一数据库的场景,避免多数据源复杂性,兼顾性能与可维护性。

BADAO_LIUMANG_QIZHI的博客 198

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

要努力去发光,而不是被照亮~ 130

【从零理解 Spring AI · 12】MCP 的两种角色:做客户端还是做服务端

上一篇讲了 MCP 的概念:标准协议、三大角色、M+N 替代 M×N。

nice_lcj520的博客 501

LeetCode Hot 100 二叉树专题(二)3 题(Java)

本篇文章共 3 题:543. 二叉树的直径、102. 二叉树的层序遍历、108. 将有序数组转换为二叉搜索树。 每道题都统一按「① 题目分析 & 解题思路 → ② 常见解法(附代码)及讲解 → ③ 知识点总结」的顺序组织;代码使用 Java 编写,节点定义沿用 LeetCode 默认的 TreeNode。

2401_88612756的博客 365

JDK 下载安装:装完 Java 提示「不是内部或外部命令」?环境变量没配

JDK 是写 Java 程序必须装的东西。它包含运行 Java 的虚拟机(JRE)和编译 Java 的编译器(javac)——装了它,能跑、.java文件能编译成可执行程序。免费,学习和小规模生产都不花钱。

科小怪的博客 635

java框架大全

java框架大全

qq_39326137的博客 183

Java 多态 学习笔记

多态是面向对象编程的重要特性,指同一操作作用于不同对象时产生不同行为。其核心在于“父类引用指向子类对象”,结合方法重写实现运行时动态绑定。多态使代码更灵活、可扩展,如用Person p = new Student();统一处理各类人员注册,无需修改调用逻辑。但多态无法直接调用子类特有方法,需通过instanceof判断并强制转换。编译时看左边(类型),运行时看右边(实际对象),实现解耦与维护便利。

AA_AA114514的博客 361

SecureRandom做随机源,这个Java随机字符串工具类有3个方法

本文分享一款JDK17环境下的Java随机字符串工具类,内置3个开箱即用的方法,全部采用SecureRandom加密安全随机源,不存在弱随机、可预测、取模偏差等问题。工具类支持默认62字符集随机串、纯数字随机串、自定义字符集随机串三种生成模式,支持Unicode码点级别的字符集处理,兼容Emoji等增补字符,边界处理严格,异常信息明确,适合验证码、邀请码、盐值、随机口令、短链码等场景,源码可直接复制使用。

Java后端 | AI智能体应用实战派 | 电脑技能行家 299

IDEA 简介:从零认识 IntelliJ IDEA

IDEA 全称,是由 JetBrains 公司开发的一款主流 Java 集成开发环境(IDE)。它集代码编辑、编译、调试、测试、版本控制、构建管理等功能于一体,被大量 Java 开发者视为日常开发的首选工具。所谓 IDE(Integrated Development Environment,集成开发环境),就是把写代码所需的各类工具整合到同一个界面中。相比只用文本编辑器加命令行编译,IDE 能显著减少重复操作,让开发者把精力集中在业务逻辑上。

ztI10的博客 152

Java实现批量线段相交检测(跨积判定+扫描线优化与踩坑复盘)

【代码】Java实现批量线段相交检测(跨积判定+扫描线优化与踩坑复盘)

m0_64476639的博客 329

TRingBuffer两端都能增删(快递站版)

TRingBuffer 是一个支持两端增删、下标访问且容量动态增长的环形双端队列。它通过无符号索引的永不归零设计,利用减法自动模运算实现空满判断与元素计数,避免了传统环形缓冲浪费格子的问题。内部以票号(索引)标记首尾,扩容时重排元素为连续存储,保证 O(1) 操作与高缓存效率。虽不线程安全,但其高效性使其成为游戏开发中事件队列、命令缓冲等场景的理想选择。

u013768914的博客 228

ubuntu安装hadoop系统

本文详细介绍了基于VMware克隆虚拟机搭建三节点Hadoop分布式集群的全过程:使用同一Ubuntu镜像克隆出master、worker1、worker2三台虚拟机,依次配置主机名、固定IP(如192.168.82.10/11/12)、SSH服务及免密登录,确保节点间网络互通。随后安装Java,下载配置Hadoop并分发至各节点,最终初始化启动集群,验证其存储与计算功能,实现高效的大数据环境部署。

qq_43592674的博客 336

Mac上装了最新版本的Android Studio,但是没找到jdk的设置选项也没找到jbr的目录

新版Android Studio(2025.3.1+)因三项变更导致常见问题:一、JDK设置移至“DaemonJVM criteria”,新项目默认自动探测或下载JDK;二、JBR目录改名为带版本号的jbr-21等,需进入.app/Contents/查看,或通过About窗口确认运行时;三、命令行缺adb因platform-tools未加入PATH,需在SDK Manager中勾选并配置~/.zshrc中的ANDROID_HOME及PATH。重装或清理残留可解决缺失问题,切勿手动设JAVA_HOME或安装冲

Programming is a highly artistic endeavor 356
上一篇: 最担心的还是发生了,程序员失业来得太突然!
下一篇: 程序员帮公司赚了700万,公司就奖励一件糟糕的T恤?
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值