系统架构大师的设计反思

sdq
Explore, Think, Create
3 min readMay 2, 2017

《设计原本》读书笔记

The Design of Design: Essays from a Computer Scientist
  • 软件行业较为理性,是逻辑可证的,而设计行业或其它行业却不一定,人们可能无法仅仅通过逻辑思考就正确地设计出复杂的对象,而必须通过测试与迭代
  • 在一切设计开始之前,必须先定义清晰的用户模型。团队内部需要对用户模型达成一致,避免出现每个人根据自己长期经验而主观判断的现象。面对一些无法做出判断,不得不做出假设的方面,必须清晰地表达出来。因为即使错误的假设也远胜过那些含糊不清的假设。错误的假设可以帮助我们更快地接近真相,而含糊的假设却不能。
  • 所有的设计都需要考虑预算资源,特别是那些无法用金钱来计算的资源。此外,预算资源始终在变化,如OS/360项目的预算资源从一开始的内存字节变成了磁盘访问时间。换句话说,预算资源其实也就是设计所面对的限制。应对方案有三种,一是从一开始就清晰定义需求资源,二是公开信息让项目组所有人都清晰的了解到自己任务所涉及到的资源问题,三是严格控制资源,始终保留一小部分以供可持续发展。
  • 约束看似是负担,其实却可以加速设计,正所谓目标越明确,设计越简单。完全没有约束的设计反而是非常难的。在已有的框架下创作可以提高效率,同时也为设计者提供了创新的契机。当然,约束也不尽然是优点,那些过时的约束和容易让人误解的约束需要设计者自身的判断力去区分。设计悖论:通用产品设计比专用产品设计更难。
  • 必须保证设计风格的一致性。对于写作而言,一个作者独自写十几页的文字,应该能确保风格一致,但当范围扩大到一整本时,就必须把风格上的规范记录在案了。对于团队协作而言,更需要一个规范文档来确保设计风格。
  • 设计的分离指的是随着现代产品的复杂性逐渐提升,设计者、实现者与用户已经分离了,导致的问题就是沟通不畅,设计达到的效果令人担忧。措施有几个:1. 设计师模拟用户场景;2. 增量式开发不断交付与迭代,与用户紧密交流。;3. 让产品实施者和用户积极参与到设计中,形成并发。;4. 教育设计者理解用户需求与期望。
  • 团队必须深入设计过程,因为设计不仅仅是满足需求,同样也是发现需求的过程。设计同样不是简单的选择已有的可选方案,也需要意识到潜在的可选方案。此外,需要将设计的演变轨迹以及理由全部记录在案,这样的设计轨迹文档不仅可以帮助设计的维护,同时也可以避免将来的很多无知错误。

--

--