溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

探討敏捷開發(fā)在軟件開發(fā)中的應(yīng)用

發(fā)布時間:2020-08-10 20:59:35 來源:ITPUB博客 閱讀:122 作者:cornerstone 欄目:關(guān)系型數(shù)據(jù)庫

在軟件工程領(lǐng)域,有過很多軟件開發(fā)模型,如瀑布模型、快速原型模型、增量模型、螺旋模型、演化模型、噴泉模型、 RAD 模型、敏捷軟件開發(fā)模型、 XP 極端模型。這么多的模型各有各的應(yīng)用場景、各有各的適用范圍,但我認為最實用開發(fā)模型還是敏捷軟件開發(fā)。

中國式軟件開發(fā)思路是什么樣的呢?從我接觸過的大多軟件項目來看,基本都有一個共同特點——就是必須快,客戶都是急脾氣,恨不得今天立項,明天就要你拿出產(chǎn)品來。

面對公司和客戶如此快節(jié)奏的要求,我們有辦法嗎?人們從生產(chǎn)、生活中總結(jié)出來一套即高效又優(yōu)質(zhì)的開發(fā)模式——敏捷軟件開發(fā)。

什么是敏捷軟件開發(fā)呢?

敏捷開發(fā)是以用戶的需求進化為核心,采用迭代、循序漸進的方法進行軟件開發(fā)。在敏捷開發(fā)中,軟件項目在構(gòu)建初期被切分成多個子項目,各個子項目的成果都經(jīng)過測試,具備可視、可集成和可運行的特征。換言之,就是把一個大項目分為多個相互聯(lián)系、而又可以獨立運行的小項目,并分別完成,從而實現(xiàn)快速開發(fā)的目的。

還是具體來說下敏捷開發(fā)是如何實現(xiàn)的?

1、 將大的系統(tǒng)拆分成子項目。

  以前我們接受過的思想是立項后先要需求調(diào)研、分析,調(diào)研后出各種調(diào)研報告及需求說明書,需求搞定后,再進行概要設(shè)計( UE 設(shè)計、 UI 設(shè)計、交互設(shè)計、數(shù)據(jù)庫設(shè)計、框架設(shè)計),概要設(shè)計完成后再進行詳細設(shè)計……這樣一個周期下來,耗費太長,當進度進入下一階段,當上一階段有問題時,會影響到整個項目流程的各個階段。

  而敏捷方法是會將大的系統(tǒng)拆分成一個個子項目,再把子系統(tǒng)拆分成子模塊,盡量減少模塊間的耦合性、增加其內(nèi)聚性,這樣我們可以把團隊分成多個小組,各組可以同時作業(yè)。另外,當一個模塊需求發(fā)生變化時,對其它模塊的影響也不會太大,以實現(xiàn)降低開發(fā)難度的目的。

  在之前提到的房產(chǎn)信息網(wǎng)平臺建設(shè)中,我們就將系統(tǒng)拆分成自行成交、經(jīng)紀成交、用戶權(quán)限管理、建委等外部接口、大宗資產(chǎn)、交易管理、平臺后臺管理、網(wǎng)站前端等模塊分別進行需求討論,需求討論后再將各模塊拆分成各個對象,對象與對象間只是通過公有變量傳遞信息,盡量減少與外部對象間產(chǎn)生關(guān)系。

總結(jié):化整為零個個擊破

2、 團隊與客戶呆在一起

為了降低溝通成本,我們團隊所有人員直接開到客戶現(xiàn)場,隨時與客戶溝通,通過面對面的溝通,減少了理解偏差。在項目的各個階段,我們一直與客戶保持零距離接觸,隨時交流、溝通。通過這種辦法,可以第一時間獲取需求、第一時間解決問題,減少出錯的可能性,提高開發(fā)效率,保證開發(fā)質(zhì)量。而且,通過這種方式會更容易取得客戶信任,客戶能夠隨時了解到項目的工作狀態(tài)、工作進度。當相互間具備了信任關(guān)系后,余下的工作也會變得輕松、愉快。

在房產(chǎn)項目里,我們在客戶現(xiàn)場辦公,定期開會討論需求和設(shè)計,當有一些小的不確定問題,團隊成員會直接找到客戶相關(guān)人確認。在整個項目周期中沒有發(fā)生過大的需求變化。

總結(jié):與客戶面對面的交流,降低交流成本,促進相互信任。

3、 用建模方式溝通

  利用模型與客戶溝通,用模型來獲取用戶需求,而不是通過大量的文檔,編寫文檔費時費力,而且效果不好。實際,對于我們大多數(shù)人來說并不喜歡花大量時間看各種文字和參數(shù),而模型則會更直觀和立體。這里我說的模型不是單指我們平時設(shè)計的原型,它包括用例圖、類圖、部署圖、狀態(tài)圖、活動圖、包圖、對象圖、原型圖、效果圖、 E R 圖等,利用不同圖形表達出產(chǎn)品的不同維度,使產(chǎn)品豐富而立體。

  在房產(chǎn)項目里,我們用原型與客戶討論需求,用 ER 圖溝通數(shù)據(jù)庫設(shè)計,用類圖來表達產(chǎn)品的對象,用部署圖確定硬件部署環(huán)境及網(wǎng)絡(luò)結(jié)構(gòu),用活動圖來說明信息交互流程,用時序圖來表達在時間軸下對象間的交互。通過各種圖表來表達產(chǎn)品,利用這種方法會比較直觀,而且當發(fā)現(xiàn)錯誤修改起來也容易,不像利用文檔方式,修改不方便、維護困難,也不利于閱讀、理解。

總結(jié):利用模型來代替文檔進行交流。

4、敢于 迎接變化

  市場環(huán)境是產(chǎn)品的風向標,我們要隨時關(guān)注市場。為了迎合市場,產(chǎn)品也要隨時變化。需求變化、設(shè)計變化……各種變化讓我們焦頭爛額,但做為產(chǎn)品人的我們同樣也應(yīng)該接受改變,只有產(chǎn)品的快速變化,才能很好的迎接未來。我們歡迎變化,只要是合理的,哪怕是開發(fā)階段,需求也同樣可能發(fā)生變化。敏捷開發(fā)允許變化,通過變化給客戶帶來更大的競爭力。敏捷開發(fā)利用圖表來記錄需求,所有代碼都采用模塊式設(shè)計,將不同功能盡量分割,減少關(guān)聯(lián)。這就是它能夠、也敢于迎接變化的原因。

    提到了敏捷的一個很重要思想就是“勇于迎接變化”。就有人說了,你一定不是技術(shù)出身的吧。做技術(shù)的就討論變化,最不允許的就是確定的需求再修改。當產(chǎn)品經(jīng)理與技術(shù)人員溝通時,當談的一個復(fù)雜性操作時,經(jīng)常說:“你確定不會修改了吧,如果你確定需求不變,我就做!”,你要答應(yīng)了,再找技術(shù)修改時哪就等于堵死了自己的后路。實際,哪能一定有不修改的需求呢?我們做產(chǎn)品不也是時刻在迎接市場的考驗嗎?在大海上航行,當風向變化,我們的大船不也得時刻準備掉頭,準備調(diào)整。變化,本身就是為了適應(yīng),沒有變化,就等于沒有進步。但作為產(chǎn)品經(jīng)理的我們,能做的應(yīng)該是利用自己的智慧和敏銳的市場洞察力,盡量的去感知風向,盡量的控制需求,在需求發(fā)現(xiàn)初期就做好充足的調(diào)研。怕變化,不是辦法,在項目初期就要做好靈活可調(diào)整的方案,如果需求真的變化了,我們應(yīng)該怎么辦,這才是敏捷的思想,需求的變化,我們誰能阻攔得了呢?

5、 盡早、持續(xù)的交付可運行的階段性成果

  之前我曾經(jīng)說過,一個項目的失敗,一般不是技術(shù)原因,多是因為客戶對我們失去信任。我們需要持續(xù)的、不斷的給客戶以信任感,一種是我們在客戶現(xiàn)場不斷的交流、溝通,讓客戶感受到我們的熱度。同樣,還需要盡早的、持續(xù)的給客戶提供相應(yīng)的成果物(可運行的產(chǎn)品),讓客戶看到我們的能力。當然,這樣還有另一個好處是,能夠把問題提早的暴露出來,不要羞羞答答像個小女人,不敢見人,只有提前暴露,才能提早解決,問題越晚暴露越難解決。

在房產(chǎn)項目中,當天完成的內(nèi)容在編譯沒問題后,會把修改的功能部署到平臺服務(wù)器上,以便于客戶隨時能夠看到變化,了解項目進度。如有問題的話,也能夠盡早暴露出來。

總結(jié):為了降低項目風險,盡早交付可運行程序

6、 面對面的溝通

  最快的交流方式就是面對面的溝通,在敏捷開發(fā)中,最提倡的方式是減少哪此冗余的、效率低下的溝通方式,用最快速的方法來直接溝通。讓技術(shù)人員、設(shè)計人員、客戶等所有團隊成員都在一起辦公,減少信息交流的斷路,讓溝通變得順暢。

  在房產(chǎn)項目中,當有問題不理解,需要交流時,都是直接找我,我不清楚的直接找客戶。當我不在時,同事們也會直接與客戶進行溝通,任何人都可以直接獲取需求。

總結(jié):直接溝通,減少中間環(huán)節(jié)

7、 可工作的軟件是最主要的衡量標準

  出再多的文檔、再多的中間產(chǎn)物,都沒有出結(jié)果來得真切。客戶最觀心的不是中間物,而是成果物。對于敏捷軟件開發(fā)來說,可以工作的軟件是評測開發(fā)進度的最主要衡量標準。唱的再好,也不如做的好,做事要落地,實實在在、踏踏實實是敏捷開發(fā)的核心,不玩花拳繡腿。

總結(jié):做出可交付的軟件是項目的核心

8、 保持恒定的開發(fā)速度

  項目開發(fā)是一次長跑,短期內(nèi)迅速的加速,并不是長跑的方式,我們應(yīng)該持續(xù)的、勻速的跑步方式,這樣才能保證團隊成員能一直堅持到最后。敏捷開發(fā)提供可持續(xù)的開發(fā)速度,這樣不僅團隊成員不至于疲憊,也有利于制定項目開發(fā)進度,控制開發(fā)周期。

總結(jié):項目開發(fā)過程是長跑,不要一開始就沖刺

9、 定期團隊優(yōu)化

  我們會每隔一段時間進行一次團隊建設(shè),進行批評與自我批評,找出工作中的問題及影響個人與團隊發(fā)展的瓶頸。我們通過交流、溝通方式找出團隊及成員間的問題,然后進行自我調(diào)整,通過不斷的優(yōu)化、升級自有團隊,打造出一個能戰(zhàn)斗的隊伍。

10、 配合使用敏捷開發(fā)工具

  CORNERSTONE 是一個一站式項目管理協(xié)作平臺, 適合各大敏捷開發(fā)團隊,旨在幫助各大企業(yè)進行智能管理,解決研發(fā)項目管理痛點,它支持持續(xù)交付與集成,能夠透過各個維度跟蹤記錄項目進度,幫助團隊輕松配合完成目標。

  它為團隊提供敏捷、任務(wù)、需求、缺陷、測試管理、 WIKI、共享文件和日歷等功能模塊,幫助企業(yè)完成團隊協(xié)作和敏捷開發(fā)中的項目管理需求;更有甘特圖、看板、思維導圖、燃盡圖等多維度視圖,幫助企業(yè)全面把控項目情況。

  同時, CORNERSTONE還自帶文件儲存和共享、文檔協(xié)作功能,并且可以實現(xiàn)團隊之間的實時溝通。換句話說,選用 CORNERSTONE,可以不需要再挑選文檔協(xié)作工具、文件儲存和共享工具、團隊內(nèi)部溝通工具。

  此外,不僅是產(chǎn)品研發(fā),銷售、運營、行政審批也可以使用 CORNERSTONE進行管理。使用統(tǒng)一的管理平臺,對于企業(yè)來說無疑是大大降低了管理成本。

     總結(jié):

如果項目管理者能夠很好的運用敏捷開發(fā)思想,就相當于在游戲世界里擁有了法器,美食世界里掌握了烹飪之道。在敏捷開發(fā)里還有許多其它思想,但有的思想本人并不太認同,如用“測試驅(qū)動開發(fā)”,在中國與在國外不同,在國外有CMMI,對測試要求非常高,測試實際就是質(zhì)量檢查部門、質(zhì)量控制部門,有著很高的權(quán)限,對測試人員也是更加尊重和認同。在國內(nèi),公司多重開發(fā)而輕測試,從你公司測試人員與開發(fā)人員的薪水上就能看得出來,誰更受重視。想讓測試人員驅(qū)動開發(fā),在目前的現(xiàn)狀中有些難以做到。有時我想,前人已經(jīng)總結(jié)出了那么多好的思想,確實應(yīng)該多學學、多看看、多用用,但拿來的思想并不一定全適用,每種思想都有著自己的成長土壤,不是只要多施肥、多澆水就能長出好莊稼。有時,也要看看,植物的習性,是否更適應(yīng)我們的環(huán)境。 CORNERSTONE 現(xiàn)在申請20人以下團隊即可免費使用。

探討敏捷開發(fā)在軟件開發(fā)中的應(yīng)用

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI