前言:想要寫出一篇引人入勝的文章?我們特意為您整理了敏捷開發模式在軟件工程項目中應用范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:闡述軟件工程項目中的敏捷開發模式,敏捷實踐中的產品定義、開發可持續性、開發效率,從而避免人員流動和業務變動給敏捷管理模式帶來的沖擊。
關鍵詞:軟件工程,可持續性,敏捷開發。
0引言
對于一般的軟件開發企業來說,敏捷開發模式是最佳的選擇。敏捷開發以為盡早交付客戶可以工作的軟件為唯一標準,強調人與人的之間的高效溝通,極力減少不必要的工作,盡早得到反饋,鼓勵每個隊員挑戰自我,為團隊做出更大的貢獻。敏捷開發雖然是軟件企業管理開發的利器,但是有達成高效所必要的前提。敏捷開發模式能迸發出高效生產率的前提是:保持穩定的開發步驟,保持著穩定的開發團隊。團隊之間彼此默契。但是這個前提不是每個企業都具備的。尤其是中小軟件企業。
1研究背景
中小軟件企業的業務不是那么固定,有的企業的業務形態甚至在探索中發展。業務調整的幅度比較大。而相比大企業,談判的決定權相對弱勢。加班、趕工的情形相對較多。很難保持相對穩定的開發步驟。無論利潤率和營業能力也不太穩定,因此造成人員流動相對較大,人員的水平也參差不齊。通常幾個相對的技術骨干帶著一幫新人或半新人完成。這種結構都對敏捷開發模式來說是不利的。
2敏捷模式
要解決這個問題還應該回到敏捷開發最初的本心。敏捷宣言第一句:我們一直在實踐中探尋更好的軟件開發方法。這說明敏捷的目標是選擇軟件開發中最好方法。只要開發方法能提高軟件開發的效率都應認可。不一定固守某一套的經驗,應該以提高效率為目的而根據實際情況不斷的探索和革新。按照這個思路,應該首先承認中小企業現存特點的這些事實。然后再尋找解決之路。所有企圖改變、漠視和忽略中小企業業務現狀,或者努力將中小企業變成大型企業的管理模式的探索都是在“削足適履”,都是對企業嚴重的不負責任。因此,解決問題的思路應該是:(1)盡量與客戶簽訂小規模迭代版本合同。客戶也會降低風險管控力度。即使項目失敗了,也不會給客戶帶來很大風險。這樣會增加中小企業的競爭力度。每個合同版本盡量在1~2個迭代完成。開發時間短,內部人員就相對穩定了。即使有人員離職也可以要求其完成本次項目再離開。(2)通過敏捷團隊裂變的方式擴大團隊。企業在初期創業就建立一個敏捷團隊。因為合同的規模較小,完全有條件在每個迭代內保持業務需求的穩定。通過敏捷開發的運行,進行團隊磨合,逐步提升團隊的默契程度。通過極限編程模式,提高團隊敏捷開發的能力。在開發團隊需要擴張時,把最初的敏捷團隊進行分裂成兩個團隊。再由兩個團隊分裂成四個團隊。在業務收縮時,也可以通過敏捷團隊合并的方式進行收縮團隊。(3)公司管理結構一定是扁平的結構。一個矩陣性的專業部門,加上可以組合的敏捷團隊,兩層管理結構就是最大的管理深度。盡量避免“隱形非正式小團隊“的形成。(4)員工的晉升通過部門定級定檔,員工的績效則通過敏捷團隊的貢獻確定的模式進行。每個員工的晉升和績效影響著員工的積極性和對企業的忠誠度。企業的管理機制一定是能留住單位時間創造價值高的員工,流失掉單位時間創造價值低員工。形成良性生態發展態勢。晉升的評判應該保證總體的客觀公正。如果保持總體客觀公正,要解決兩個大難題。一個是客觀數據統計的偏差。第二個是個體認同客觀的主觀差異。要解決這兩大難題的思路就是:獲得在客觀數據統計的主觀認同,再加上主觀認定的客觀校正。
3軟件工程中的敏捷實踐
(1)小規模合同的產品定義。小規模產品的難點在于提高商業價值的實現。規模小自然商業價值應該不會太高。難以得到客戶的認可。在定義產品時,要首先做統一規劃,并且整體規劃得到客戶的認可。規劃關注客戶每一個關鍵需求。做到把關鍵需求分解為適合的版本進行迭代。在每個迭代版本,同樣需要兼顧提交迭代產品的系統可用性。保證每個迭代版本能讓客戶投入使用。在此前提下,盡量提前交付客戶關鍵需求,以增強客戶合作下去的愿望。(2)開發可持續性的保持。因為客戶的強勢地位,“趕工”的場景幾乎無法避免。那么如果保持團隊開發的可持續性呢,盡可能降低版本的規模。降低強勢“趕工時間”。在團隊管理中,以小時為計時單位。保證強勢“趕工時間”維持在一定的范圍中。然后強行插入一段休息調整時間。加大常規開發的自動化程度。常規業務開發盡量采用低代碼模式。盡量做到只需要做非常規代碼的開發。(3)將所有問題擺在桌面上的氣度。團隊的成員之間的有一定的技術水平差別是一個事實。在開計劃會議時,要尊重每一個人的觀點。尤其高層管理者參加后,不能流露出對進度緩慢的擔憂。當團隊拆分用戶故事的任務時,要提問技術相對較弱的成員,確保其已經清楚掌握該任務的做法,不可草率。計劃會議既擔負著規劃開發任務的責任,同時也擔負著分解和講解需求和設計的責任。只有確保團隊每一個人都清楚任務的分解以及最有效的完成方法,每一個成員都能完成任何一個的任務,計劃會議的使命才算完成。
4敏捷成效
溫和爭論的氛圍形成。敏捷團隊的最好的氛圍是:每個隊員都充分尊重團隊的每一個人,每個人都僅僅是為了提高開發效率這個目標而進行溫和爭論。這就要求每個隊員,尤其是技術好的員工、理解快的員工能夠尊重理解慢的、技術弱的員工。要耐心的為每一個員工解釋清楚,讓他們能貢獻更多的工作。鼓勵每一個提出自己的意見,因為每一個人接觸的項目的視角是不同的,即使不能設計出更好的方法,卻能提供必要的信息。因此,要讓團隊每個人都意識到這一點。每個人充分尊重其他每個人的觀點。盡可能幫助其他人貢獻更高的產出。團隊自我提升的愿望形成。公司開發效率的關鍵在團隊成員間的親密合作和基于緊密分工的卓越設計。因此,提升效率的底層文化邏輯是:團隊成員之間的緊密配合是高效率的前提,每個人都是組織中的一分子。不斷提升自我設計能力以爭取在團隊中發揮更大作用。形成這種文化邏輯的方法是:公司層面應該堅持以敏捷團隊為主體進行激勵。留有足夠的組內民主余地,堅持每個人都可以影響其他人績效分配的權利。保障組內民主氛圍。敏捷團隊的上層管理,不宜介入敏捷團隊的績效分配。
5結語
敏捷開發是軟件開發組織的利器。但是每家公司的業務形態不同,也許還擁有自己獨特的歷史原因。這些因素都會影響著敏捷效率的發揮。這些問題在中小企業中尤為常見。敏捷開發的宗旨應該承認這些問題,然后在這些問題的基礎上尋找最好的管理方法。
作者:王斌 單位:南京師范大學中北學院