按照之前阅读之后得到的架构的定义,做好架构首先需要做的就是识别出需要解决的问题。一般来说,如果把真正的问题找到,那么问题就已经解决了80%了。这个能力基本上就决定了架构师的水平。

  女主人公:老公,把袋子里的土豆切一半下锅。结果老公是把袋子里的每个土豆都削了一半,然后下锅。这个笑话是书中所提到的,也是我们老师上课提到过的。引人深思,老公做的有错吗?有的话,为什么老公就是不知道女主人公的意图呢?可能就是俩人不了解对方。

  接下来是笔者的看法:当然很多人会说,这个是沟通问题,然后一笑了之。其实,出现这个现象是由于我们大部分时候过于关注解决问题,急于完成自己的工作,而不关心“真正的问题是什么”而造成的。当我们去解决一个问题的时候,一定要先把问题搞清楚。这也是我为什么要单独写一篇文章讲这个的原因。去看看软件开发工作者的时间分配也可以看出,大家大部分时间花在讨论解决方案和实现的细节上,基本都不会花时间去想“问题是什么”。或者即使想了一点点,也是一闪而过,凭自己的直觉下判断。只有真正投入思考问题是什么的工程师,才可能会真正的成长为架构师。

  以这个笑话为例,看看在我们处理问题的时候,都会犯什么样的错误:

  • 被告知要处理一个问题,但是交过来的实际上是一个解决方案,不是问题本身。

  • 被告知要处理一个问题,直接通过直觉就有了一个解决方案,马上考虑解决方案如何落地,或者有几种解决方案,选哪个合适。

  那么如何识别问题呢?

  所有的概念基本都有一个很大的问题,就是缺乏主语。而我们大家都心照不宣的忽略这个主语,沟通的时候也都以为大家都懂得对方说的主语是谁,结果大家都一起犯错误。识别问题的一个最大的前提就是要搞清楚:是谁的问题。这个搞清楚了,问题的边界也就跟着确定了,再去讨论问题才有意义。

以上面切土豆的例子来分析:

  1. 女主人提出一个问题,要切土豆下锅煮。

  2. 男主人有一个问题,女主人交代了自己必须要完成的一个任务。

每个人都是优先处理自己的问题,自然就选择了2,完成了这个任务。这也是大部分软件工程师处理的方式,以自己认为对的方式完成自己的问题,没什么不对啊,也难怪能得到我们的共鸣。这个里面犯的错误是什么呢?

  首先,女主人公提出的实际上是解决方案,而不是烧土豆这个问题本身。女主人当时执行这个解决方案可能有困难,就把执行解决方案作为一个任务,委托给了男主人。其次,男主人得到了一个任务,尽心尽职地把这个任务完成了。

  最后的结果是什么呢,每个人都做了很多工作,每个人都认为自己做的是对的,因此没有一个人对结果满意。因为真正的问题没有被发现,自然也就没有被解决,那么后续还得收拾残局,还要继续解决问题。事实上自己的工作并没有完成,反而更多了。把原因归结为沟通问题也是可以的,但对于解决问题似乎并没有太多的帮助。因为要改进沟通,这也是一个大问题。搞明白目标问题“是谁的问题,是什么问题”,当然也是需要沟通的。为了帮助自己更快的搞明白,首先要做的事是问正确的问题。架构师应该问的第一个正确的问题就是:目标问题是谁的问题。

  当我们处理问题的时候,如果发现自己正在致力于把自己的工作完成,要马上警惕起来,因为这样下去会演变成没有ownership的工作态度。在面对概念的时候,也会不求甚解,最终会导致没有真正的理解概念。

  在我看来:身为软件工作人员的话,最重要的还是要知道用户其实想要的是什么样的软件,他的浅层次的需求,都需要我们挖掘出来。

根据笔者的总结的话要正确的认识问题,需要问两个问题:

  1. 这是谁的问题?

  2. 有什么问题?

  当得到的回答是支支吾吾的时候,我们就知道正确的方向在哪儿,以及需要做哪些事了。以我的经验,问题1会花比较多的时间,也是支支吾吾最多的地方,因为架构要解决的问题都是人的问题。但是一旦确定了答案,问题2就会变得非常容易。可以这样说,架构师的能力大部分会体现在问题1的识别上。

转载于:https://www.cnblogs.com/liurx/p/11051691.html

阅读架构漫谈(三)笔记相关推荐

  1. 《架构漫谈》阅读笔记

    这个礼拜,我精读了架构漫谈这本书,感觉自己对架构方面的知识有了更为深刻的了解.感觉学习了架构之后,能对自己的学习和实践有更大的帮助.在这个学期众多的结组任务中,我们可以通过架构的知识,来界定小组目标系 ...

  2. 阅读王概凯老师架构漫谈系列总结

    这学期在学软件体系架构的课程,老师推荐了王概凯老师的架构漫谈系列专栏,在阅读专栏之后,对于什么是架构,怎样做好架构,软件架构如何落地,如何写好程序等问题有了较深的理解,在此简单记录一下阅读之后的感想 ...

  3. 架构漫谈(三):如何做好架构之识别问题

    2019独角兽企业重金招聘Python工程师标准>>> 架构漫谈(三):如何做好架构之识别问题 作者: 王概凯  来源: InfoQ  发布时间: 2016-04-17 10:47  ...

  4. 《大型网站技术架构》读书笔记三:大型网站核心架构要素

    来源:http://www.cnblogs.com/edisonchou/p/3806348.html 此篇已收录至<大型网站技术架构>读书笔记系列目录贴,点击访问该目录可获取更多内容. ...

  5. 《架构漫谈》阅读感想

    谈及架构,源于建筑. 一想到建筑,就能想到一块空间,有墙,有门,有窗. 用墙围住的一块密闭的盒子空间,通过门窗与外界保持沟通. 空间内根据住户的生活需求不同,划分为各个房间,有不同的功用. 然后人们对 ...

  6. 《大型网站技术架构》读书笔记四:瞬时响应之网站的高性能架构

    来源:http://www.cnblogs.com/edisonchou/p/3809839.html 此篇已收录至<大型网站技术架构>读书笔记系列目录贴,点击访问该目录可获取更多内容. ...

  7. Web高级征程:《大型网站技术架构》读书笔记系列

    来源:http://www.cnblogs.com/edisonchou/p/3773828.html 一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术 ...

  8. 《如何阅读一本书》读书笔记2

    第一篇 阅读的层次 第一章 阅读的活力与艺术 这是一本为阅读的人,或是想要成为阅读的人而写的书.尤其是想要阅读的人.所谓"阅读的人"(readers),是指那些今天仍然习惯于从书写 ...

  9. 《如何阅读一本书》-读书笔记-reading_note

    <如何阅读一本书>-读书笔记-reading_note 文章目录 <如何阅读一本书>-读书笔记-reading_note 1 书籍信息 2 书评 3 读书笔记 4 精彩书评 1 ...

最新文章

  1. 手把手教你用Python实现自动特征工程
  2. linux 设置与网络同步的时间
  3. 用#ifndef、#define、#endif避免头文件的重定义
  4. python之路——迭代器和生成器
  5. 一个程序员的逗逼瞬间(三)
  6. 在线制作GIF图片项目愿景与范围
  7. Html代码打包后如何修改,html代码打包封装成APP教程
  8. linux如何写一个daemon程序
  9. 计算机无法安装新字体,xp系统电脑安装新字体后无法使用的解决方法
  10. 如何学好3D引擎编程
  11. 我的爷爷(知识渊博的下乡知青)
  12. Android学习笔记-隐藏app图标
  13. 用Acrobat pro DC 自动生成pdf目录——知网硕博论文为例(附带如何下载只有caj的pdf)
  14. svm神经网络葡萄酒matlab,SVM神经网络的数据分类预测-葡萄酒种类识别
  15. 阿里国际站各数据更新时间汇总
  16. Html5 文件上传
  17. linux之shell语言
  18. swiper轮播图切换指示点改变背景颜色
  19. 8个企业微信的功能,你知道几个,喜欢用哪个?
  20. POJ1743——不可重迭的最长重复子串

热门文章

  1. 下载python会对电脑有什么影响-用户在对Python下载的时候,这些注意事项不能忽视...
  2. python项目-30 个惊艳的Python开源项目
  3. python 吧-做为IT人的你 趁年轻学点Python吧
  4. python画图程序有图-python画图程序
  5. python怎么用excel-python怎么操作Excel
  6. python绘制灰度图片直方图-python+opencv 灰度直方图及其二值化
  7. python基础看什么书-2020年入门Python,这7本书一定要看!
  8. 廖雪峰python教程书-Python 爬虫:把廖雪峰的教程转换成 PDF 电子书
  9. python语言入门w-Python算法基础
  10. python3.7.4-Centos7升级Python3.7.4