1.1軟件=程序+軟件工程
~軟件開發的不同階段
1)玩具階段
2)業餘愛好階段
3)探索階段
4)成熟產業階段
5.1團隊與非團隊
團隊共同的特點:1)團隊有一致的集體目標,團隊要一起完成這個目標
2)一個團隊的成員不一定要同時工作
3)團隊成員有自己的分工,互相依賴合作,共同完成任務
5.2軟件團隊的模式
1)蜂窩模式:一堆人球在哪裏人就在那裏。
2)主治醫師模式:一個學生幹活,其他人跟着打醬油
3)明星模式:明星的光芒蓋過了其他人的總和
4)社區模式:每個人參與自己感興趣的項目,貢獻力量,大部分人不拿報酬
5)業餘劇團模式:個人在團隊中聽從一箇中央的指導和安排
6)祕密團隊:一些軟件項目在祕密狀態下進行,別人不知道他們具體在做什麼
7)特工團隊:有一些有特殊技能的人蔘與模式
8)交響樂團模式:傢伙多門類齊全,各司其職。演奏靠譜,練習多
9)爵士樂模式:另外一種演奏模式
10)官僚模式:脫胎於大機構的組織架構
5.3 開發流程
1)寫了再改模式:與蜂窩團隊模式非常像
2)團隊模式功能:具備不同能力的同事們平等的協作,共同完成一個功能
3)瀑布模型:溫斯頓並不推崇嚴格意義上的瀑布模型的各種缺陷,並提出了一些改進的方法
17章
17.2其實還是人的問題
我們建立第一個科學的時候,我遇到了很大的困難,這些困難不是來自政治界的,而是來自學術界本身,來自學術界某些權威,有位權威就是不同意給我立體和資助。
~瀑布模型有適用的範圍嗎?
1)如果產品的定義非常穩定,但是產品的正確性非常重要,需要進一步驗證
2)產品模塊之間的接口,輸入輸出能很好的用形式化的方法定義和驗證
3)使用的技術非常成熟,團隊成員都很熟悉這些技術
4)負責個步驟的子團隊分屬不同的機構,或不同的地理位置,不可能做到頻繁的交流
17.3 績效管理
比資歷?大鍋飯?比效率?背靠背評比?比不犯錯誤?如何區別對待?
隊員評估這一機制,得出以下4個值:
1)技術等級或技術能力
2)勞動生產力或結果
3)對團隊的貢獻
4)對產品的貢獻
~如何區別對待?
按照完成任務維度。團隊貢獻的維度
17.5 團隊合作的幾個階段
1)萌芽階段:一個人的角色和職責還不清楚,大家都很有禮貌,成員也在琢磨任務到底有多大,每個人忙着適應,開始各種討論。
2)磨合階段:追求最大和諧,投票,諮詢,獨裁,交換決定權
3)規範階段:團隊公開的討論流程和工作方式。一些不成文的規則建立起來。團隊定下來更現實的目標。在工作中互相支持,意識到並尊重各人的個性。
4)創造階段:團隊知道爲何而戰,並將注意力集中到如何創造,實現目標上,高度自治,沒有人爲此擔心或發牢騷。
17.6軟件工程的職業道德
原則1.公衆 原則2。客戶與僱主 原則3.產品 原則4 判斷 原則5 管理 原則6 職業 原則7 同事 原則8 自身
探討:理想團隊模式的構建,需要每個人犧牲小我成全大我的精神,要在最短的時間內磨合個性,瞭解自己與他人,發揮每個人最大的優點,不能盲目自大,更不能過分自卑
團隊協助,最重要的是學會尊重他人,尊重他人的勞動成果,尊重他人的學習成果,學會傾聽,學會理解與包容。
軟件流程見17章總結中