架構漫談(三):如何做好架構之識別問題
阿新 • • 發佈:2017-06-11
答案 跟著 發生 做了 解決 長時間 一閃而過 開發 問題解決
按照之前架構的定義,做好架構首先需要做的就是識別出需要解決的問題。一般來說,如果把真正的問題找到,那麽問題就已經解決了80%了。這個能力基本上就決定了架構師的水平。
那麽面對問題有哪些困難呢?
我們先看一則笑話。女主人公:老公,把袋子裏的土豆切一半下鍋。結果老公是把袋子裏的每個土豆都削了一半,然後下鍋。 當然很多人會說,這個是溝通問題,然後一笑了之。其實,出現這個現象是由於我們大部分時候過於關註解決問題,急於完成自己的工作,而不關心“真正的問題是什麽”而造成的。當我們去解決一個問題的時候,一定要先把問題搞清楚。這也是我為什麽要單獨寫一篇文章講這個的原因。去看看軟件開發工作者的時間分配也可以看出,大家大部分時間花在討論解決方案和實現的細節上,基本都不會花時間去想“問題是什麽”。或者即使想了一點點,也是一閃而過,憑自己的直覺下判斷。只有真正投入思考問題是什麽的工程師,才可能會真正的成長為架構師 以這個笑話為例,看看在我們處理問題的時候,都會犯什麽樣的錯誤:- 被告知要處理一個問題,但是交過來的實際上是一個解決方案,不是問題本身
- 被告知要處理一個問題,直接通過直覺就有了一個解決方案,馬上考慮解決方案如何落地,或者有幾種解決方案,選哪個合適
那麽如何識別問題呢?
所有的概念基本都有一個很大的問題,就是缺乏主語。而我們大家都心照不宣的忽略這個主語,溝通的時候也都以為大家都懂得對方說的主語是誰,結果大家都一起犯錯誤。識別問題的一個最大的前提就是要搞清楚:是誰的問題。這個搞清楚了,問題的邊界也就跟著確定了,再去討論問題才有意義。 以上面切土豆的例子來分析:- 女主人提出一個問題,要切土豆下鍋煮。
- 男主人有一個問題,女主人交代了自己必須要完成的一個任務。
- 女主人公提出的實際上是解決方案,而不是燒土豆這個問題本身。女主人當時執行這個解決方案可能有困難,就把執行解決方案作為一個任務,委托給了男主人。
- 男主人得到了一個任務,盡心盡職地把這個任務完成了。
- 這是誰的問題?
- 有什麽問題?
架構漫談(三):如何做好架構之識別問題