做好“足够好"的后果.软件 [英] Consequences of doing "good enough" software

查看:98
本文介绍了做好“足够好"的后果.软件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

做足够好"的软件会使您成为程序员吗?

Does doing "good enough" software take anything from you being a programmer?

这是我对此的想法:

来自JoelOnSoftware的Joel Spolsky说,程序员感到无聊是因为他们做的足够好"(即使软件没有经过优化也可以满足要求).我同意,因为人们喜欢做正确的事情.在光谱的一侧,我想走得更远:

Well Joel Spolsky from JoelOnSoftware says that programmers gets bored because they do "good enough" (software that satisfies the requirements even though they are not that optimized). I agree, because people like to do things that are right all the way. On one side of the spectra, I want to go as far as:

  1. 以一种使我可以将我在大学获得的数学和计算机科学方面的全部知识尽可能地运用到自己身上的方式来优化软件.
  2. 执行所有可能的软件开发过程:在一个自动构建步骤中,从存储库获取规格,生成代码,构建,测试,完整部署手册.

另一方面,对我们人类来说,一个特点就是我们喜欢多样性.为了使我们保持吸引力(喜欢编程),我们需要从一个项目或技术跳到另一个项目或技术,以使我们不会感到无聊并获得乐趣.

On the other hand, a trait to us human is that we like variety. In order to us to maintain attraction (love programming), we need to jump from one project or technology to the other in order for us to not get bored and have "fun".

请问您作为程序员或人类为您制作足够好"的软件是否有任何好的或坏的副作用?

I would like your opinion if there is any good or bad side effects in doing "good enough" software to you as a programmer or human being?

推荐答案

实际上,我认为足够好的程序员要比blue-sky-make-sure-everything-perfect更好.

I actually consider good-enough programmers to be better than the blue-sky-make-sure-everything-is-perfect variety.

这是因为,尽管我是一名编码人员,但我还是一名商人,并且意识到程序并非满足程序员的要求,而是为了满足特定的业务需求.

That's because, although I'm a coder, I'm also a businessman and realize that programs are not for the satisfaction of programmers, they're to meet a specific business need.

实际上,我在另一个问题上有一个争论,那就是检测获胜的井字游戏/十字交叉游戏的最佳方法(采访问题).

I actually had an argument in another question regarding the best way to detect a won tic-tac-toe/noughts-and-crosses game (an interview question).

我收到的最好的解决方案是来自一个候选人,该候选人只是用if语句检查了所有8种可能性.有些提供了通用的解决方案,尽管可行,但完全没有必要,因为规格非常清楚,它仅适用于3x3电路板.

The best solution that I'd received was from a candidate that simply checked all 8 possibilities with if statements. There were some that gave a generalized solution which, while workable, were totally unnecessary since the specs were quite clear it was for a 3x3 board only.

许多人认为我太过严格,成功"的解决方案是垃圾,但是我的观点是编写完美可扩展的精美软件不是程序员的工作.满足业务需求是他们的工作.

Many people thought I was being too restrictive and the "winning" solution was rubbish but my opinion is that it's not the job of a programmer to write perfect beautifully-extendable software. It's their job to meet a business need.

如果这种业务需求允许他们自由地做超出必要的事情,那很好,但是大多数软件和修补程序都是在时间和成本约束下交付的.程序员(或任何专业)不能真空工作.

If that business need allows them the freedom to do more than necessary, that's fine, but most software and fixes are delivered under time and cost constraints. Programmers (or any profession) don't work in a vacuum.

这篇关于做好“足够好"的后果.软件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆