精益软件开发简介之A版
本簡介主要介紹了精益,沒有充分說明精益軟件開發,本版本也未被選入正式稿,后續相信還將有更好的版本來介紹精益軟件開發。
放在這里先睹為快,也是能夠快速交付價值。
精益軟件開發一詞起源于Mary Poppendieck 和Tom Poppendieck寫的一本同名書籍。這本書將傳統的精益原則以一種新的方式呈現---作為22種開發實踐工具之一。兩位作者的網站是http://www.poppendieck.com/
精益是從豐田的生產以及開發方式發展出來的一種過程管理方法,從90年代開始被很廣泛的研究,其目標是了解客戶的價值觀,然后充分利用聰明的、具有創造力的員工的時間和精力,以較少的努力提供更多的價值,即盡量避免復雜的東西。MaryPoppendieck 和Tom Poppendieck根據對豐田精益的理解將精益引入軟件開發領域,在敏捷軟件開發社區中提出了精益軟件開發,包括在敏捷開發會議上的幾次演講,已經形成了被敏捷開發社區廣泛接受的概念。
?精益軟件開發的宗旨:每時每刻快速的、有效的、可靠的交付價值(DeliverValue Quickly, Effectively, Reliably – Every Time)。精益軟件開發核心要求是在開發者或最終用戶的視角上觀察軟件開發過程,并發現其無益于快速交付的行為,然后持續改進。
精益思想起源于豐田公司以“低成本、零缺陷、高質量和人性化生產”為特色的豐田生產系統(ToyotaProduction System, TPS),于二十世紀五十年代開始發展,它是與大量生產相對的一種生產方式。1990年,美國人沃麥克和瓊斯合著的《The Machine That Changed the World》發表,書中對豐田生產系統進行了詳盡介紹。1996年,沃麥克和瓊斯再度聯手合著的《LeanThinking》問世,該書對豐田具體的生產實踐和觀點進行升華,并首次給出了LeanThinking的提法。從上個世紀70、80年代開始,陸續有企業開始實施TPS,到目前世界500強企業當中,100%的制造型企業和50%的服務型企業都不同程度地應用了精益。
?精益是為了應對激烈的國際競爭和多變的市場環境而發展起來的,是不斷從現有生產中發現和消除浪費的過程,它改變了傳統的強調產能的生產方式,而去關注最終用戶的價值,努力提供滿意的消費。精益思想具有普適性,它在營銷、企業管理乃至社會生活的方方面面都為人們提供了新的思考方式。
?精益生產既是一種以最大限度地減少企業生產所占用的資源和降低企業管理和運營成本為主要目標的生產方式,同時它又是一種理念,一種文化。實施精益生產就是決心追求完美的歷程,也是追求卓越的過程,它是支撐個人與企業生命的一種精神力量,也是在永無止境的學習過程中獲得自我滿足的一種境界。其目標是精益求精,盡善盡美,永無止境的追求七個零的終極目標。
精益生產的實質是管理過程,包括人事組織管理的優化,大力精簡中間管理層,進行組織扁平化改革,減少非直接生產人員;推進行生產均衡化同步化,實現零庫存與柔性生產;推行全生產過程(包括整個供應鏈)的質量保證體系,實現零不良;減少和降低任何環節上的浪費,實現零浪費;最終實現拉動式準時化生產方式。
?精益生產的特點是消除一切浪費,追求精益求精和不斷改善。去掉生產環節中一切無用的東西,每個工人及其崗位的安排原則是必須增值,撤除一切不增值的崗位。精簡是它的核心,精簡產品開發設計、生產、管理中一切不產生附加值的工作,旨在以最優品質、最低成本和最高效率對市場需求作出最迅速的響應。
精益思想有五個原則,它們更像是五個步驟,通過不斷循環的過程將最終用戶價值帶入系統中,并將系統中的浪費一層層逼出來,消滅之。這五個原則分別是:
1. 價值
明確客戶所期望產品或服務應提供的價值。以實現此價值為目的審視整個過程中的所有活動,同時幫助識別其中的浪費。
2. 價值流
針對一件產品、一項功能或服務,按時間順序識別出為實現其價值而進行的所有活動,并確定出其中哪些是有價值的,哪些是浪費。
3. 流動
消除價值流中的浪費,讓有價值的活動一個接一個地流動起來。
4. 拉動
確定價值流何時開始流動,因何流動。價值流應由用戶的實際需求拉動。
5. 盡善盡美
價值流中浪費的步驟不可能通過一次改善徹底消除,浪費是被不斷發現和具體化的。盡善盡美追求在實現客戶價值過程中引入最少的浪費,也即通過更精簡的步驟、更短的時間和更少的必需信息來實現客戶價值。當實現了一個階段的目標后,根據當前的價值流狀況設定一個新的目標,重新開始流動和拉動的過程,發現和消除更多的浪費,不斷地持續這一改進過程。
根據對精益的深刻理解,Mary Poppendieck 和Tom Poppendieck結合對軟件開發的認識,提出了精益軟件開發七大原則:
消滅浪費(Eliminate Waste):軟件開發中最大的浪費就是多余的功能,該原則是Lean最基本的一個原則。
品質為先(Build Quality In):從一開始就注重品質,而不是最后依靠測試。測試驅動開發(TDD)就是一個很好的實踐。
創建知識(Create Knowledge):軟件開發是個創建知識的過程,應該有一個鼓勵大家系統學習的開發流程,而且不斷的改進這個流程。
推遲決定(Defer Commitment):軟件開發通常具有一定的不確定性,基于多種選擇的方法能夠達成更好的結果,盡可能的延遲決定,直到能夠基于事實而不是不確定的假定和預測來做出決定。
快速交付(Deliver Fast):盡快的交付軟件能使客戶滿意,還可以削除大量的浪費。
尊重員工(Respect People):軟件開發以人為本,人是軟件開發團隊中最重要的資源。
全局優化(Optimize the Whole):一個Lean的團隊應該優化整個價值流(value stream)。系統的某一部分優化,總是會隨著時間的推移,只能對整個系統的局部優化。精益的全局優化從概念到現金專注于整個價值流。從客戶的要求到部署的軟件,提供一個完整的產品。客戶想要的不僅僅是軟件,他們想解決自己的問題。完整的解決方案由完整的團隊來建立。想想長期的治理和激勵制度,對推動短期思維和優化局部表現需要當心。
總結
以上是生活随笔為你收集整理的精益软件开发简介之A版的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从冲咖啡看统计过程控制
- 下一篇: SPICE:过程改进的又一种选择