“其实,全部软件都有一个相同的目标:帮助其他人。

文字处理软件帮助大家编辑文档,浏览器帮助大家浏览网页。。。服务于动物或植物的软件,其目的还是帮助人类。。。即使你写的是程序库,它们也是为程序员服务的,程序员也是人。。。软件从来都不是用来帮助无生命事物的。软件要帮助的不是计算机,而是人。

软件的目标不是‘赚钱’或者‘炫耀智商’。。。即便赚钱和炫耀智商可以‘帮助’你,但这只是非常狭隘的帮助;相比为帮助别人而设计的,满足其他人需求的软件,仅仅考虑狭隘目标的设计,很可能收获糟糕的软件。

任何情况下,你所赚的钱都直接维系于你的软件能为他人提供多少帮助。。。。在做与软件有关的决策时,指导法则就是判断能提供什么样的帮助。各项需求也可以照这个标准排除先后顺序。哪项需求能为人们提供最大的帮助,就应当赋予最高的优先级。

所以,软件设计科学的目标应该是:

1. 确保软件能提供尽可能多的帮助
2. 确保软件能持续提供尽可能多的帮助
3. 设计出程序员能尽可能容易开发和维护软件系统,这样的系统才能为用户提供尽可能多的帮助,而且能持续提供尽可能多的帮助

-- 来自《简约之美:软件设计之道》”


作者认为软件的目的是服务他人,而且软件是否成功在很大程度上取决于软件本身对人的帮助有多大。

这一点很值得程序员,设计,产品经理思考:

现在这个需求或设计是否真的可以帮助我们的目标客户;如果有,帮助大还是小?如果帮助小,那如何改进可以更好地帮助他们?

现在这个代码库是否真的可以帮助我们的业务方?这些功能真的都是可以解决业务方的问题么?是否有些功能是可有可无的?业务方接过来用是否会觉得不方便?或者同事看了我的之后是否能马上理解我代码的意思,不需要花费太多的时间和精力去理解和修改它们?

另外,作者所说的需要可持续提供帮助这一点也非常好。

比如这个需求将来能否还有可以做得更好的可能?

这段代码或者模块扩展性是否很强?是否容易修改?出现问题的时候我们能否积极响应并修复?

说到底我认为这是一个格局的问题:

你是只为了挣钱,拿到钱就满足了,还是为了真心想帮助他人,解决他人的问题?

你是只为了KPI,完成某个特定任务而已,还是为了真心想帮助同事,帮助公司的客户,让公司越来越好?

格局决定高度,你想在哪个高度呢?
展开
3