从一个程序员笑话看软件开发管理

C++实现小猫钓鱼纸牌游戏:队列与栈数据结构实战 数据结构与算法是编程的核心基础,而“队列”与“栈”是其中最常用、最基础的两种抽象模型。队列遵循“先进先出”原则,模拟真实世界的排队场景;栈则体现“后进先出”的特性,适用于处理嵌套或回溯逻辑。在工程实践中,合理选择数据结构能显著提升代码效率与可读性,例如利用标记数组可将元素的成对匹配判断从线性遍历优化为常数时间。许多经典游戏和业务场景都隐含着这些数据结构的影子,通过对规则的分析与建模,可以将抽象概念转化为具体实现。本文从队列和栈的原理出发,结合C++语言特性,通过一个经典的“小猫钓鱼”纸牌游戏案例,演示如何以 阅读详情

有一个笑话是这样的:

1. 程序员写出自认为没有Bug的代码。

2. 软件测试,发现了20个Bug。

3. 程序员修改了10个Bug,并告诉测试组另外10个不是Bug。

4. 测试组发现其中5个改动根本无法工作,同时又发现了15个新Bug。

5. 重复3次步骤3和步骤4。

6. 鉴于市场方面的压力,为了配合当初制定的过分乐观的发布时间表,产品终于上市了。

7. 用户发现了137个新Bug。

8. 已经领了项目奖金的程序员不知跑到哪里去了。

9. 新组建的项目组修正了差不多全部137个Bug,但又发现了456个新Bug。

10. 最初那个程序员从斐济给饱受拖欠工资之苦的测试组寄来了一张明信片。整个测试组集体辞职。

11. 公司被竞争对手恶意收购。收购时,软件的最终版本包含783个Bug。

12. 新CEO走马上任。公司雇了一名新程序员重写该软件。

13. 程序员写出自认为没有Bug的代码。

要我说,如果真有这样的公司,不倒闭对不起人民。

这个笑话从程序员开始,到程序员结束,从头到尾都在说程序员的不是。但是我要说的是,这完全是管理者的失败,从整个过程中,看不到任何管理工作。这种管理者不但无知无能,还很无耻——将自己的失败责任推给程序员。

1. 程序员凭什么证明他的代码没有Bug?有Test case吗?有Code review吗?这个环节管理缺失。

2. 测试发现Bug有进行Bug管理吗?有跟踪吗?这个环节管理缺失。

3. 凭什么证明程序员已经把那10个Bug修改好了?另10个又为什么不是Bgu?Bug的评价标准难道是程序员说了算?这个环节管理缺失。

4. 5个不能工作的Bug修改问题有没有追究责任?增加新Bug是修改过程中不可避免的事情,但是如果有有效的单元测试机制,可以大大减少这种情况。这个环节管理缺失。

5. 迭代是正常的,但是问题处理于发散而不是收敛发展,可见没有有效的管理调控。这个环节管理缺失。

6. 过于乐观的时间表和不可能达到的最后期限,都表现出管理者的无知和无能。而在这样的情况下强行推出产品,那就是无知者无畏了。

7. 这是对用户的不负责任,管理者要负最大的责任。

8. 这样的情况还能发项目奖金,只能说管理者不是一般的愚蠢。

9. 管理工作没有任何的改进,问题仍然处于发散迭代状态。管理工作依然没有到位。

10. 拖欠测试部门工资体现出管理者对质量管理工作的忽视以及对人力资源管理方面一无所知。

11. 送被收购者两个字:活该。送收购者两个字:瞎眼。

12. 可见新管理者与原管理者半斤八两,都没有认识到问题的根本所在。不过也只有这样的管理者才会作出收购这种公司的决策。

13. 历史的重演是必然的。

一个正常的企业或是项目,其运作必须应该是循环向上进行的。而保障这种运行的工作就是管理。而管理工作的主要内容就是控制,包括控制循环的节奏——不能太快也不能太慢,控制发展的方向——只能向上不能向下,控制运作的稳定——不能大起大落或时聚时散等。而这一切,在这个例子中都看不到。

       在这个笑话的例子中,一切都是以开发工作在驱动,这首先就是一个方向性错误,产品是为用户服务的,当然应该是以用户和市场作为驱动,并且结合自身的能力最终 确定工作的重点。这一错误折射出管理者对被管理的内容很不了解,只好任由比较了解的程序员摆布——事实上他们除了技术,并不会了解更多。一个管理者如果对自己所管理的内容不了解,他就不可能管理得好。这是一件毫无疑问的事,可是国内的软件业似乎总是不相信这一点。中国软件业中流毒最深的谎言之一就是:管理者只要懂管理就可以,不需要懂技术。其实这不过是那些无知无能无耻的管理者为了骗钱而编出来的,相信这句话的人必将付出金钱的代价。

      其次是质量管理。基本的质量管理常识告诉我们,每次循环结束前,最重的工作就是总结改进。只有这样才能保证循环运作是向上发展,而不是失去控制地向下发展。也只有有效的质量管理,才能保证迭代过程是收敛发展,并最终达到目标。但在这个例子中,这个部分显然是缺失的——其中虽然有测试部门,但是他们的作用仅仅是质量管理中的质量检测环节,管理部分还是缺失的。

       然后是人力资源管理。软件开发是一项劳动密集型的工作,虽然这是脑力劳动,但同样意味着人在因素在其中占有决定性的地位。而例子中未改完BUG的程序员拿到项目奖金,而同样辛苦工作的测试人员却被拖欠薪资,除了表现出管理者对他们的工作内容的不了解,以及对质量管理工作的不重视以外,还表现出管理者完全不会管人,这是一种谋杀团队的行为——谋杀一个团队远比建设要容易得多。

       最后,这个失败的管理者把他的经历编成这个笑话,让大家看到他被程序员们害得多惨,把程序员妖魔化为一群骗子。但只要稍懂管理的人简单分析一下就可以看出来,只不过是这个人的无知和无能造成了他现在的结果,而把责任推给别人的行为更是表现出他的无耻。作为身居高位的管理者,如果连应该承担的责任都要推卸,他们还能胜任什么事情呢。


实战|验证码突破思路 漏洞成因:由于逻辑设计缺陷,可绕过验证,比如直接删除COOKIE或验证码参数可绕过、当验证不通过清空session时,验证码参数值为空时绕过等。测试方法:抓包,删除验证码字段,查看是否可以成功发送抓包,正常流程下,记录验证码后的数据包,替换目标包中内容,直接发送,查看是否可以直接绕过验证码案例:Step1.输入正确账户信息和错误验证码,登录时抓包Step2.删除COOKIEStep3.客户端登陆成功。 阅读详情

相关推荐

【首份】2023年30米分辨率土地利用遥感监测数据

为了恢复和重建我国土地利用变化的现代过程,更好地预测、预报土地利用变化趋势,地球资源数据云以美国陆地卫星Landsat 遥感影像数据作为主信息源,结合Sentinel系列数据,通过人工目视解译和机器学习方法,建立了国家尺度1:10 万比例尺多时期土地利用/土地覆盖遥感监测数据库(CNLUCC)因早期Landsat数据时空覆盖缺失,1972-1977年合成第一期数据,1978-1985年合成第二期数据,1986年起每年度生成一期数据。投影:Albers正轴等面积双标准纬线圆锥投影南标准纬线:25°N。

地球资源数据云的官方博客 3677

转一个笑话

有一个笑话是这样的: 1. 程序员写出自认为没有Bug的代码。 2. 软件测试,发现了20个Bug。 3. 程序员修改了10个Bug,并告诉测试组另外10个不是Bug。 4. 测试组发现其中5个改动根本无法工作,同时又发现了15个新Bug。 5. 重复3次步骤3和步骤4。 6. 鉴于市场方面的压力,为了...

ayanline的专栏 351

[Unity_Plastic SCM小技巧] 使用 UnityYAMLMerge 工具合并场景和预制件文件

首先YAMLMerge工具其实并不局限于PlasticSCM,git也可以,它是内置在Editor内的一个更加智能的版本控制工具,只不过正常不会启用,他的目录在C:\Program Files\Unity\Editor\Data\Tools\UnityYAMLMerge.exe(Unity Editor安装目录),MAC上:/Applications/Unity/Unity.app/Content...

unityofficial的博客 1144

那些“硬控”程序员的经典笑话,测试用例

在软件开发过程中,通常会结合两者进行全面的测试,以确保软件的质量和可靠性。:白盒测试,也称为结构化测试或透明测试,是一种测试方法,测试者在了解内部结构以及代码实现的基础上,对软件进行测试。在软件工程中,测试是极其重要的一环,比重通常可以与编码相同,甚至大大超过。:黑盒测试,也称为功能测试或行为测试,是一种测试方法,测试者无需了解内部代码实现,通过测试输入和输出结果来检验软件是否符合功能要求。:集成测试是在单元测试之后进行的,它测试多个软件模块之间的接口和交互,以确保它们能够协同工作。对了,顺便加点番茄酱。

jianguoA的博客 5039

【逆向实战】Unity游戏资源提取与解密全攻略:从AssetBundle到libil2cpp.so的破解技巧

本文详细介绍了Unity游戏资源提取与解密的完整流程,涵盖从AssetBundle到libil2cpp.so的破解技巧。通过AssetStudio和Il2CppDumper等工具,读者可以学习如何提取未加密资源、处理加密文件,并掌握动态dump技术。文章还提供了自动化脚本编写和常见问题解决方案,帮助逆向工程爱好者高效完成资源提取任务。

weixin_29012765的博客 1046

【人工智能】你知道什么是DeepSeek吗?你有去了解过DeepSeek吗?新手要入门DeepSeek的必经之路——初识DeepSeek

【人工智能】初识DeepSeek 详细介绍DeepSeek以及DeepSeek-R1

蒙奇D索大的博客 3364

十个最为戳心测试/开程序员笑话,念茫茫人海,该如何寻觅?

十个最为戳心测试/开程序员感言1、IT工程师=加班狂+程序员+测试工程师+实施工程师+网络工程师+电工+装卸工+搬运工+超人,有同感的吗。2、 用一句话总结了HTML,CSS,JS的关系。HTML是名词,JS是动词,CSS是形容词和副词。3、我是个程序猿,一天我坐在路边一边喝水一边苦苦检查bug。这时一个乞丐在我边上坐下了,开始要饭,我觉得可怜,就给了他1块钱,然后接着调试程序。他可能生意不好,就无聊的看看我在干什么,然后过了一会,他幽幽的说,这里少了个分号。。。分号。。。分号。。。4、女友对程序员说:“紫

大佬云集技术答疑交流群:743262921(进群暗号:222) 1299

(数字ic验证)从零开始的apb_watchdog验证模块搭建(一、功能介绍与环境搭建)

apb_watchdog验证模块搭建(一)文章目录 文章目录apb_watchdog验证模块搭建(一)文章目录前言一、apb_watchdog简单功能介绍二、测试平台环境搭建1.测试所用模板介绍2.tb与interface2.env与watchdog_pkg3.test与base_sequence4.Makefile总结——当前验证结构 前言 本文介绍了apb_watchdog验证模块的搭建过程与其具体代码,主要包括其中验证环境的构建,测试序列的发送与回归测试收集。主要运用systemvorilog与u

peop1e的博客 9737

【趣味无穷】测试与开发的日常恩怨情仇

在软件行业,开发工程师和测试工程师的关系就像是Tom和Jerry,永远都在互相捉弄,但又离不开对方。他们的日常交流中,经常会有一些令人忍俊不禁的笑话。下面,让我们一起看看这些行业内的"内部笑话"。

伤心的辣条 900

SAP_SD模块-销售批次策略应用记录

SAP_SD模块-销售批次策略完整案例

风沙的博客 2610

GStreamer Plugin之Gst-nvdewarper

支持三种投影类型 NVDS_META_SURFACE_FISH_PUSHBROOM, NVDS_META_SURFACE_FISH_VERTCYL 和NVDS_META_SURFACE_PERSPECTIVE_PERSPECTIVE。关于每个平面的NvDewarperSurfaceMeta参数(projection_type, surface_index, and source_id)以及内存中有效的矫正平面(num_filled_surfaces)包含RGBA格式的一帧的缓存。矫正后的RGBA格式。

pvmsmfchcs的博客 366

今天你笑了吗?只有软件测试工程师才能看懂的笑话

架构师相亲,说:我是架构师。美女:贾先生你好。架构师:叫我狗屎就好了 某程序员退休后决定练习书法,于是重金购买文房四宝。一日,饭后突生雅兴,一番研墨拟纸,并点上上好檀香。定神片刻,泼墨挥毫,郑重地写下一行字:hello world! 程序员之交接离职同事的项目 大一刚学C语言,第二次上机课,当我发现我照着书抄写的程序在运行之后的黑框里跳出一排烫烫烫烫烫,当时就震惊了。你们能想象一个来自小城,在大学之前没怎么接触过电脑更不懂代码的孩子当时内心的恐惧吗?我真的以为这是电脑过热发出的...

测试官 1918

滤波算法实现大全——基于匀速直线运动模型的kalman滤波算法

滤波算法实现大全——基于匀速直线运动模型的kalman滤波算法

jane0819的博客 522

从一个笑话看软件开发管理(转)

 1. 程序员写出自认为没有Bug的代码。2. 软件测试,发现了20个Bug。3. 程序员修改了10个Bug,并告诉测试组另外10个不是Bug。4. 测试组发现其中5个改动根本无法工作,同时又发现了15个新Bug。5. 重复3次步骤3和步骤4。6. 鉴于市场方面的压力,为了配合当初制定的过分乐观的发布时间表,产品终于上市了。7. 用户发现了137个新Bug。8. 已经领了项目奖金的程序员不知跑

单元测试 3362

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

从笑话看软测

有一个笑话是这样的: 1. 程序员写出自认为没有Bug的代码。 2. 软件测试,发现了20个Bug。 3. 程序员修改了10个Bug,并告诉测试组另外10个不是Bug。 4. 测试组发现其中5个改动根本无法工作,同时又发现了15个新Bug。 5. 重复3次步骤3和步骤4。 6. 鉴于市场方面的压力,为了配合当初制定的过分乐观的发布时间表,产品终于上市了。 7. 用户发现了137个新B

Unity3d游戏开发 387

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

从一个笑话看软件开发管理

1. 程序员写出自认为没有Bug的代码。2. 软件测试,发现了20个Bug。3. 程序员修改了10个Bug,并告诉测试组另外10个不是Bug。4. 测试组发现其中5个改动根本无法工作,同时又发现了15个新Bug。5. 重复3次步骤3和步骤4。6. 鉴于市场方面的压力,为了配合当初制定的过分乐观的发布时间表,产品终于上市了。7. 用户发现了137个新Bug。8. 已经领了

张彤的专栏 1038

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

转摘:从一个笑话看软件开发管理

来自于:http://blog.youkuaiyun.com/Raptor/archive/2006/05/13/727299.aspx 关于软件开发的笑话有很多,下面这个是我刚在里的看到的: 1. 程序员写出自认为没有Bug的代码。2. 软件测试,发现了20个Bug。3. 程序员修改了10个Bug,并告诉测试组另外10个不是Bug。4. 测试组发现其中5个改动根本无法工作,同时又发现了15个新...

heweiyabeijing的专栏 149

一维生物:阅读理解中的复合隐喻解构方法论

复合隐喻是现代阅读理解题的核心认知载体,它不依赖标准定义,而依托语境生成临时语义。其原理在于通过跨域词汇强制嫁接(如‘一维’与‘生物’)制造逻辑张力,从而激活考生的元认知定位能力。技术价值体现在绕过知识储备差异,聚焦信息不完整条件下的结构化解码效率。典型应用场景包括面试评估、政策文本分析、算法伦理辨析等需快速把握抽象关系的高阶思维场域。本文以‘一维生物’为切口,系统拆解语境切片、三层剥洋葱、三分钟响应链路等可迁移解构范式,助力学习者将陌生符号转化为认知防伪工具。

weixin_34014555的博客 305

mysql 中间变量的值_MySQL中间变量的用法-by小雨

今天一直在学习之类的问题,今天正好有机会和大家共享一下.SET @countries=(SELECT GROUP_CONCAT(DISTINCT countrys) FROM gui_web_region_info);INSERT INTO gui_web_action_info SELECT '2013-04-16', package_name, country, 'gui_i000', usi...

weixin_29281915的博客 347
上一篇: http://wireless.kernel.org/80211books/
下一篇: WEP,WPA-PSK,WPA2-PSK握手深入分析1
wifi狂人
博客等级 码龄17年 98粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值