You are not Google

作者指出軟體工程師常會因業界大頭(例如: Google) 或論壇熱門討論的技術,一頭熱的想導入自己的系統架構中,而忽略的是否真的需要這樣的技術以及真正的問題。 作者亦提出了 UNPHAT 的自我審視方式,來檢驗是否真的要導入一項技術。

  • Don’t even start considering solutions until you Understa the problem. Your goal should be to “solve” the problem mostly within the problem domain, not the solution domain.
  • eNumerate multiple candidate solutions. Don’t just start prodding at your favorite!
  • Consider a candidate solution, then read the Paper if there is one.
  • Determine the Historical context in which the candidate solution was designed or developed.
  • Weigh Advantages against disadvantages. Determine what was de-prioritized to achieve what was prioritized.
  • Think! Soberly and humbly ponder how well this solution fits your problem. What fact would need to be different for you to change your mind? For instance, how much smaller would the data need to be before you’d elect not to use Hadoop?

覺得概念如同 Donald Ervin Knuth 說過的 premature optimization is the root of all evil (or at least most of it) in programming (過早的最佳化是種罪惡),先把焦點放在要解決的問題,而不是解決問題的方法。

否决你方案的领导并不傻!小心让优越感毁掉你的职业生涯

所謂「文人相輕,武人相重」,工程師這類文人在職場上的確多少會有意見被否決或各執一詞的時候。在溝通當下該如何理性的看待事情,而不被情緒影響,我想是需要學習的一門課題。 這篇文章就以作者自身的體驗來講述成因以及如何解決。

簡單講就是 態度謙遜! 把目標放在問題本身,而非自我或溝通過程。何況「三人行必有我師焉」,每個人的成長、學習、生活方式都不同,多多少少都有可以跟他人學習的地方。共勉之!