软件并不能解决所有问题。有大量的人类挑战,软件无济于事,甚至可能使问题变得更糟。
当很难枚举系统应该如何工作的规则时。或者,当存在大量特殊情况或规则例外时,编写软件可能会带来更多麻烦,而不是值得的。
我是一名软件顾问。很多时候,我看到客户试图编写代码来解决混乱的人类问题。他们需要的是更好的组织、操作程序以及利益相关者之间的共识。这些都不是软件可以解决的问题。
如何确定某个问题何时适合软件?
- 是否有重复的步骤会产生可预测、可重复的结果?
- 拥有单一事实来源重要吗?
- 相关各方会实际使用该软件吗?它会让他们的生活更轻松吗?
上述问题的答案并不总是“是”。在构建之前,请确保该问题适合软件解决。