讀古今文學網 > 程序員必讀之軟件架構 > 第17章 未來的軟件架構師在哪裡 >

第17章 未來的軟件架構師在哪裡

敏捷和軟件技藝是我們努力改進和推動軟件行業向前的兩個非常好的例子。我們花了很多時間談論編寫代碼、自動化測試、自動化部署、工具、各種技術,以及所有相關的流程。這很有意義,因為最終目標是通過軟件讓人們獲益,而可用的軟件是關鍵。但我們不應該忘記,在軟件開發的流程中某些層面是很少有人真正有經驗的。想想你將如何回答下列問題。

1.你上次寫代碼是什麼時候?

  • 今天早些時候就寫過,我是軟件開發者,所以這是我工作的一部分。

2.你上次重構是什麼時候?

  • 我一直注意讓自己的代碼盡可能好,這包括必要的重構。提取方法、重命名、上升、下降……這些我都知道。

3.你上次測試你的代碼是什麼時候?

  • 過去,我們會在編寫產品代碼的過程當中或之後編寫自動化測試,來進行持續的測試。單元測試、集成測試和驗收測試我們都會用到。

4.你上次設計東西是什麼時候?

  • 我一直在做,作為軟件開發者,這是我工作的一部分。在編碼之前,我需要思考它會如何工作,不管是畫草圖還是使用TDD。

5.你上次從零開始設計一個軟件系統是什麼時候?我的意思是,承接一系列明確的需求,真正從無到有的創建?

  • 好吧,在我目前的項目沒有太多機會,但在業餘時間我會為開源項目工作。只是我自己用的。

6.你上次從零開始設計一個會由一個團隊來實現的軟件系統是什麼時候?

  • 嗯,那不是我做的。

面對現實吧,無論預先設計還是演化設計,也不管是單打獨鬥還是集團作戰,大多數軟件開發者都不會頻繁地在一張白紙上從無到有地設計軟件。