【筆記】軟體工程的人員方面

Time-space發表於2017-10-27

一、軟體工程師的特質

  軟體工程師個人要想展現“非常專業的”行為,應具備其中特質:

  • 個人責任感
  • 敏銳的意識
  • 坦誠的
  • 抗壓能力
  • 高度的公平感
  • 注重細節
  • 務實的

二、軟體工程心理學

  在個人層面,軟體工程心理學注重待解決的問題、解決問題所需的技能以及在模型外層建立的限制內解決問題的動機。在團隊和專案層面,團隊能動性稱為主要的因素。在這一層面,成功是由軟對結構和社會因素決定的。團隊交流、合作和協調同單個團隊成員的基恩那個同等重要。在外部層面,有組織的行為控制著公司的行為及其對商業環境的應對方式。

  • 外聯員
  • 偵查員
  • 守護員
  • 安檢員
  • 協調員

三、軟體團隊

  高校的團隊必須建立目標意識參與意識信任意識進步意識

  五個可能形成有害團隊環境的因素:

  • 混亂的工作氛圍
  • 會造成團隊成員分裂的挫敗
  • 支離破碎或協調不當的軟體過程
  • 對軟體團隊中角色的模糊定義
  • 持續且重複性的失敗

  為避免混亂的工作環境,團隊獲得工作所需的所有資訊。一旦確定了主要目標,不到必要時刻就不要輕易改變。為避免挫敗,軟體團隊應該儘可能地對所做的決定負責。通過了解要完成的產品、完成工作的人員以及允許團隊來選擇的過程模型,可以避免不當的軟體過程。團隊自身要剪力責任機制,在團隊成員出現失誤時中啊處正確的方法。最後,避免陷入失敗氛圍的關鍵是建立以團隊為基礎的反饋和問題解決技巧。

四、團隊結構

  在策劃軟體工程團隊結構時應考慮的專案因素:

(1)需解決問題的難度;
(2)基於程式碼行或功能點的結果程式的“規模”;
(3)團隊成員合作的時間;
(4)問題可模組化的程度;
(5)所建系統的質量和可靠性;
(6)交付日期所要求的嚴格程度;
(7)專案所需的社會化程度。

  四種組織模式:

  • 封閉模式組成的團隊遵循出納同的權力層級模式。這樣的團隊在建立與之前的成果十分相似的軟體時能做得很好,但以封閉模式工作時創新性上相對較弱。
  • 隨機模式組成的團隊是鬆散的,並依靠團隊成員的個人自發性。在需要創新和技術性突破時,這類團隊可以做得很優秀。但是很難完成“有秩序的操作”。
  • 開放模式嘗試組成一種團隊,既具有封閉模式的可控性, 還具有隨機模式團隊的創新性。成員們合作完成工作,並有著豐富的交流和達成共識的決定,這些都是開開放模式談對的特點。開放模式團隊適合解決複雜的問題,但沒有其他團隊的效率高。
  • 同步模式組成的團隊有賴於問題的自然區分,不需要很多的交流就可以將成員組織起來共同解決問題。

五、敏捷團隊

1.通用敏捷團隊

  小型的並充滿動力的專案團隊也可稱為敏捷團隊,他們具備成功軟體專案團隊的很多特徵,並且能夠避免產生問題的很多毒素。敏捷理念強調個人通過團隊合作可以加倍的能力,這好似團隊成功的關鍵因素。
  為了有效利用每個團隊成員的能力,並完成專案工程過程中的高校合作,敏捷團隊都是自組織的

2.XP團隊

  五項價值作為實施所有工作的基礎——溝通、簡單、反饋、勇氣、尊重。

  為使敏捷團隊和其他利益相關者達到有效的溝通(如建立所需的軟體特性和功能),XP強調客戶和開發者之間密切而非正式的合作,構建用作交流媒介的有效的隱喻,以便交流重要概念、獲得持續反饋並避免冗長的文件。
  為了達到簡單,在敏捷團隊在設計時指示考慮當下需要而非長遠需求。其目的是建立簡單的設計,可以容易地用程式碼實現。如果必須要改進設計,以後可以對程式碼進行重構。
  反饋來源於三種途徑:所實現軟體本身、客戶以及其他軟體團隊成員。通過設計和實行有效的測試策略,軟體(通過測試結果)可以為敏捷團隊提供反饋。團隊可以利用單元測試作為其初始測試手段。每個類開發完成後,團隊會根據其特定的功能開發單元測試來不斷完善每個操作。向客戶交付增量時,要用增量所實現的使用者故事或者用例進行驗收測試。

六、社交媒體的影響

  部落格可用來發表一系列短文以描述系統的重要方面,或者用來發錶針對尚處於開發中的軟體特性或功能的看法。
  微博由軟體工程網路成員使用,對關注他們的人發表短訊息。
  在targeted on-line論壇上,參與者可以釋出問題、觀點、案例或任何其他相關資訊。
  網址收藏家為軟體工程師或軟體團隊提供平臺,讓他們可以為有類似想法的個人組成的社交媒體社群推薦網頁資源。
  社交網站使軟體開發者和相關技術人員達到分離化的連線。
  大多數社交媒體都能組織有相似興趣的使用者形成“社群”。
  在軟體工程工作中使用社交媒體時,不能忽視隱私和安全問題。

七、軟體工程中雲的應用

  雲端計算為我們提供了一種機制,以獲取各種軟體工程工作產品、人工製品以及與專案相關的資訊。它在各處都能執行,並能消除很多軟體專案對於裝置依賴的限制;可以讓軟體團隊成員進行獨立於平臺的、低風險的新型軟體工具的實驗,並提供對這些工具的反饋;可以提供新的分配方法和β

\beta
軟體測試;可以提供針對內容和配置管理的更先進的方法。
  雲分佈在多個伺服器,其構造和服務往往不受軟體團隊的控制。雲有很多缺點,且存在可靠性和安全性風險。雲提供的服務越多,相對的軟體開發環境就越複雜。

  雲的優點:軟體開發中任何設計社交或合作的地方都很可能會用到雲。專案管理、進度安排、任務列表、需求和缺陷管理作為核心團隊功能會很好地進行自我調整,其中,溝通對於專案同步以及使團隊所有成員——無論他們在哪裡——處於同一場景非常重要。

八、協作工具

  協作開發環境(CDE):工具墜與團隊成員之間的寫作是很有必要的。它們能夠實現簡易化、自動化以及對整個開發過程的控制。

  有價值的CDE會提供為改善協同工作特別設計的系列服務:

  • 名稱空間使專案團隊可以用加強安全性和保密性的方式儲存工作產品和其他資訊,僅允許有許可權的人訪問。
  • 進度表可以協調會議和其他專案事件。
  • 模版可以使團隊成員在創造工作產品時保持一致的外形和結構。
  • 度量支援可以量化每個成員的貢獻。
  • 交流分析會跟蹤整個團隊的交流並分離出模式,應用於需要解決的問題或狀況。
  • 工件收集可以通過回答以下問題的方式組織工作產品和其他專案製品:“是什麼導致了某個特定的變更?可以跟哪個討論過特定製品的人商討有關變更?成員的個人工作是如何影響他人的工作的?”

  代表性協作開發軟體工具:GForge、OneDesk、Rational Team Concert。

九、全球化團隊

  決策問題因以下四個因素而變得複雜:

  • 問題的複雜性。
  • 與決策相關的不確定性和風險。
  • 結果不確定法則。
  • 對問題的不同看法才是導致不同結論的關鍵。

  對於全球化軟體開發(GSD)團隊,協調、合作和溝通方面的挑戰對決策具有深遠的影響。

相關文章