软件设计
小时候刚接触电脑的时候,被电脑那新奇的各种功能所惊讶,于是就不小心迷入了IT这个行业。以前总幻想自己能够做出多炫的软件,精美绝伦,无所不能。结果现在越发觉得成为了机器的奴隶,常纠缠于各种软件和应用之中,似乎已忘记了生活的目的应该是什么。
随着电脑的能力越来越强大,电脑入侵人类生活的比例越来越大。电脑有娱乐功能,有社交功能,有获取信息功能,。。。等等。由于现在工作离不开电脑,几乎每天的生活有80%的时间要面对它,实在让人觉得厌倦,于是开始思考除了电脑以外该有什么样的生活。电脑的发明本来应该是为了让人们生活过得更舒适,改善人们的生活,而不应该把越来越多的麻烦带入生活里面。我觉得电脑作为工具,就应该尽量少地干扰到人类正常生活的需求,提高人们的工作效率,为生活带来便利,使人们的生活简单化,而不是复杂化。因此,我也在考虑软件真正的“成熟度”问题(不是CMMI那个软件工程成熟度)。
在《敏捷软件开发》中,作者提出了一个人学习技能的三个阶段模型。这里用我自己的话概括下:
第一个阶段是“守”,学习怎样把一件事情做对;
第二个阶段是“破”,掌握这件事情的各个边界;
第三个阶段是“离”,领悟出这件事情的本质,明白在各种环境下怎样做出反应最直接有效,而不在局限于条条框框。
反过来,我觉得软件作为人的工具,应该类似地有以下三个阶段的成熟模型:
第一个阶段,学习人如何做这件事的方式,能够像人一样完成一个任务。
第二个阶段,学习人在面对不同的情形时,作出如何不同的反应。
第三个阶段,能够智能地分析在各种环境下怎样做出反应最直接有效,而不再需要人的干预(或仅需最小的干预)。
软件不应该越做越复杂,而应该越做越简单。以前太过关注界面的东西,而忽略了在界面背后的功能性问题。即使内部功能越来越复杂,界面应该越做越简单,就好像Apple的产品一样。Less is more。