有機性整體:開發團隊

海微發表於2012-09-05

日有日的榮光,月有月的榮光,星有星的榮光;這星和那星的榮光也有分別。 《哥林多前書》 15:41

教堂裡的“團隊”之間,成員之間很少有利益的關係,並且因著有著共同的宗教信仰,和信仰帶給他們的力量,富有良好的團隊的內在凝聚力,並展現出外在的和睦、溫馨、喜樂的魅力。教堂外的團隊就不太一樣了。 國學大師翟鴻燊說現在很多的公司所謂的團隊根本不像是團隊,更像個團伙。公司裡的團隊,就是幾個來自天南地北的不同的人,在做一件共同的事。當團隊裡沒了凝聚力,內部成員缺乏一致的方向,有了各自的不同的想法時,這樣的團隊確實有些像一個“團伙”。優秀的團隊並不多見,也許某一天,我們就會進入這麼一個不像團隊的團隊,要在這樣的團隊工作時。那時,我們個人可能難以有足夠的智慧和能量來改變這樣的現實,那麼,我們能做的恐怕只有身在其位,謀好其職,做好分內的工作。至少在這自己的這個職位上儘可能的出現差錯。其實,反過來,如果團隊裡的每一個成員,都能在其位,謀好其職,把事情做好了,團隊的作用發揮出來了,那樣這樣的團隊仍可算是團隊。

程式語言翻譯

    如果說商場如戰場,那麼開發團隊就像是戰場的軍隊。專案經理就像這支軍隊的統帥,很大程度上決定著整個戰役的成與改。<<孫子兵法>>在開篇<<始計>>中有相關論述。

孫子曰: 兵者,國之大事,死生之地,存亡之道,不可不察也。故經之以五事,校之以計,而索其情:一曰道,二曰天,三曰地,四曰將,五 曰法。道者,令民於上同意,可與之死,可與之生,而不危也;天者,陰陽、寒暑、時制也;地者,遠近、險易、廣狹、死生也;將者,智、信、仁、勇、嚴也;法者,曲制、官道、主用也。凡此五者,將莫不聞,知之者勝,不知之者不勝。 “一曰道,二曰天,三曰地,四曰將,五曰法。”首先就是道,接下來就是將。專案管理就是開發團人的“將”。“將者,智、信、仁、勇、嚴也”。程式設計師開發是跟電腦打交道,會程式設計,那隻能是技能。專案經理跟手下幹活的人,跟客戶、跟上級領導打交道,跟人打交道,更注重的是智慧。專案經理分配任務時,不僅要考慮任務本身的難度、工作週期等,還能考慮手下的人的技能水平,工作狀態,甚至性格是否穩重、是否責任心重等。跟客戶溝通時,專案經理又得站在客戶的角度,換位思考,察覺客戶的需求,又得回到公司的立場,維護公司的利益。通俗的講,專案經理,作為一個管理員,勞心。

程式碼清單1:Manager類原始碼

package team; /** * 專案管理人員 */ public class Manager {

/**
 * 分配任務
 */
public void distributeTask(){

}

/**
 * 監督專案進度
 */
public void superviseProgress(){

}

/**
 * 向上級,或客戶報告事項
 */
public void report(){

}

}

相對專案經理來說,程式設計師就沒有那麼勞心,工作比較單純,做好設計,寫好程式即可。不過,這也不是件很簡單的事。計算機畢竟是計算機,沒一點智慧,任何一點細微的錯誤都可能出現問題,因此實際開發中,千其百怪的問題都可能出現,但最後費盡周折查出來時,往往又是一些小小的錯誤導致。再說,客戶的需求,像空中的風,程式設計師聽著風的響聲,卻不曉得從哪裡來,往哪裡去,不熟悉業務又抓不住原則,就跟在客戶後面瞎轉。

程式碼清單2:Developer類原始碼

package team; /** * 開發人員 */ public class Developer {

/**
 * 編碼
 */
public void coding(){

}

/**
 * 設計
 */
public void design(){

}

}

“風隨著意思吹,你聽見風的響聲,卻不曉得從哪裡來,往哪裡去;凡從聖靈生的,也是如此。” (《約翰福音》 3:8)。客戶的需求就像這風一樣,千變萬化,很多時候客戶也不知道自己的需求在哪。這個時候,就需要需求分析員在後面“追風”、“捕風”了。需求分析員,在亂風中靜下來仔細分析,把從客戶那捕下來的需求之“風”,定進文字,列印成鉛字,落實下來,再讓客戶簽字。有了客戶的簽字,風向轉換的風險,就由客戶自己承擔了。

程式碼清單3:Analyzer類原始碼

package team; /** * 需求分析人員 */ public class Analyzer {

/**
 * 分析需求
 */
public void analyzRequirement(){

}

/**
 * 寫需求文件
 */
public  void writeRequireDocument(){

}

}

兵招來了,並不能馬上拉上戰場,得先進行訓練。同樣的,程式設計師的程式碼寫好了,並不能馬上交給客戶驗收測試,得先進行內部驗證。這就到了程式設計師幹活的時候了。士兵要想在戰場上少受傷、少流血,就必須得在平時加強訓練。同樣的道理,要想在產品在交給客戶時,儘可能的減少、避免問題的出現,就必須得做好內部測試。

程式碼清單4:Tester類原始碼

package team; /** * 測試人員 */ public class Tester {

/**
 * 測試
 */
public void test(){

}

/**
 * 寫測試報告
 */
public void writeTestReport(){

}

/**
 *撰寫系統操作手冊
 */
public void writeInstructionBook(){

}

}

“將”有了,“兵”也有了,就可以組成一支軍隊,可以上戰場參加戰鬥了。 專案經理在頭面領著,後面跟著開發人員、需求分析人員、測試人員。他們可能來自不同的地方,工作職責也不一樣,但在一起工作的時候,目的就是為了最好的一個專案。

程式碼清單5:Team類原始碼

package team; /** * 開發團隊 */ public class Team {

//專案管理人員
Manager manager;

//開發人員
Developer developer; 

//需求分析人員
Analyzer analyzer;

//測試人中
Tester tester;

/**
 * 團隊人員協同工作完成專案
 * (整個專案開發過程也是有個有序的、有機的過程)
 */
public void run(){
    //1、接到專案,需要分析人員分析需求
    analyzer.analyzRequirement();

    //2、需要分析人員根據分析的需求,撰寫需求文件
    analyzer.writeRequireDocument();

    //3、專案管理分配任務
    manager.distributeTask();

    //4、開發人員根據需求文件進行設計
    developer.design();

    //5、開發人員根據設計編寫程式碼
    developer.coding();

    //6、測試人員在開發人員開發的應用上進行測試。
    tester.test();

    //7、測試人員撰寫測試文件
    tester.writeTestReport();

    //8、測試人員撰寫系統操作手冊
    tester.writeInstructionBook();
}

}


enter image description here

斷章 卞之琳 你站在橋上看風景, 看風景人在樓上看你。

明月裝飾了你的窗子, 你裝飾了別人的夢。

相關文章