当前位置: 首页 > news >正文

论“多快好省”

你想多就快不了,同样你想好就省不了。你说你让我十分钟洗一万个土豆,那我只能拿水管子呲一呲,你还质问我为什么不削皮!狗屁!

上面这段话是之前听一个老师说的,正好符合当前的处境,就引用了下,大概是这么个意思,可能比原话多几个或少几个字,但无伤大雅。

我常常在想,一个软件,为什么一直迭代、一直在解决问题,但问题一直是是没完没了,是工程师水平的问题么?是产品设计不合理的原因么?还是另有蹊跷?其实每个环节都有问题,造就了全是问题的软件。

一个项目,最初的定义实在 A 设备上运行,只有 a 功能,之后产品说需要适配 B 设备,又加了 b 功能,而且 b 功能 A 设备上不能有,之后又有了 C 设备、c 功能。。。。这个其实也不能怪产品,他们在定义一个产品的时候也不知道未来会想要什么(可能吧!)

对于研发而言,产品定义的功能肯定是想好好完成,完全达标,并且具有很强的扩展性,但事情往往不尽如人意,可能是人手的问题,亦或者是时间的问题,这两个但凡有一个存在,那么软件的质量肯定会大打折扣,就像文章开头引用那位老师的话:狗屁!

但研发没错么?肯定不可能,一个可改可不该的问题。在改完之后变成了一个严重问题,甚至是多个严重问题,代码瞎写,业内称为“屎上雕花”!如果是维护老代码的话更干了!绝大多数研发想的都是:项目中的屎山代码,我能在上面雕花已经很厉害了,还要干什么,即使我知道那块写的不好,但我也不会去动,因为现在它处于一个稳定的状态,如果我去修改了之后,出了问题全是自己背,吃力不讨好!这也确实是很多人的现状,考虑的也不无道理,但在这里咱们单纯从代码的角度来看,从写代码的初心来看,早早的就背道而驰了。

从目前我自己的工作来看,效率高并不是一件好事,反而是领导多给你加活的理由!“别人的活干到晚上九点都干不完,你的下午就干完了,肯定是工作量不饱和嘛!”我自己的想法是我好好干,努力干,干完之后能有自己的一点时间用来学习新内容、新知识,但从我博客的更新频率也能看出,今年以来已经没有任何时间用来学习,只是疲于解决问题。这又让我想起历史课本中的话“干多干少一个样”。

自己最开始负责 A,之后领导觉得工作量不够,加上了 B,然后一个同事被分配做一个新的内容,他负责的 C 也加了过来,之后一个同事离职,他负责的 D 也加了过来,没完没了,之后不知道会不会还有 E、F、G!干的越多,出错的可能性越大,越有可能背锅。如果我还是负责之前自己负责的 A,那么有空的话学习新技术的话想到的肯定是如何优化它,和大家做一做技术分享,一块讨论下学习的技术是否可以用于项目中,努力把 A 弄好,但。。。。。。

突然觉得文章开头提到的老师说的也不太对,“多快好省”是可以的啊,只需要找像我这样的牛马,既干的多,又干的快,干的好不好吧另说,但肯定在平均值之上,省是真的省,目前已经实现了一个人干三四个人的活!

孺子牛的后代大多是哑牛,哑牛天生是个哑巴,哑牛的欢娱就是结束劳作后聚集在一起吃着过剩的草,关注主人养的鹦鹉是否有新的变化。哑牛以为荒田耕完了子孙后代就不用重复自己的生活且相信自己的后代有发声的权利。最终哑牛失去了劳动的能力,惊恐的失神的瞳孔定格,哑牛在屠夫刀下实现了最后的价值。

呵!原来我自己就是“多快好省”啊!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 第12章 网络 (3)
  • python环境训练推理问题服务代码运行异常(error: this module is not meant to work on windows)
  • CF1945H GCD is Greater
  • [Matsim]Matsim学习笔记-动态线路接乘客上车的逻辑
  • 安利7个免费开源的网络监控工具(非常详细)收藏这一篇就够了
  • 调研-音视频
  • T/CECS 10035-2019 绿色建材评价 金属复合装饰材料
  • 数字赋能下的艺术蝶变:沃可趣如何重塑乐园演艺人才培训?
  • js中filter函数使用箭头函数的时候注意事项
  • 基于x86 平台opencv的图像采集和seetaface6的静默活体功能
  • H5实现带电话号码跳转到手机呼叫
  • Java二十三种设计模式-状态模式(20/23)
  • uniapp微信小程序 分享功能
  • Python计算机视觉编程 第六章
  • MySQL 视图(VIEW)的使用
  • 【知识碎片】第三方登录弹窗效果
  • bootstrap创建登录注册页面
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • Intervention/image 图片处理扩展包的安装和使用
  • Java深入 - 深入理解Java集合
  • k个最大的数及变种小结
  • Protobuf3语言指南
  • Vue官网教程学习过程中值得记录的一些事情
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 类orAPI - 收藏集 - 掘金
  • 力扣(LeetCode)357
  • 前言-如何学习区块链
  • 移动端唤起键盘时取消position:fixed定位
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • ​学习一下,什么是预包装食品?​
  • ‌‌雅诗兰黛、‌‌兰蔻等美妆大品牌的营销策略是什么?
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • #100天计划# 2013年9月29日
  • #Linux(make工具和makefile文件以及makefile语法)
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • $L^p$ 调和函数恒为零
  • (LLM) 很笨
  • (WSI分类)WSI分类文献小综述 2024
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (学习总结16)C++模版2
  • (译) 函数式 JS #1:简介
  • (转)Scala的“=”符号简介
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .gitignore
  • .mysql secret在哪_MySQL如何使用索引
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .NET 指南:抽象化实现的基类
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • /bin、/sbin、/usr/bin、/usr/sbin
  • @EnableWebSecurity 注解的用途及适用场景
  • @SuppressLint(NewApi)和@TargetApi()的区别
  • [2019.3.5]BZOJ1934 [Shoi2007]Vote 善意的投票
  • [AIGC] CompletableFuture的重要方法有哪些?