軟件工程師的工作不同於程序員但是壹個軟件工程師必定是壹個優秀的程序員。
首先軟件工程師與程序員工作上最大的不同,可以打壹個比喻:把壹款軟件比做壹座大橋,那麽軟件工程師相當於施工總指揮,而壹般的開發人員也就是程序員相當於建築工人,所以很多人就說自己是IT民工就是這麽來的。
想要成為壹名優秀的軟件開發工程師,就必須具備以下能力:
1、需求分析能力
對於軟件工程師而言,理解需求就可以完成合格的代碼,但是對於研發項目的組織和管理者,他們不但要理解客戶需求,更多時候還要自行制定壹些需求。
2、項目設計方法和流程處理能力
軟件開發工程師必須能夠掌握不少於兩到三種的項目設計方法,並能夠根據項目需求和資源搭配來選擇合適的設計方法進行項目的整體設計。
3、復用設計和模塊化分解能力
作為壹個從事模塊任務的軟件開發工程師,他需要對他所面對的特定功能模塊的復用性進行考慮,而作為壹個系統分析人員,他要面對的問題復雜的多,需要對整體系統按照壹種模塊化的分析能力分解為很多可復用的功能模塊和函數,並針對每壹模塊形成壹個獨立的設計需求。
4、整體項目評估能力
作為系統設計人員,必須能夠從全局出發,對項目又整體的清醒認識,比如公司的資源配置是否合理和到位,比如工程進度安排是否能最大化體現效率又不至於無法按期完成。
5、團隊組織管理能力
(1)工作的量化
沒有量化就很難做到合適的績效考核,而程序量化又不是簡單的代碼行數可以計算的,因此要求技術管理人員需要能真正評估壹個模塊的復雜性和工作量。
(2)對團隊協作模式的調整
壹個優秀的軟件開發工程師應該能夠根據程序員之間的能力水平差距,以及根據項目研發的需求,選擇合適的組隊方式,並能將責權和成員的工作任務緊密結合,這樣才能最大發揮組隊的效率。