什么是“高級軟件工程師“,這個職位到底該做些什么,相信大家都有答案。在目前很多國內軟件企業中,如果你是”高級軟件工程師“,那么從需求分析,設計,開發,測試,甚至到客戶這一條龍都可能由一個人來負責。那么這個職位到底該做些什么呢?下面是我的認識。
1,軟件開發與測試
首先,軟件開發是軟件工程師職責的基本組成部分,這點應該沒有問題。其次,此處的軟件測試可分為開發前的驅動測試,和開發過程中的白盒測試。驅動測試用于分析子系統/模塊內部邏輯,用于在開發之前暴露開發過程中可能遇到的大部分問題和對子系統/模塊進行更進一步的劃分;白盒測試是保證在項目交接到測試團隊手中時,能滿足基本的項目要求,即能夠進行α測試。另外,驅動測試因團隊而異,并非必須,但個人更推薦這么做。
2,子系統/模塊分析設計
在軟件架構師做完系統設計,項目經理進行項目分工后,項目就正式進入開發環節。這時候每個軟件工程師會拿到自己負責的子系統/模塊,首先要做的就是進行分析設計,其次才是開發。開發前進行分析設計,便于從整體上對子系統進行把握,提前隔子系統中的變化點和問題,同時也可以對子系統進行更詳細的劃分,用于制定個人的工作計劃,與項目經理和軟件架構師進行具體的溝通。
在這點上,要及早認識到并不是只有架構師才需要進行軟件設計的,軟件工程師一樣需要,且是必備技能。相信有很多人拿到自己的任務時只是跟項目經理進行簡單的溝通,知道自己要做什么,就開始悶頭寫代碼了,這是非常不可取的。
3,撰寫文檔
在進行子系統和模塊設計的同時,要撰寫子系統設計說明書;在開發過程中,要記錄技術要點和發現的問題,同時如有需要,要修改子系統設計說明書;在白盒測試時,要記錄每個Bug。以上這些文檔是為了方便以后進行項目維護,工作交接,問題分析,個人總結等等。
4,定期主動溝通
在項目開發過程中,項目經理需要和團隊中的每一個人溝通任務進度,其主要職責是從整體上把握和控制項目的進度。那么作為團隊一員的高級軟件工程師通常會負責項目中很重要的子系統/模塊,這些子系統/模塊往往能決定項目的成敗。因此定期主動與項目經理溝通解決遇到問題,與架構師和專家溝通解決技術難題就顯得非常重要了。另外,就對個人而言,定期主動溝通也往往表現為個人的主動積極性,對于個人長遠發展非常有益。
5,持續學習
也許有人會覺得學習應該與職責無關,狹義看來確實如此。然而,不斷學習新知識,提高個人技能,于公司而言,能提升工作效率;于個人而言,益于職業發展。因此,工作之余,不管你職位如何,持續學習就顯得非常重要且必要。
6,帶新人
這點也許不是硬性要求,然而據說國外有高手帶領新手這樣一種師徒習慣,我們也應該學習并發揚。通常情況下新人會與高級軟件工程師協同工作,因此帶新人一方面,帶領新人可以有重新審視自己知識的機會;另一方面能夠讓新人更快入手,降低學習成本和提高工作效率;同時也能保持良好的人際關系。
以上是個人對高級軟件工程師職責范圍的認識,也許有些比較牽強,然而就對職業發展而言,要想做好高級軟件工程師,上面幾條是平時工作中必須要做的。
-
軟件工程師
+關注
關注
8文章
218瀏覽量
21138
發布評論請先 登錄
相關推薦
評論