亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2061 | 回復(fù): 0
打印 上一主題 下一主題

漫談敏捷開發(fā)-精益和敏捷 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2011-03-08 07:56 |只看該作者 |倒序瀏覽
轉(zhuǎn)自 http://www.javaeye.com/topic/826625

聊聊軟件開發(fā)
軟件開發(fā)是一種非零和博弈,意思是某一方的獲得不是建立在另一方的損失之上(賭 博就是一種零和博弈,獲得和失去的總和等于零),所以軟件開發(fā)必須實現(xiàn)雙贏,幫助客戶成功的同時幫助自己成功。如:通過軟件幫助客戶把手上的5塊錢變成50塊錢,然后從客戶那里拿5塊錢。通過軟件幫助客戶節(jié)約50塊錢,然后從客戶那里拿5塊錢。

從精益說起
敏捷開發(fā)和豐田的精益思想頗有相似之處。傳統(tǒng)的汽車制造是以計劃驅(qū)動,如根據(jù)往年的經(jīng)驗判斷今年應(yīng)該生產(chǎn)多少汽車,但是這樣帶來的問題是有可能等汽車生產(chǎn)出來,市場已經(jīng)不需要了,而這就是一種極大的浪費。精益思想是以價值為驅(qū)動的方法論,精益思想的核心是消除浪費,它認為不為客戶創(chuàng)造價值的活動和盡管是創(chuàng)造價值的活動,但是所消耗的資源超多了“絕對最小”(投入產(chǎn)出比低)都視為浪費。浪費有七種:過量生產(chǎn)(生產(chǎn)多于所需),庫存(不直接產(chǎn)生價值,并增加管理成本),搬運,返工,過程不當(對最終產(chǎn)品不能增加價值的活動),多余動作(任何不增加價值的設(shè)備和人員的動作),等待(兩個關(guān)聯(lián)的要素間,未能同步)。

再談敏捷開發(fā)
敏捷開發(fā)的核心就是消除浪費。那么在軟件開發(fā)當中應(yīng)該如何消除浪費呢?

  • 過量生產(chǎn):在我們開發(fā)的產(chǎn)品當中,如果需求(用戶故事)不是把握的很好,那么就會造成很大一部分功能用戶從來都不會使用,這就是生產(chǎn)多于所需。所以我們需要用戶和業(yè)務(wù)分析師(BA)或者需求分析師一起來規(guī)避過量生產(chǎn)。
  • 庫存:在我們的軟件開發(fā)過程中,如果一直處于開發(fā)中,那么產(chǎn)品未給客戶帶來直接的價值,這就是一種庫存。所以我們可以通過迭代開發(fā)和快速交付來減少庫存。
  • 返工:這個在軟件開發(fā)當作比較常見,可能是對需求理解不透徹,開發(fā)出來的功能,不是客戶所想的,導(dǎo)致返工。也有可能是當初的設(shè)計不合理,不能滿足客戶的新需求,導(dǎo)致返工。也有可能是開發(fā)人員不注意編碼質(zhì)量,導(dǎo)致代碼的壞味道越來越重,最終導(dǎo)致代碼無法修改,導(dǎo)致返工,我曾經(jīng)遇到一個核心類有幾千行,無人敢動。所以我們需要BA來規(guī)避需求風險,需要架構(gòu)師來規(guī)避設(shè)計風險,需要好的基礎(chǔ)和習慣來提高軟件質(zhì)量。
  • 過程不當:我覺得這個主要體現(xiàn)在溝通方面。比如我和某同學(xué)講述一個需求,如果別人不用心聽,那么信息就不會有效的傳遞給他,或者是我表達的是A,而他聽到的是B。所以在溝通的過程中一定要通過消除溝通壁壘來消除浪費,在表述者和聆聽著之間存在兩道溝通壁壘,減少第一個壁壘,表述者應(yīng)該盡量站在聆聽者的知識背景上去清楚的表達內(nèi)容。減少第二個壁壘,聆聽者應(yīng)該懷著一個開放的心態(tài),去用心的接收表述者傳達的信息,不要在沒完全聽明白表述者傳達的信息之前,就用慣性思維去抵觸信息的傳遞。另外一點,我提倡定期溝通,而不是時時溝通,定期溝通是消除信息傳遞不暢導(dǎo)致的浪費,不提倡時時溝通,是為了減少開發(fā)人員的任務(wù)切換,從而提高效率。
  • 等待:這個可能是不同模塊之間的依賴和接口的聯(lián)調(diào)需要等待,所以這個可以通過合理的計劃來減少等待。也有可能是測試和研發(fā)的資源和計劃不對稱,導(dǎo)致開發(fā)的時候,測試閑置,開發(fā)完之后,測試資源不足。這個可以通過迭代開發(fā)持續(xù)交付的方式,來提高測試資源的利用。
  • 多余動作,我覺得主要體現(xiàn)在重復(fù)開發(fā)。比如每個模塊可能都會開發(fā)上傳組件,分頁組件和驗證組件,可能都會調(diào)界面樣式,可能花時間解決一個重復(fù)的問題。所以要減少多余動作造成的浪費,我覺得應(yīng)該加強團隊溝通,有專門的人負責公共組件的開發(fā)和復(fù)雜問題的解決。



我很喜歡這幅圖片,我把它稱為“舉重若輕”,對于軟件開發(fā)而言,它是一項非常復(fù)雜非常重的活動,那么如何能夠舉重若輕呢?我覺得應(yīng)該采取敏捷的方式,將軟件開發(fā)活動細化為一個一個非常輕的活動(迭代),那么我們就能做到舉重若輕了。

SCRUM
SCRUM是一套敏捷開發(fā)的框架,說的是在進行一次敏捷開發(fā)的過程中,所需要參與的角色,進行的活動和輸出的產(chǎn)物。
角色有三個:

  • 團隊負責人:作為客戶代表,確定產(chǎn)品的方向和愿景,定義產(chǎn)品發(fā)布的內(nèi)容、優(yōu)先級及交付時間,為產(chǎn)品ROI負責。沒有BA的情況下,可以充當BA的角色,來規(guī)避因需求問題導(dǎo)致過量生產(chǎn)和返工所產(chǎn)生的浪費。
  • SCRUM MASTER:主要負責消除團隊障礙。我覺得他可以負責開發(fā)公共組件,解決復(fù)雜問題來規(guī)避多余動作。通過制定溝通機制,開發(fā)流程規(guī)避過程不當造成的浪費。通過協(xié)調(diào)開發(fā)計劃,來規(guī)避等待所造成的浪費。
  • 團隊:一個完成的軟件開發(fā)團隊應(yīng)該包括銷售,售前,用戶,研發(fā),測試,售后等所有相關(guān)人員,因為任何幾個角色都有可能導(dǎo)致軟件開發(fā)的失敗。對于團隊而言最重要的是加強溝通,使信息能夠準確的傳遞給團隊的每一個人。

其他的不一一細說了,我認為SCRUM的核心是通過敏捷回顧來持續(xù)改進,從而消除浪費。因為在軟件開發(fā)中遇到的小問題非常多,從而造成大量的浪費,所以必須通過敏捷回顧,不斷的總結(jié)團隊做得好的習慣和遇到的問題,在下一個迭代的開發(fā)中的解決這些問題。

XP
XP是實現(xiàn)敏捷開發(fā)的一些非常好的實踐。

  • 用戶故事:是站在用戶的角度和應(yīng)用場景下來描述業(yè)務(wù)需求。格式為作為..我能..以便于..如作為網(wǎng)絡(luò)管理員,我能查實時的查看每個設(shè)備的CPU利用率,以便于我能即時發(fā)現(xiàn)有問題的設(shè)備。
  • TDD:狹義的測試驅(qū)動開發(fā),是通過先寫測試代碼再寫程序代碼的方式,來理清編碼思路和寫有效的代碼,之所以說有效的代碼,是因為有時候?qū)懙姆椒,你會發(fā)現(xiàn)從來沒有任何其他的方法會調(diào)用它,如多余的修改器(setter)和訪問器(getter)。我強烈建議業(yè)務(wù)服務(wù)層代碼使用TDD進行開發(fā)。進行TDD時很重要的一點是你要會使用IDE的部分快捷鍵,讓代碼自動生成。
  • 持續(xù)集成:通過自動化構(gòu)建工具(cc),持續(xù)集成版本,從而可以快速的反饋集成問題。
  • 結(jié)對編程:兩個程序員用一個電腦進行編程,一個人負責編碼,另一個人負責思考,在編寫之前需要和結(jié)對的同學(xué)表述自己的編程思路,從而將每一個程序員的優(yōu)秀習慣傳播給整個團隊,但是遺憾的是結(jié)對編程對程序員的要求比較高,最好是兩個程序員有一定的能力,并且能力差不多,如果一個能力很高的程序員和一個能力低的程序員結(jié)對可能效率很低。


最后推薦書籍:

《豐田汽車案例-精益制造的14項管理原則》
《硝煙中的Scrum和XP》


推薦博客:

http://yizhituzei.blogbus.com 一只土賊的博客博客波波客
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP