ML之父Ivar Jacobson談軟件工程的新機遇和挑戰(zhàn)
精益思想已在諸多行業(yè)取得了卓越的成效,敏捷軟件開發(fā)更是讓困境中的軟件開發(fā)人員看到了曙光。本次大會中,敏捷專家們將精益和敏捷這兩種思想的精髓揉合在軟件開發(fā)中,幫助廣大開發(fā)人員將廣為接受的精益原則轉(zhuǎn)換為適應具體環(huán)境的敏捷實踐,從而提高組織的軟件開發(fā)能力。
CSDN&《程序員》總編劉江主持 CSDN&《程序員》總編劉江擔任本次活動主持,他簡單介紹了TUP活動宗旨,并切合沙龍主題指出,軟件研發(fā)企業(yè)越來越重視產(chǎn)品的用戶體驗,產(chǎn)品與設(shè)計也納入到全面的產(chǎn)品研發(fā)的大范圍,軟件工程已處在一個革新的時期。近幾年敏捷對于軟件工程來說,已成為趨勢,現(xiàn)在精益思想也出現(xiàn)在軟件工程中。本次TUP沙龍請來的Ivar Jacobson就是這些方面的***大師。他同時對本次演講的三位嘉賓一一作了介紹。 Ivar Jacobson:精益思想的復興 Ivar Jacobson在演講中表示,不管做任何事情,發(fā)現(xiàn)本質(zhì)非常重要,不要讓它的本質(zhì)被其外表所呈現(xiàn)出的假象所掩蓋,要抓住它的“內(nèi)核”——而這正是精益思想的精髓。他舉例說明軟件開發(fā)者需要從軟件工程中看到最核心的本質(zhì),而這個本質(zhì)是可執(zhí)行的、能動的,并且有清楚的目標藍圖。 Ivar Jacobson指出,軟件工程發(fā)展到今天已開始面對層出不窮的各種新技術(shù)新語言,讓開發(fā)者往往無從選擇。在此背景下,Ivar Jacobson呼吁廣大技術(shù)人員不要迷失方向,任何新事物都有兩面性,如果盲目追新而將自己現(xiàn)有的技術(shù)扔掉將是極不明智的做法。而基于當前軟件工程學院派和實踐派的分歧,Ivar Jacobson認為重建軟件工程理論的時刻已經(jīng)到了,關(guān)鍵就在于如何抓準內(nèi)核(kernel)。 在他看來,現(xiàn)在的軟件開發(fā)越來越復雜,如果要用傳統(tǒng)的敏捷方式,那在擴展方面就會有所欠缺。因此,敏捷方式本身也應該是敏捷的。在做軟件產(chǎn)品的時候,關(guān)鍵要有一個核心系統(tǒng),應用從框架式的、比較小的系統(tǒng)開始,從這個基礎(chǔ)上去增加更多應用。 Ivar Jacobson表示,軟件工程已經(jīng)到了一個“革命”時期。他提出SEMAT的軟件工程方法和理論。軟件工程由于不成熟的實踐正經(jīng)受嚴重阻礙,具體表現(xiàn)在以下這些問題上:像時裝業(yè)流行的時尚多于工程學科、缺乏可靠和普遍接受的理論基礎(chǔ)、大量方法及其變種,而其分別缺乏理解或虛假地作大、沒有可靠實驗評估和驗證、業(yè)界實踐和學術(shù)業(yè)界存在分歧。而SEMAT能解決目前所面臨的在軟件工程領(lǐng)域的眾多挑戰(zhàn)。從本質(zhì)上講,***的挑戰(zhàn)是要了解如何開發(fā)卓越的軟件,以及為什么我們需要一個軟件工程的理論。SEMAT支持一個以堅實的理論﹑經(jīng)過驗證的原則和***實踐(best practices)為基礎(chǔ), 重新定義軟件工程的進程:包括廣泛認同和可擴展的核心元素、能處理技術(shù)和人為問題、受到業(yè)界、學界、研究者和用戶所支持、面對需求和技術(shù)轉(zhuǎn)變時支持擴展。 Ivar Jacobson在演講中還結(jié)合多個實際應用的案例分析,向與會者介紹內(nèi)核(kernel)概念的核心思想。他認為,大量的事實已經(jīng)證明,內(nèi)核(kernel)的概念使得在大規(guī)模應用敏捷方法的同時,保持項目的可控性和清晰度成為可能。
Ivar Jacobson在演講中 Ivar Jacobson是軟件開發(fā)領(lǐng)域影響***的***權(quán)威之一,UML、RUP、用例與組件之父,全球SEMAT計劃***之一。 黃邦偉:用敏捷的方式來實施敏捷 雅各布森國際的***顧問、亞太技術(shù)總監(jiān)黃邦偉認為敏捷精益開發(fā)能帶來以下好處:迅速應變滿足客戶需求,減少浪費,不斷反省、學習、改進。而這整個過程本身也應該是敏捷的。黃邦偉表示,很多項目非常成功,但也有很多項目沒得到巨大收益,而這類沒得到巨大收益的項目主要是基礎(chǔ)打得不好。他提出一些學習方法以便打好基礎(chǔ)。在精益方面,黃邦偉提出“輕便軟件工程核”的概念,他認為,軟件開發(fā)工程應該是實際、簡單、輕便、指導性強能夠適應大小項目,而不是一堆沒人看的東西。在軟件開發(fā)工程中,要把握不同維度,不同級別的進展與健康度。而如何衡量進展與健康呢,可用表明“狀態(tài)”的狀態(tài)卡來控制。 黃邦偉指出,這是把抽象的工作變?yōu)榭梢暬囊环N有效手段。每一個狀態(tài)都對應一張狀態(tài)卡,而軟件工程核以不同的粒度展示。應用這些軟件工程核與卡片來指導開發(fā),軟件開發(fā)是一系列策劃、執(zhí)行及調(diào)整的輪回。在這個循環(huán)往返的過程中,會重復以下步驟:反省,回顧;尋找更適合的工作方式;改善工作質(zhì)量;減少浪費;邁向下步狀態(tài);跟蹤工作項;解除所遇到的障礙;確認當前狀態(tài);確認下步狀態(tài);確認如何達到下步狀態(tài)。這個過程到項目結(jié)束而結(jié)束。在這個過程中,軟件工程核和狀態(tài)卡發(fā)揮了以下價值:1.實際,簡單,輕便且容易學習;2.指導性強,即指導計劃,執(zhí)行,改進;3.可重用的過程定義;4.容易高速來適應自己的特殊情況。 每個項目都有其特殊性,有的接近用戶有的比較遠、有的團隊技術(shù)力量較強而有的團隊新員工較多。假設(shè)一個方式就能夠適應所有團隊是不可能的,如果要實施敏捷,方式本身也應是敏捷的,它必須很快抓到項目要點和團隊的現(xiàn)狀,再來促進他們的提升,并要保證這種提升的可持續(xù)性。 黃邦偉介紹了輕便軟件工程核(kernel)及其卡片呈現(xiàn)形式,以及它們?nèi)绾误w現(xiàn)敏捷和精益精神。他通過輕便軟件工程核(kernel)與一系列案例,演示如何用敏捷的方式實施敏捷。
黃邦偉在演講中 黃邦偉是雅各布森國際的***顧問、亞太技術(shù)總監(jiān)。他幫助許多團隊和組織提高軟件工程能力,包括實施敏捷及精益開發(fā),架構(gòu),設(shè)計,從構(gòu),需求管理,測試設(shè)計等多方面的支撐,在敏捷及精益開發(fā)方面擁有豐富的經(jīng)驗。 陳慶春:Use-Case 2.0,敏捷在行動 Use-Case一直是一種針對業(yè)務和系統(tǒng)需求都有效的工作方式。在軟件開發(fā)中,開發(fā)者應該使用最有效的工作方式、一種能允許持續(xù)改進的方式。在過去的很多年中,開發(fā)者已經(jīng)學會如何使用Use-Case來取得真正的成功,同時也從其他技術(shù),比如userstory和面向方面(Aspect-Orientation),學習了一些新的東西,這些激勵開發(fā)者在維持Use-Case的核心價值的同時把它做得更好。 陳慶春對新Use-Case的獨到特性進行了詳細介紹。他表示,Use-Case可以分解成切片以組成合適的日志以支持Scrum和Kanban。 新Use-Case的獨到特性:1.如開發(fā)者所需的敏捷和輕量級;2.擴展到大項目和復雜項目、擴展到整個生命周期、適應不同特點的項目以滿足需要;3.它不只是需求,它是針對整個軟件開發(fā)生命周期;4.它也可以適用于非功能需求;5.它不只是為軟件開發(fā),它也用于業(yè)務。 以Use-Case做切片以支持產(chǎn)品owner和開發(fā)團隊。陳慶春也指出了識別切片的策略和方法,他認為每個切片必須對客戶具有價值,這些價值往往會表現(xiàn)為業(yè)務對象狀態(tài)的變化;好的切片的測試方式應該可以被系統(tǒng)測試所復用;要求一個切片的完成時間不應該超過一個迭代的三分之一;切片之間減少依賴,避免網(wǎng)狀依賴;切片描述可用于溝通;切片盡量有可參考的,以估計工作量;切片盡量從系統(tǒng)外部的角度來看。
陳慶春在演講中 陳慶春現(xiàn)為雅各布森中國咨詢總監(jiān),曾參與Rational中國技術(shù)團隊、IBM Rational中國服務團隊的組建和管理。他擁有十多年軟件開發(fā)和咨詢經(jīng)驗。曾組織和參與多家知名公司的大規(guī)模軟件工程變革,涉及軟件工程的各個方面,并為超過百家的企業(yè)實施相關(guān)的服務和培訓。
現(xiàn)場座無虛席 演講結(jié)束后,與會者對關(guān)于敏捷在某個具體軟件工程中發(fā)揮的特點、切片和擴展的區(qū)別、測試時提到的需求等眾多技術(shù)細節(jié)方面提出了問題,三位演講嘉賓給予了解答,會議現(xiàn)場進行了熱烈討論。***的抽獎環(huán)節(jié),來自方正科技、華信、用友軟件、騰訊移動、北工大等單位的多位與會者獲得了獎品。