官术网_书友最值得收藏!

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

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

(1) 你上次寫代碼是什么時候?

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

(2) 你上次重構是什么時候?

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

(3) 你上次測試你的代碼是什么時候?

? 過去,我們會在編寫產(chǎn)品代碼的過程當中或之后編寫自動化測試,來進行持續(xù)的測試。單元測試、集成測試和驗收測試我們都會用到。

(4) 你上次設計東西是什么時候?

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

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

? 好吧,在我目前的項目沒有太多機會,但在業(yè)余時間我會為開源項目工作。只是我自己用的。

(6) 你上次從零開始設計一個會由一個團隊來實現(xiàn)的軟件系統(tǒng)是什么時候?

? 嗯,那不是我做的。

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

指導、輔導和師徒關系

在大多數(shù)軟件開發(fā)項目中,指導和輔導是一項被忽視的活動,很多團隊成員沒有得到所需的支持。技術領導力就是要引導整個項目,有時候個人需要協(xié)助。除此之外,指導和輔導提供了一種方式來增強人們的技能,幫助他們完善自己的職業(yè)生涯。這種協(xié)助有時候是技術性的,有時候是軟技能。從技術的角度來看,為什么承擔軟件架構角色的人不應該幫著指導和輔導呢?我認識的大多數(shù)架構師正是因為他們在一個或多個技術領域有大量的經(jīng)驗才當上架構師的。既然是這樣,為什么那些架構師不應該通過分享一些自己的經(jīng)驗來幫助別人?學徒模式正是過去建造大師傳承技藝的方式。

我們正在失去技術導師

可悲的是,在我們的行業(yè)里許多開發(fā)者為了在企業(yè)晉升機制中有所發(fā)展,被迫轉(zhuǎn)向非技術的管理崗位。諷刺的是,被迫離開技術崗位的往往是最優(yōu)秀和最資深的技術人員,而軟件團隊中則失去了最有價值的技術領導、架構師和導師。今天的開發(fā)者還會在將來繼續(xù)重蹈覆轍。

軟件團隊需要休息

許多團隊失去了最資深的技術人員,留在團隊中的人本來就已經(jīng)在盡力平衡所有常規(guī)的項目限制和IT行業(yè)風潮(敏捷、技藝、云、富互聯(lián)網(wǎng)UI、函數(shù)式編程,等等)帶來的壓力,而這又給他們增加了更多的工作量。很多團隊意識到他們應該努力提高,但卻沒有時間或缺乏動力。

為了提高,軟件開發(fā)團隊需要一些時間遠離日常工作,進行思考,但他們也需要保持對軟件開發(fā)流程各個方面的關注。行業(yè)的炒作確實很容易迷惑人,但應該自問這是否比確保能良好務實地落地更重要。

編碼經(jīng)驗很容易積累,有很多方式來練習這項技能。然而,從頭開始設計一些將會由團隊來實現(xiàn)的東西,就不是很多團隊都會教授或?qū)嵺`的事情了。拜典型的企業(yè)晉升機制所賜,很多技術導師都消失了,讓開發(fā)者上哪兒去獲得這種經(jīng)驗?未來的軟件架構師從哪里來?

主站蜘蛛池模板: 邵武市| 壤塘县| 祁门县| 扬中市| 全州县| 藁城市| 淄博市| 栾川县| 田林县| 长白| 安国市| 沙湾县| 陕西省| 贵德县| 合江县| 海淀区| 新干县| 威远县| 平舆县| 宁武县| 亚东县| 沙田区| 太仓市| 五台县| 怀集县| 固始县| 三台县| 顺昌县| 洛川县| 景德镇市| 林口县| 晋宁县| 霍城县| 德惠市| 叶城县| 来安县| 浦江县| 贵州省| 兰溪市| 新蔡县| 霍城县|