互聯(lián)網(wǎng)開發(fā)行業(yè)中的敏捷開發(fā)
互聯(lián)網(wǎng)是一個發(fā)展非常快速的行業(yè),軟件的迭代更新非常的頻繁,這就要求開發(fā)人員每時每刻都處于加班狀態(tài),今天的需求也許明天就是更改。要求我們的開發(fā)團(tuán)隊(duì)非常的靈活,甚至公司在組織架構(gòu)上也出現(xiàn)了相應(yīng)的改革,把職能型架構(gòu)改成項(xiàng)目型架構(gòu),以適應(yīng)快速變化的市場需要。
在這種背景下“敏捷開發(fā)”這種弄理念就被提出來了,首先敏捷開發(fā)不是技術(shù)語言,只是一種理念。當(dāng)然其也不是萬能的,不能為了敏捷而敏捷。
敏捷開發(fā),又稱“敏捷軟件開發(fā)”,是一種從1990年代開始逐漸引起廣泛關(guān)注的新型軟件開發(fā)方法,是一種能應(yīng)對快速變化需求的軟件開發(fā)能力。它們的具體名稱、理念、過程、術(shù)語都不盡相同,相對于“非敏捷”,更強(qiáng)調(diào)程序員團(tuán)隊(duì)與業(yè)務(wù)專家之間的緊密協(xié)作、面對面的溝通(認(rèn)為比書面的文檔更有效)、頻繁交付新的軟件版本、緊湊而自我組織型的團(tuán)隊(duì)、能夠很好地適應(yīng)需求變化的代碼編寫和團(tuán)隊(duì)組織方法,也更注重軟件開發(fā)過程中人的作用。
敏捷開發(fā)是一種以人為核心、迭代、循序漸進(jìn)的開發(fā)方法。在敏捷開發(fā)中,軟件項(xiàng)目的構(gòu)建被切分成多個子項(xiàng)目,各個子項(xiàng)目的成果都經(jīng)過測試,具備集成和可運(yùn)行的特征。換言之,就是把一個大項(xiàng)目分為多個相互聯(lián)系,但也可獨(dú)立運(yùn)行的小項(xiàng)目,并分別完成,在此過程中軟件一直處于可使用狀態(tài)。
當(dāng)前,似乎每個公司每個人都在踐行敏捷。這主要?dú)w功于敏捷能夠適應(yīng)變化并整合客戶反饋的特質(zhì)。 現(xiàn)代社會這兩者是非常重要的,因?yàn)榧夹g(shù)在不斷地革新,且人們獲取信息的方式越來越容易——包括公開的客戶反饋。
快速響應(yīng)并將客戶反饋納入產(chǎn)品和流程,要求自組織團(tuán)隊(duì)不斷調(diào)整工作的內(nèi)容以提高效率。團(tuán)隊(duì)可以進(jìn)行定期調(diào)整以滿足每天出現(xiàn)的新需求。在項(xiàng)目規(guī)劃方面,這種波動環(huán)境可能會使事情變得棘手:因?yàn)閹缀醪淮嬖诿鞔_的截止期限和可預(yù)期的交付成果。 正因?yàn)槊艚蓍_發(fā)的這種不斷迭代升級的開發(fā)模式,使得其更加適合當(dāng)今瞬息萬變的互聯(lián)網(wǎng),可以說是互聯(lián)網(wǎng)時代的軟件開發(fā)方式。
在敏捷方法其獨(dú)特之處以外,他和其他的方法也有很多共同之處,比如迭代開發(fā),關(guān)注互動溝通,減少中介過程的無謂資源消耗。通常可以在以下方面衡量敏捷方法的適用性:從產(chǎn)品角度看,敏捷方法適用于需求萌動并且快速改變的情況,如系統(tǒng)有比較高的關(guān)鍵性、可靠性、安全性方面的要求,則可能不完全適合;從組織結(jié)構(gòu)的角度看,組織結(jié)構(gòu)的文化、人員、溝通則決定了敏捷方法是否適用。跟這些相關(guān)聯(lián)的關(guān)鍵成功因素有:
組織文化必須支持談判人員彼此信任,人少但是精干,開發(fā)人員所作決定得到認(rèn)可,環(huán)境設(shè)施滿足成員間快速溝通之需要。最重要的因素恐怕是項(xiàng)目的規(guī)模。規(guī)模增長,面對面的溝通就愈加困難,因此敏捷方法更適用于較小的隊(duì)伍,20、40人或者更少。大規(guī)模的敏捷軟件開發(fā)尚處于積極研究的階段。
另外的問題是項(xiàng)目初期的大量設(shè)想或快速的需求收集可能導(dǎo)致項(xiàng)目走入誤區(qū),特別是客戶對其自身需要毫無概念的情況下。與之類似,人之天性很容易造成某個人成為主導(dǎo)并將項(xiàng)目目標(biāo)和設(shè)計(jì)引入錯誤方向的境況。開發(fā)者經(jīng)常會把不恰當(dāng)?shù)姆桨甘谟杩蛻簦钡阶詈蟪鰡栴}前都能獲得客戶認(rèn)同。雖然理論上快速交互的過程可以限制這些錯誤的發(fā)生,但前提是有效的負(fù)反饋,否則錯誤會迅速膨脹。
在敏捷開發(fā)的團(tuán)隊(duì),最難做到不是產(chǎn)品需求的改變,產(chǎn)品的開發(fā),而是公司里上下一致的目標(biāo)。市場、產(chǎn)品提出了新的想法,到技術(shù)那邊如果沒有形成一致的目標(biāo),很容易出現(xiàn)分歧,最終導(dǎo)致產(chǎn)品方向出錯,或者研發(fā)進(jìn)度拖后。所以在團(tuán)隊(duì)成立之初就需要在團(tuán)里建立一個目標(biāo),讓團(tuán)隊(duì)里所有的人都為這個目標(biāo)而工作。
敏捷口號在業(yè)界已經(jīng)喊了這么多年了,道理該說的差不多大家也都知道了,之所以無法按照敏捷執(zhí)行,在我看來,就是差工具這一步。
工欲善其事必先利其器,希望大家找到最合適自己團(tuán)隊(duì)的工具,推薦使用和大富豪馬云同名的“碼云”,享受敏捷,利用敏捷,做一個快樂幸福的職業(yè)人。