凌輝」 部落格,出處為
作者一直從事與**開發有關的專案,本文所述的高效快速反應的研發團隊組成元素並非放之四海而皆準,也與**開發專案有關,並且只是理論求證階段,作者尚未有實際的實踐證明,如果有不足或者欠缺之處,請指教。
在三層架構風靡
it界的當今,仍然有不少的公司對三層架構置之不理,具體原因不得而知。下面列出的場景不全面,但是也可以說明冰山一角。
1. 時間緊張,任何乙個專案的客戶都非常著急,公司也可以理解,程式設計師作為服務的最終實現人也比較著急,交付不了產品,客戶不滿意,公司受損失,個人的獎金也有相關的級聯。為了
deadline
2. 技術部組織結構不健全。公司為了節省成本,招聘過多的初級程式設計師,缺少高階職稱的人帶領指導專案的完成。初級程式設計師比較多這個問題基本上不是大的問題,公司在組建之初,都會考慮找乙個信得過、技術比較好的人擔任技術總監,掌控負責軟體產品的技術方面。接到乙個專案後,經過簡單的需求調研,專案經理把專案劃分為子專案按人頭分配任務,要求按期完成任務交給
qa部門就萬事大吉了。
還有更多的場景有待大家共同研究,在
it的專案管理中,組建專案團隊是技術總監或者專案經理必須要做的一件事情。諸多書籍中都講過,組建專案團隊需要考慮專案團隊需要什麼樣的角色,根據角色挑選合適的人才,大多數書籍中也講解了如何面試潛在的團隊成員。其中關鍵的部分,也是每個技術總監或者專案經理都需要思考的問題卻無法一一說明白,即團隊需要什麼樣的角色,如何確定這些角色,這些角色之間存在什麼樣的關係,每個角色最終需要交付什麼樣的產品,以及如何確保交付產品的質量。這個問題在不同的行業,不同的團隊中有不同的答案,沒有統一的答案,因團隊的性質和規模不同而有差異。因此任何一本
it專案管理書籍都不會描述這個問題,因其不可能找到乙個普遍的答案。以下是作者在開發基於
ssh框架的
web應用程式中關於團隊角色的一些思考。
1. 需求調研角色。在中小企業專案應用中,一般在銷售把專案談下來之後,客戶想盡快的看到專案的效果,因此需要盡快的出來乙個原型。客戶對原型確認之後,專案團隊也許會根據這個原型進行繼續開發,或者重新製作,原型可以用原型工具生成。因此,需要乙個需求分析角色對專案的整體需求進行把關和確認。這個角色一般是專案經理或者由專案經理直接指派的隊友,其主要的作用是對客戶的需求進行整理和確認,把客戶的需求用程式設計師可以讀懂的語言描述出來,其提交的內容為使用者需求文件,要求無二義性,準確,並能被程式設計師實現。 2.
美工,美工的作用顯而易見,就是設計漂亮的
ui介面,讓使用者看起來賞心悅目,從感性上能有乙個好的印象,最好能讓使用者感覺這個特別為他設計的介面比別人的好,錢沒有白花,或許能在上級面前邀功。
3. ui
工程師,這個角色的主要任務是根據美工設計的介面製作出靜態網頁,提交的內容為
html
集和一些
js**,由於一些效果的特殊性,因此必須借助於
js來實現。一般的美工設計人員對於程式設計不熟悉,他們的使用
ps等工具切割生成的
html
**也不精簡,或者樣式需要重構等,
ui工程師必須對這些**進行重新整理,並對迴圈的**塊進行注釋,以便於介面開發人員使用。提交的產品應該**簡介,格式明確,方便閱讀。
4. action
工程師,根據業務的需求寫
action
類(兼配置檔案)以控制使用者資料互動,主要依據
ui工程師的結果並呼叫
service
工程師寫的介面。在
action
中不執行業務邏輯,只做一些簡單的介面邏輯判斷和資料封裝。比如把頁面提交的資料封裝為類的例項,或者從會話中取得使用者的狀態。
5. service
工程師,根據業務的需求寫
service
介面和實現(兼配置檔案),供
action
工程師呼叫,
service
的實現依賴於
dao工程師的介面。在
service
層,把action
的呼叫作為乙個業務進行封裝,並返回業務執行的結果,比如,在
action
層呼叫登陸驗證,在
service
層進行驗證,驗證成功後填寫使用者登入日誌。是否填寫使用者登入日誌這樣的業務對於
action
的呼叫者是未知的,
action
只呼叫service
的介面並對返回結果進行判斷。
6. dao
工程師,顧名思義,
dao工程師提供
dao介面和實現(兼配置檔案),供
service
層使用,
dao層只關注的資料的訪問,並返回封裝後的結果。在
dao層不應該包含任何業務邏輯判斷的**。
7. db
工程師,根據業務需求設計滿足業務需求的資料庫定義,並對資料庫進行相應的優化,提交的內容為資料庫定義的
sql語句、相應的說明文件,以及包含測試資料的
sql語句。
8. test
工程師,測試工程師的主要工作是對
action
層,service
層,dao
層,資料庫寫測試**,包括測試類和測試的
sql語句。
9. 綜合管理角色(可以為團隊中的任何人),主要工作為開發環境的搭建,**版本控制,程式設計規範擴充套件,**規範執行檢查,爭端仲裁,進度控制,技術選擇。並隨時準備為團隊中遇到困難的成員解決問題。這個角色很重要,必須能有單獨的乙個人能有足夠的時間解決團隊的問題,並為團隊中的成員提供技術支援等服務,這個角色在某些特定的場景下可以由團隊中的任何人承擔,尤其在技術諮詢方面,部分團隊成員對某乙個特定問題的理解更深刻。 以上
9種角色可以進行合併,在中小軟體公司中,由於資源的限制,不得不合併一些角色。美工可以擔任部分
ui工程師角色,
service
工程師可以同時擔任
dao,db,
test
工程師角色,
action
工程師擔任部分
ui工程師,專案經理擔任綜合管理和需求調研角色。在需求確定的情況下,乙個用例經過充分溝通後,應該產生以下幾種型別的文件:資料庫設計,
dao介面,
service
介面,action
類,ui
資料互動,介面設計,測試**。這些文件需要團隊成員共同討論並確認,以此形成專案任務,作為制定專案計畫的參考。
無論團隊人員有多少,對於乙個好的專案實現來說,研發團隊中應該包含以上角色。這樣做的好處是:團隊成員任務明確,分工精細,責任到位,合作愉快,方便制定計畫。這樣寫出來的程式方便擴充套件和維護,遇到問題時可以快速定位並進行響應,有利於制定**規範,新團隊成員能較快的融入團隊,增強專案的可延續性(部分團隊成員的流動不會對程式的開發造成大的損失,很少出現只有乙個成員了解某些**邏輯的情況)。
good luck
,祝願你所在的團所有成員合作愉快。
高效研發團隊管理的秘訣
在技術快速變化,行業環境激烈變化的當下,要想成為一名成功的管理者,我認為需要處理好以下幾個方面 1 自信 管理者是整個團隊的領導者,這個角色就一定要求你對自己,對團隊要有十分的自信,這種自信一定是發自內心 骨子裡的。你要讓你的下屬從的你一言一行中獲得未來得信心,你也要讓你的合作部門在與你接觸中體會到...
未來酒店 建設高效研發團隊的經驗分享
摘要 在5月29日召開的第二屆研發效能嘉年華中,由浙江未來酒店網路技術 的孫吉君帶來了 未來酒店 建設高效研發團隊的經驗分享 本次分享中他對未來酒店研發規模進行了介紹,對高效團隊的三個特徵 四個能力的培養和團隊建設過程中的四個方法進行了講解。未來酒店 是飛豬 石基和首旅的合資公司,我們的使命是讓天下...
建設高效研發團隊的經驗分享 未來酒店
在5月29日召開的第二屆研發效能嘉年華中,由浙江未來酒店網路技術 的孫吉君 花名 再青 帶來了 未來酒店 建設高效研發團隊的經驗分享 本次分享中他對未來酒店研發規模進行了介紹,對高效團隊的三個特徵 四個能力的培養和團隊建設過程中的四個方法進行了講解。未來酒店研發規模 未來酒店 是飛豬 石基和首旅的合...