你是否也处在这样的反模式中

jopen 8年前


Bryanedds
自称是一名软件异教徒。近日,他 在Medium上历数了现代软件开发中存在的反模式 。本文将扼要进行介绍。

  1. 业务思维偏爱短期利益
  2. 在软件开发工作中,考虑越长远,软件就会越健壮,成本就会越低,痛苦就会越少。但由于经济环境驱使,管理者采用了一种短视的思维方式。软件系统的完整性不仅没能成为应该受到尊重的约束,反而被看成了软件开发的障碍。

  3. 不合群就会被钉上十字架
  4. 不管你多么高效,不管你加了多少班,或者与同事合作得多好,只要你的想法与管理层出现了分歧,你就会被钉上十字架。因为你的工作是帮助管理层达成下一季度的预期。你必须修复上一季中本可以避免的缺陷,或者仅仅重构几段不相干的代码实现下一个拙劣的特性。

  5. 软件架构师成为政客
  6. 成为一名软件架构师的资格不是技术,而是具备强迫一线工程师以不可持续的方式实现软件功能的能力,因为这是满足短视的管理层所必须的,而构建精心设计的系统就不再是软件架构师的首要任务了。

  7. 忍受痛苦是你提供的商品
  8. 让你获得软件开发职位的不是你的技术能力,也不是你同其他工程技术人员合作的能力,因为日常工作只需要你很小的一块能力。真正让你获得职位的是你对莫名其妙的Bug和混乱代码的忍受能力。你不是一个问题解决者,而是一名问题忍受者。

  9. 周围的同事不支持变革
  10. 业务和管理人员短视,但与你共事的人比他们更短视。管理人员会考虑下一个报告期,而他们可能只考虑下一个工资期。

  11. 总是有人伺机“削(Undercut)”你
  12. 有人从不抱怨代码,也从不“浪费时间”梳理代码,并且总是最先终止“有害”的讨论。一旦团队的代码库变得混乱,他就会取代现有的软件架构师,成为新的负责人。

  13. 责任心被剥夺
  14. 集体代码所有是了让开发工作不中断,但它允许任何人以任何方式修改任何代码。这会导致“ 公地悲剧 ”。而实际上,有时候“阻塞”是必要的,高级工程师可以藉此防止代码库遭受短期思维侵害,确保软件以一种可持续的方式开发。Bryanedds认为,集体代码所有是自JavaScript出现以来最损害代码的事。

  15. 方法论成为管理工具
  16. 方法论无助于创建更好的软件,敏捷就是一个很好的例子。它开始时是一种合理的软件开发方式,但现在却变成了“ Psych 101 MBA Bullshit ”。

    此外,Bryanedds还指出,不要期待新团队/项目中不存在这些反模式,商业软件开发是一种底线竞争,没有人会在乎开发者遭受的痛苦。