首页 > 编程语言 >程序员应该时刻提醒自己,“不要打破窗户”

程序员应该时刻提醒自己,“不要打破窗户”

时间:2023-08-25 16:55:05浏览次数:60  
标签:不要 项目 一个 衰变 打破 窗户 程序员

尽管软件开发并不受大多数物理定律的限制,但我们无法逃避不断增加的熵的影响。熵是物理学中的一个术语,定义了一个系统的“无序程度”。不幸的是,热力学定律规定,宇宙中的熵趋向于最大化。随着软件中的无序程度增加,程序员可能会说“软件正在衰变”。有些人可能使用更乐观的术语,比如“技术债务”,暗示他们将来会还清它 - 尽管这一天可能永远不会到来。

无论它被称为什么,债务和衰变都可能会无法控制地蔓延。

许多因素会导致软件衰变。其中最关键的因素之一似乎是项目工作中的心理状态或文化。即使在一个单人团队中,你的项目的心理状态也是非常脆弱的。尽管有最好的计划和最好的人员,项目仍然可能在其生命周期内逐渐恶化和衰变。但一些项目在经历了巨大的挑战和持续的挫折后,仍然能够抵抗向无序状态的自然趋势,成功地从混乱中脱颖而出。

是什么导致了这种差异?

在市中心,一些建筑物干净漂亮,而另一些则破旧不堪。为什么会这样?在犯罪和城市衰败领域的研究人员发现了一个有趣的触发机制 - 一种可以迅速将一个维护良好、适宜居住的建筑变成破败废墟的东西。

一个破窗户。

一个破窗户如果长时间不修理,会使建筑物的居民潜移默化地产生被抛弃的感觉 - 就好像当权者不关心这座建筑物一样。然后,其他窗户开始破裂,居民开始乱丢垃圾,墙上出现涂鸦,结构损坏加剧。在很短的时间内,损坏程度足以让物业所有者不再费心去修复它,而被抛弃的感觉成为现实。

为什么会发生这种情况?心理研究表明,绝望是有传染性的,就像在封闭的空间里的流感一样。忽视显然有问题的事情会加强这样一种观念:什么都不能修复,没有人关心,一切都注定会这样。所有负面情绪在团队成员之间传播,形成恶性循环。

(程序员的软技能:ke.qq.com/course/6034346)

不要让窗户破碎。

不要让“破窗户”(糟糕的设计、错误的决策、劣质的代码)不加修复地存在。发现问题时立即修复。如果没有足够的时间完全修复,那就封住它们。也许你可以注释掉糟糕的代码,显示“尚未实现”消息,或者用占位数据替换它。采取行动防止进一步损害,并展现出你的控制力。

现在我们明白了,一旦窗户开始破裂,良好运行、清洁的系统会迅速恶化。尽管还有其他因素会导致软件衰变,但与其他任何因素相比,忽视会加速这个过程。

你可能会觉得没有人有时间清理项目中所有破碎的玻璃。如果这是你的想法,可以考虑考虑项目结束后的后果,或者只是离开一个不适合你的地方。不要让熵获胜。

不要造成伤害。

多年前,安迪认识了一个百万富翁。他的房子华丽,摆满了无价的古董,并装饰着精美的艺术品。有一天,一幅挂毯因为离客厅的壁炉太近而着火了。消防队员赶来扑救,主要是扑救火灾。但在他们带来巨大水管之前,他们停下来了 - 尽管火灾紧迫 - 并决定在前门和火源之间铺设垫子,因为他们觉得水管是脏的。

他们不想弄脏地毯。

这可能听起来很极端。消防部门的主要目标当然是扑灭火灾。在过程中不关心附带损害为什么?然而,在清楚评估了情况,并对自己控制火灾的能力有深刻信心后,他们仍努力避免不必要的财产破坏。软件开发应该遵循这种方法:不要因为某些东西很关键就造成附带损害。即使有一个破窗户也是太多了。

一个破窗户 - 一个设计不良的代码片段,一个错误的管理决策,你的团队在整个项目生命周期中必须遵循的决策 - 标志着衰落的开始。如果你在一个有几个破窗户的项目中,很容易陷入这样的思维模式 - “嗯,其他一切都已经乱成一团了,我只能随波逐流了。”直到现在为止,项目的状态并不重要。在最初的实验中,激发了“破窗户理论”的那个实验,一辆被遗弃的汽车保持完好一个星期。但一旦有一个窗户破了,汽车就会在几个小时内被掏空并颠倒过来。

出于同样的原因,如果你在一个健康的团队中,项目的代码很完美 - 清晰的写作、坚实的设计、优雅的简洁 - 你会倾向于特别小心,不会弄乱它。就像那些消防队员一样,即使面对熊熊烈火(截止日期、发布日期、销售演示等),你也不会想成为第一个打破平静的人,造成附带损害。

时刻提醒自己,“不要打破窗户”。

(程序员的软技能:ke.qq.com/course/6034346)

标签:不要,项目,一个,衰变,打破,窗户,程序员
From: https://www.cnblogs.com/iphone100s/p/17657394.html

相关文章

  • 程序员应该学会“提供更多选择,找少点借口”
    在你的职业发展、学习、教育、项目和日常工作中,你对自己和自己的行为负责。这是务实哲学的基石之一。务实的程序员充分掌握自己的职业,从不害怕承认无知和错误。编程中可能会出现一些不愉快的事情,但它们是不可避免的-即使是最好的项目也不例外。尽管经过了彻底的测试、优秀的文档......
  • 程序员要知道“你有权选择”
    生活属于你;它涉及拥有、管理和创造。我们已经与许多沮丧的开发者交谈过。他们的关切各不相同。有些人觉得自己的职业生涯停滞不前。还有些人认为自己的技能已经过时。有些人觉得自己没有得到应有的认可,而另一些人则抱怨低薪或团队功能失调。有些人想在亚洲或欧洲工作,有些人更喜欢......
  • 《程序员的自我修养》第四章学习笔记
     2015.12.26的笔记,放在了草稿箱。2023.8.24发布一下吧。第四章静态链接 先上两个文件//a.cexternintshared;intmain(){inta=100;swap(&a,&shared);}//b.cintshared=1;voidswap(int*a,int*b){*a^=*b^=*a^=*b;} 再......
  • C++面向对象笔记(转载自黑马程序员)
    C++核心编程本阶段主要针对C++面向对象编程技术做详细讲解,探讨C++中的核心和精髓。1内存分区模型C++程序在执行时,将内存大方向划分为4个区域代码区:存放函数体的二进制代码,由操作系统进行管理的全局区:存放全局变量和静态变量以及常量栈区:由编译器自动分配释放,存放函数的......
  • 一加ACE2 PRO打破现象 再造爆款
    打破现象级的方式,就是再造一个爆款!一加Ace2Pro首批20万备货,3分钟全部售罄!下次开售时间,8月26日本周六10:00评论 (0)评论暂无更多......
  • 【译】掌握这些策略,公司轻松留住顶级程序员!
    我们是家专注于提供高品质软件开发服务的小公司,最近和一家在全球有业务的大公司签了合同,负责一个大型项目。工程日期只给了八个月,实在是太紧了。所以,我们打算扩大团队来应对这个挑战。我们新招了一位工程师。刚开始,我们分配给他一些基础性的工作,如文档更新、错误修复以及回归测试......
  • 6款程序员必备的 Chrome 扩展插件!逼格秒提升
    美化JustBlack午夜黑主题简介:Chrome官方团队出品的黑色主题皮肤,值得拥有!推荐指数:⭐⭐⭐⭐⭐下载链接:https://www.chajianxw.com/themes/18893.htmlDarkReader暗黑主题简介:能在任何网站上开启夜间模式,同时,它还支持自定义调整亮度、对比度,应用棕褐色滤镜、黑暗模式,设置字体和忽......
  • 11 款程序员必备的 Chrome 扩展插件! 提升开发效率!
    Octotree树形菜单简介:Octotree是一款增强GitHub代码审查和探索的浏览器扩展,可以非常方便帮助您查阅代码。推荐指数:⭐⭐⭐⭐⭐下载链接:https://www.chajianxw.com/developer/11032.html划词翻译简介:一站式划词/截图/网页全文/音视频翻译扩展,支持谷歌、DeepL、百度、搜狗等......
  • 20+完整的商业实战项目,手把手教你成为将军式程序员
    常常有朋友问我:“如何提高自己的开发能力?”、“如何拿到大厂offer”、“我想成为行业大牛,编程专家,但总感觉自己在原地踏步,该怎么办?”......在寻找答案的过程中,有些人把原因归咎到企业对前端的重视程度不够,有些外在因素固然重要,它们可能会导致你在当时企业的怀才不遇。但是你确定自......
  • 水循环安全生产监管方案,打破企业数据孤岛!
    一、什么是智改数转?“智改数转”指的是智能化改造和数字化转型,包括了硬件智能化改造和软件集成应用的叠加,以全面提升企业在设计、生产、管理和服务等方面的智能化水平。通过整体组织更新、流程再造和数字化导入,智改数转可以促使企业改变发展方式,焕发新的能量。作为制造大省,江苏省政......