[周年感悟]看軟件項目中的四種角色


    工作一年了,這一年沒像大學那樣拼命的發帖,拼命的寫博客。然而畢竟是過了一年了,便以此文紀念我逝去的2011年吧!

    2011年3月份到公司實習,實習到5月,然后回學校做畢業設計,7月份正式入職。若是從實習算起,也應該是滿一年了。這一年里經歷了四個項目,我都是以開發者身份進行着工作的。

    然而,前三個項目中,我一直有種“身在此山中”的模糊感覺。第四個新項目來了,領導給安排了一個Subleader讓我做。我也覺得是時候讓自己提升一個境界了,然而,項目開始了將近一個月,我這個SubLeader做的並不好,至少我自己是這么認為的,或許是慣性,在項目的啟動過程中,我並沒有意識到我的職責是什么,還是一頭悶進去解析代碼,組里剛招的新人讓我帶,因為是新項目,比較特殊,我也沒花多大精力去制定所謂的教育計划。

    還記得那是周五的晚上,我拿着羽毛球拍出去打球,Leader還在那加班弄表格模板。當我要走的那一刻,我突然意識到我這Subleader做的不夠格,做為Subleader如果工作做的好,Leader怎么會一個人加班呢?為此,特地向大項目經理和課長請教了一下,大項目經理發了封郵件,說的都很實在,貼近現在的工作實況。課長則特地找了個會議室“培訓”我,我也因此對軟件項目中的幾種角色有了一定程度的了解,本文就把我吸收到的在這里分享一下,以此紀念一下我的2011!

    對於一個軟件項目來說,按照所處層次的不同,可以分為四類角色:Leader、Subleader、中堅、開發人員。下面分別介紹這四種角色。

Leader:

    也就是我們所熟知的項目經理,項目經理按照職能的不同,可以分為過程經理、業務經理、技術經理和品質經理。

    過程經理    軟件項目是智力型工程,項目規模大部分不大,即使很大,也會拆解成小項目,以降低風險。於是在常規的軟件項目中,最常見的Leader主要指過程經理,負責控制整個項目的過程。何謂過程呢?比如,對於軟件項目A,從1月份開始,7月份結束。那么過程經理的工作就是划分軟件工程里面的定義的幾個過程,並且能夠保證比如:1月份完成FD,2月份完成SD,3月份完成DD。。。。最后必須在7月完成整個項目。然而計划的制定非常困難,如果沒有豐富的經驗,是無法准確的預測各個工程階段的周期的。差的過程可能會導致前期悠閑,后期天天加班,或者前期天天加班,后期沒事干。總之,過程經理的制定計划的能力關系到軟件項目的“戰略”。

    業務經理    我的經驗還不夠豐富,我所見的項目,業務經理的影子被過程經理攬下來了。所以,我只能憑着猜測來理解業務經理的職能了。按照我的理解:1. 業務經理最好是有行業內經驗的人。比如對於銀行交易、證券交易系統軟件項目,那么業務經理最好由銀行,證券行業的從業人員來擔任,或者從事過類似開發的人擔任。2. 業務經理除了對行業有很熟悉的了解之外,還要會對業務進行建模,一個好的模型會使得開發人員對業務的理解更加透徹,開發出現的問題就越少。3. 業務經理有預知業務變更的能力,某種意義上來講,業務經理可以在最大程度上解決“需求變更”這一難題,不過這需要業務經理對業務十分熟悉。總之,業務經理的需求分析及建模能力關系到軟件項目的“部署”。

    技術經理    小規模的軟件項目來說,技術經理做的工作與普通開發人員做的工作很類似,技術經理平時也會跟着一起構建開發環境、解析源碼等。但是,技術經理並不只是這樣,技術經理是能夠在無形或有形中推動加快整個項目技術進度的人。技術經理一般走在開發人員的前頭,可以為開發人員提供技術援助。當項目進入常規開發時,往往沒有了所謂的技術難題,簡單的復制改模式下,技術經理一般會開始優化開發,比如編譯優化、性能優化、框架優化等。總之,技術經理的技術實力關系到軟件項目的“軍事力量”。

    品質經理    我覺得,嚴格來講,品質經理不是我們常說的測試組的經理,畢竟品質貫穿着整個軟件項目開發,而測試只能從結果來反映產品質量。所以,我認為,品質經理應該是從軟件項目開始就死盯着項目開發的那個角色,無論是設計質量、代碼質量、文檔質量、業務質量,都需要品質經理的嚴格把控。然而,那樣畢竟會造成很大的麻煩,所以,一般來說,目前的軟件項目的品質經理都由測試組的經理充當。不過,我所在的第三個項目組,不是像這樣有專門的品質經理控制項目品質的,其管理控制產品品質的手段讓我也覺得奇怪,是依照瀑布模型,從SD到各種測試都是有開發擔當完成的,當然,還有一些測試不是由開發人員完成的。總之,品質經理犀利的監控技術及測試技術關系到軟件項目的“成敗”。


Subleader:

    或許我應該對Subleader做一篇更長的介紹文章,畢竟我目前是作為Subleader的角色存在,但同時我也是身在其中,所謂“當局者迷,旁觀者清”,我的理解可能會有些偏差,看客莫要見笑。我所理解的Subleader主要有以下四點職能:

    1. 更加合理分配任務。這里要跟leader做一下對比,leader要對整個項目組的所有人員進行管理,然而當人數比較多的時候,leader是無法一一為每個開發人員分配任務的,所以可能導致某些人工作任務重,有些人反而很輕。這時候就需要一個對某幾個開發人員比較熟悉的人來分配任務,這樣每次匯報任務的時候,Leader只需要找Subleader就可以獲悉所有開發人員的工作狀況,而不需要去找每個開發人員去確認工作內容及進度。

    2. 臨時Leader,平穩過渡。當Leader不在項目組的時候,Subleader就應該接手Leader的工作,並且能很順利的接手。這就需要Subleader平時對項目進度及狀況有所關注,對項目整體有一個全局的把握。Subleader應該每天對項目中的任務安排有一個私人的記錄本,對項目開發過程中遇到的課題也要進行一份個人的整理,並時刻關注這每個課題的解決進度及解決方法。

    3. 查漏補缺,趨近完美。“金無足赤,人無完人”,無論是做計划、任務分配,還是課題跟蹤。Leader總會有所遺漏或者理解不夠充分的。所以這時,Subleader最好能想到Leader遺漏的地方,並向leader提出,共同商討解決方案。這需要Subleader有一雙犀利的眼睛,同時也考驗Subleader的溝通技巧。人都是愛面子的,這是人性,不是誰的錯,當你找到Leader的錯誤的時候,如果沒有好的溝通技巧,那么提出的問題或許只能當作一場沒有結果的架給吵過去了。

    4. Next Me。為了項目組着想,對於Subleader,要開始注意培養Next Me。這樣,即使你離開項目組,項目組也不會有太大的風險。對於普通開發人員的離去,項目的風險很小,但是對於中堅力量,一旦離去,項目的風險將會很高。同時,也要記得,Next Me會成為你的得力助手,左膀右臂。

    總之,Subleader的工作可以概括為九個字:帶新人,看進度,提建議。


中堅:

    中堅力量是軟件開發的核心力量,一般具有一定的技術能力。他們有經驗,有實力,能夠承擔模塊的開發。一般來說,是具有1年工作經驗的員工。在工作層次上,中堅與Subleader的界限是很模糊的,我所總結的,作為中堅人員應該有以下三個職能。

    1. 帶新人。這點毋庸置疑,要學會帶人,把自己學到的教出去。同時在這個過程中,要學會做計划。“因材施教”是很難做到的,而對新人教育計划的制定能夠在很大程度上鍛煉的規划能力以及識人用人能力。

    2. 技術攻堅。對於中堅來說,普通的開發任務已經不能滿足需求,中堅應該對系統框架發起挑戰,對系統改善發起進攻。當然,這些都是基礎,為后來的發展積累經驗。

    3. 及時反饋。中堅對模塊的開發規模已經有了一定的把控能力,這時候,如果發現分配的時間不合理,或者分配的人員不合理,應該及時向Leader提出。


開發人員:

    普通開發人員,用我的領導的話就是“被動人”,是完全依照計划做工作的角色,當然原因是多樣的,對於新人,不知該如何工作,只能按照上面的計划進行工作。當然也有一群人意識不行,不知道給自己找事干,於是一直處於被動狀態。處於這個狀態時一定要努力讓自己盡快擺脫這個狀態,不要以完成任務為目標,這樣才能朝着更高更遠的方向發展。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM