王小波:资本主义居然用代码行发工资,真虚伪!

在x86机器上运行jailhouse jailhouse jaihouse提供了一个demo ,https://github.com/siemens/jailhouse-images可以用于编译一整套可用的demo。 适用于多个平台。编译过程主要参考https://blog.youkuaiyun.com/weixin_39541632/article/details/110422345 此demo可以生成多个平台所用的操作系统image。 ... 阅读详情

1982年,王小波在美国留学,主业是数学,课余就给导师打工,写程序。

3a40a73dd80d382f03d83c938b3121c6.png

他在《革命时代的爱情》中对这段经历做了精彩的描述:

第一次从系里领来了编软件的活儿时,我想道:好!总算有了一个我施展才华的机会了!

虽然那是个大型软件,好几个人合编,但是我想这样更好,可以显出我比别人强。

越是这样想,就越是心绪纷乱,一行源码也写不出来。

所以我就对我老婆说,你出门时,把我锁在屋子里。我就是这样一个变态分子,但是我老婆一点没觉察出来。

锁在房子里时,精力能够集中。所以我编的第一批软件极有诗意,李后主有词云:红豆啄残鹦鹉粒。我的软件就曲折和弹性而言,达到了此句的境界。

后主又有残句云:细雨流湿光。我的软件就有这么简约,别人编十行,我只用一行。

等到交活时,教授看了吃一惊:这么短!能跑(run)吗?

我说你试试嘛。试完了他和我握手道:谢谢!

但是到了开支时,我的钱比别人都少。原来是按行算钱,真把我气死了。

等到交第二批软件时,我就吃棉花屙线屎。古诗云:一个和尚独自归,关门闭户掩柴扉。

我的第二批软件到了这种境界。简言之,别人编一行,我就编了二十行。

等到交活时,教授根本不问能不能run,只说:你这是捣蛋!就打回来让我改短。

资本主义就是这么虚伪。

王小波难题

王小波当年遇到的难题,表面上是:如何给程序员“发钱”?

实质上是:如何评定程序员的绩效。

这个问题很大,从当年到现在,中外组织发明了和演进了很多解决方案:KPI、PBC、OKR……,可谓:引无数英雄竞折腰。

1970年代之前,西方工程界普遍参考了“文字工作者”的经验——作家与记者是按照“字数”来计算产量的;

所以,程序员可以按照代码行来计算产出规模,然后根据规模“发钱”。

但是,这种办法无意地混淆两个重要的概念:工作量与规模。

1975年,实践并思考了多年的Brooks发表了著名的《人月神话》,这篇文章反思:用“人月”来度量软件“规模”是“神话”。不过在这篇著名的文章里,他其实也没有给出明确的解决方案。                                      

也就同一个时期,他的同事Allan Albrecht先生正在解决这个“神话”,最后形成即是:“功能点分析”(FPA)方法。

什么是功能点?

功能点分析的“第一性原理”是:

对用户有价值的是软件的功能,这个才是“规模”;而不是过程中的消耗与成本(代码行、工作量)。

功能点分析是站在“用户视角”(而不是开发者视角),将软件的功能需求分解为一系列最基础的功能单元(BFC,basic function component)。

这些基本功能单元,主要分为两大类、五小类。每类功能组件都有逻辑严谨的定义,是最小的、不能再细分的“软件原子”。

98b01867bf7b5965c0dfebe59e732436.png

数据+行为,是不是有点面向对象的感觉?

我拿在用户在手机上点外卖举个例子,外卖app的BFC如下表:

6318e3923d61c834121e617ecd950287.png

从这个例子可以看出,“功能点”其实是每类BFC大小的“计量单位”。

上图的例子,就是在我国最常使用的“估算功能点”方法,约定了1个“ILF(内部逻辑文件)”值10个功能点,1个“EI(外部输入)”值4个功能点。

可能有同学马上就想到:同样是ILF,有的业务对象包含了50多个“字段”,有的只有5-6个。难道大小一样,都值10个功能点吗?

答案:在“估算功能点”方法中,就是一样大小的。BFC的固定功能点数值,是经过统计分析、并实证校验得出的。在统计学上来看,50个字段的ILF与5个字段的,其规模大小是没有差别的。

功能点有什么用?

软件度量师只要先分析某个软件包含多少个BFC,然后将他们的功能点数值汇总加起来,就能够数字化这个软件的规模。

就像是在乐高世界,软件就是由五类乐高积木搭成的,每一类乐高积木的重量(质量)都知道;我们只要统计出某个软件各类积木的数量,就能够计算出其总重量。

在统计学上,如此度量出的软件“规模”与开发实际投入的“工作量”之间,有较强的“相关性”。

(国外的文献显示,两者之间的R^2=0.89,spearman相关系数为0.85,对应的P值都低于0.0001。)

在国内也有很多的实践,证明规模与工作量之间的相关性普遍也很高。

由于定义逻辑严谨,且有这些“数字化”证据,功能点分析的方法发布后,很快就被ISO/IEEE认定为国际标准。在我国,基于功能点方法的“软件研发成本度量规范”,也先后成为了工信部标准(2013年)与国家标准(2018年)。

目前,在国内政府、金融、电信等领域,软件的客户购买(或租用)软件,很多都是基于功能点来计算软件规模,在以此计算工作量、合同(预算、结算)金额。

在个体绩效管理层面,很多工程师也承认:在众多KPI中,只有功能点是比较客观的。

当年,如果王小波也知道了这个方法,就可以给他的导师“上一课”了。

我的公司怎么没用功能点呢?

不过可能大家有疑问了:这么好的东西,为什么在互联网公司没用起来呢?为什么大家都习惯用人天来估算工作量呢?

我想主要的原因还是功能点分析法略显复杂,把需求分解成基本功能单元本身就有难度,需要经过一定的训练才可以。

“人天”就简单多了,任何人,拍拍脑袋,想想其中代码实现的难度,很快就能估算出来。

互联网公司的需求变化也快,还没等你实现完,估计又变了,用功能点分析法分析来分析去,累死人。

再说了,互联网公司也擅长工期倒逼法:别给我扯什么方法,下个月必须上线!

这时候,什么方法都不管用了......

(完)

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

bcaebed61060037cbf29dd9bff2cdf51.png

2f0c2c51e2443f00486661a9a2e7ae4f.png

63fe9876b9ea2fe140d7e25c9f7f8639.png

64784634820ced275fd750af0afc4589.png

fbad081a952fccf232befe4b9fb4e97a.png

00668fa5a209208cd4b4b3f5b8b5123b.png

Detector-Free SfM 项目复现完整指南:从环境搭建到代码解析与可视化 本文提供了Detector-Free SfM项目的完整复现指南,涵盖技术背景、环境配置、代码解析和可视化方案。重点包括: 技术背景:Detector-Free SfM通过两阶段策略(粗重建+迭代精化)解决了传统SfM在弱纹理区域的瓶颈问题,采用深度学习匹配器替代传统特征点检测。 环境配置: 详细硬件要求与推荐配置(GPU/CPU/内存) 完整的Ubuntu系统设置步骤 Conda环境创建与依赖安装流程 关键组件安装指南(PyTorch、COLMAP等) 常见错误解决方案 项目特点: 支持多种Detector 阅读详情

相关推荐

ZYNQ平台AXI DMA传输避坑指南:如何快速定位‘errors:200‘等中断故障

本文详细解析了ZYNQ平台AXI DMA传输中常见的'errors:200'等中断故障,提供了从寄存器解析到压力测试的完整解决方案。通过深入分析XILINX_DMA中断机制、错误分类及五步排查法,帮助开发者快速定位并解决DMA传输问题,提升系统稳定性与性能。

weixin_29159613的博客 440

第一代程序员王小波,最会编程的作家

今年是著名作家王小波逝世24周年的日子。大家都知道王小波是作家,却很少有人知道他是个程序员。很多人都听过那句“你好哇,李银河。”却不知道程序员人生中第一个代码是“Hello world”。但写出:“那一天我21岁,在我人生中的黄金时代。我有好多奢望,我想爱,想吃,还想在一瞬间变成天上半明半暗的云”的就是那个特立独行的且会自己写程序的王小波。 “我闲着没事搞了个发明。”1991年5月,王小波在自己的博客上写下了这句话。他可能是中国最早写科技博客的人,也是中国第一代程序员。 他的这个发明,是自行研发..

ludongguoa的博客 2002

从实习生到独立上手:我是如何用海思PQTool搞定IPC图像调试的

本文分享了从实习生到独立使用海思PQTool进行IPC图像调试的成长历程。通过工具搭建、核心参数调整和实战案例,详细介绍了如何高效解决图像质量问题,特别强调了ISP调试中的关键参数和实用技巧,适合刚入门的图像调试工程师参考。

weixin_33756596的博客 312

干货丨开源背后有怎样的经济学原理?

以下文章来源于开源中国 ,作者谢佳 1998年,Open Source这个词在硅谷的Palo Alto被正式提出,开源运动拉开帷幕。当我们把一个事件称之为「运动」的时候,她背后一定蕴含着深刻的社会意义,代表一种社会思潮。 始于20年前的Open Source Software Movement是1980年代Free Software Movement的延续,Free Software正确的翻译不是...

BlockMania的博客 614

使用libx265对YUV进行h265编码

使用libx265对YUV进行h265编码

Embedded engineer 3079

LangChain + Milvus Lite:从零搭建本地RAG知识库

本文详细介绍了如何利用LangChain、Milvus Lite和gte-large-zh模型,在本地从零搭建一个完整的RAG知识库系统。文章涵盖了环境配置、文档处理与向量化、本地向量库构建以及检索问答实现的全流程,重点突出了完全本地化部署带来的数据隐私安全和成本优势,为开发者提供了一条实践性极强的技术路径。

weixin_29044713的博客 444

中国第一代程序员王小波

????????关注后回复“进群”,拉你进程序员交流群????????出品| OSC开源社区(ID:oschina2013)几天前 4 月 11 日,王小波去世 26 周年。1997 年 4 月 11 日,王小波因心脏病突发辞世,他四十五岁的短暂一生留下了超越时空的、启蒙了整整一代人的思想,用李银河的话说,他是浪漫骑士·行吟诗人·自由思想者。他是中国最富创造性的作家之一,他是中国近半世纪的苦难和荒谬所结晶出来的天才...

<sdffdsfsdfdfs>sfsfsfsdfsdffds</sdfsDS>Fsd 894

Anaconda/Miniconda的删除和安装

要在 MacBook 上删除 Anaconda 或 Miniconda,并重新安装它,您可以按照以下步骤进行操作。

qq_27390023的博客 3027

奇葩公司规定程序员工资按代码行数算工资,个个提成这么高?

对于职场朋友来说,工资无疑是对于自己最重要的,每家公司对于员工的工资都有一定的标准,有些是恒定的,也有一些是根据一些因素来决定的,难么你知道程序员的工资都是如何规定的吗?最近看到一个很有意思的工资标准。 一位朋友说自己以前在一家公司工作,这家公司对于程序员的工资是按照代码行数来算工资的,这的确是很稀奇的一件事情,后来这家公司有位员工就利用了这个规则,最后光是提成就拿到了2.6万,听起来真的很不错。 但是领导却和他商量可不可以少报点,结果这位员工隔天就辞职了,这位员工辞职的理由就不言而喻了,公司说好的规定,

梦子微信 3736

从零到一:RagFlow源码架构深度解析与二次开发实战指南

本文深入解析RagFlow源码架构,提供从环境搭建到二次开发的全流程实战指南。作为企业级AI搜索框架,RagFlow通过模块化设计和多模态处理能力,支持自定义智能体开发与文搜文档功能,帮助开发者高效构建智能搜索系统。

w1x2y3的博客 267

Python爬虫实战:抓取统计数据并生成年度对比图表详解

国家统计局网站(静态HTML页面Excel文件JSON接口(部分新版API)我们将重点演示从统计公报页面抓取数据,结合解析Excel文件,实现多种数据格式爬取处理。本文从零开始搭建了一个爬取国家统计数据并制作年度对比图表的完整流程。读者可以根据实际需求调整爬取目标,丰富数据分析维度,甚至结合机器学习模型预测未来趋势。欢迎你在评论区留言分享你的爬虫实践,或提出改进建议!

2201_76125261的博客 1000

不可思议,作家王小波居然是国内第一代程序员!

很多人知道王小波是小说家,却很少有人知道王小波也是中国最早期的程序员之一。 1982年,王二在美国留学,不是学习现代文学,而是——数学。课余的时候,就给导师做高级打工仔——写程序。他应该是我国第一代码农了吧? 这是王小波写的关于internet和墙的杂文《从Internet说起 》: 我的电脑还没联网,也想过要和Internet联上。据说,网上黄毒泛滥,还有些反动的东西在传播,这

W3Cschool官方博客 7958

YOLOv11改进 | 特殊场景改进篇 | 2024最新改进CPA-Enhancer链式思考网络(适用低照度、图像去雾、雨天、雪天)

本文给大家带来的改进机制是2024.3月份最新改进,由CPA-Enhancer: Chain-of-Thought Prompted Adaptive Enhancer for Object Detection under Unknown Degradations论文提出的CPA-Enhancer链式思考网络CPA-Enhancer通过引入链式思考提示机制,实现了对未知退化条件下图像的自适应增强。该方法的核心在于能够利用CoT提示对图像退化进行动态分析和适应,从而显著提升物体检测性能。

Snu77的博客 2014

王小波的那些情话

这段时间正在拜读王小波先生的一本杂文集《一只特立独行的猪》。 王小波的文字总是那么犀利,充满了荒诞和讽刺, 要是早几年的我一定喜爱他的文章,可惜现在自己越来越像他笔下猪圈里普通的肉猪, 看他的文章就总觉得在骂自己,所以谈不上喜爱。   不过后来也了解他的人生经历,知道了他和他妻子李银河的爱情故事。 再偶然看了他给他妻子的书信集《爱你就像爱生命》, 简直被他的情话给折服。 借此七夕佳...

卡小基的博客 2万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

王小波全集

http://www.kugwa.com/booklist/view/4f7d4d215c3053bf4f000aad

liushuoboco的专栏 539

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【黑客故事】程序员作家王小波

向程序员作家王小波学习如何探索和发展开发能力。

苹果二的博客 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

王小波......

首先是在网上跟一个MM聊天,谈起王小波,竟然都比较喜欢,话倒没多讲,但是完了我仔细地想了想,我竟然没有在网络上了解一下王小波,他这样的一个人,写出那么些东西,难道仅仅是为了供我读着开心吗?我怎么从来没有了解一下牛人们是如何读王小波的呢?于是就看到了这一篇文章:  予人慧命者的王小波

Alex的学习之路 1611

《2015》——王小波

这是王小波的一篇中篇小说,我花了几个小时读完之后,脑子里并没有太大的感触,也不知道作何感想,和往常一样我去找其他人的评论和感触。这些评论主要在叵测,规则和性爱方面进行叙述。小舅因为画叵测被吊销画家执照,因为卖画而多次被拘留、进习艺所、被劳改,同时也吸引了小舅妈等女人。但是当“我”发现了 曼特波罗集之后,“拯救”了小舅,小舅的画不叵测了,却也过气了。小舅妈这里也值得思考——“这似乎是说,假如小舅继续叵

u013319237的博客 9857

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

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

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

qq_38468358的博客 346

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

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

BADAO_LIUMANG_QIZHI的博客 199

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

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

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

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

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

nice_lcj520的博客 503

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
上一篇: 互联网时代,用小众语言对抗焦虑和内卷!
下一篇: 教女朋友学编程的一次经历
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值