軟體工程的特點?
軟體工程作為一項複雜的工程,具有四個特點:volatility(易變性)、uncertainty(不確定性)、conplexity(複雜性)、ambiguity(模糊性),正是由於這些軟體特性,我們為了達成持續交付目標時,經常會遇到業務壓力太大、沒有時間改進,開發、測試等時間壓縮太嚴重,導致後期產品質量標準嚴重降低,與客戶實際期望需求存在較大差距,不斷迭代,產品不斷打補丁。
軟體開發方法經歷了瀑布軟體開發、敏捷迭代開發,對於不同企業,存在的問題不一樣,產品形態不一致,蘿蔔青菜各有所愛,完全不能照搬其它企業的方法,只能依照具體軟體開發辦法的核心原則,定製自身的軟體開發方法。敏捷開發強調發揮人的主觀能動性,提倡面對面的溝通、擁抱變化、通過迭代和增量開發的方式盡早交付有價值的軟體,大華公司行業排名第二,產品涉及行業較多,產品規劃與迭代速度必須保持高速運轉,因此選擇迭代開發,多產品的同時部署與發布是一項明智之舉。
什麼是持續交付2.0?
不同的軟體開發模式,涉及的人員也不完全一致,隨著時間發展,單一的軟體開發流程已不能滿足社會發展,產品複雜度、涉及人員、後期評估與交付都在與時俱進。就像持續交付2.0一樣,從持續交付1.0關注的「從提交**到產品發布」的過程,轉到深入產品實際功能需求以及投入產出是否合理等考量的關鍵活動上。持續交付2.0更是一種產品研發管理思維框架,他將精益船業與持續交付1.0結合,強調業務與it間的快速閉環,以「精益思想」作為指導,全面貫徹「識別和消除一切浪費」的理念,通過一系列工作原則與實踐,實現一種可持續方式、高質量、低成本、無風險地快速交付客戶價值。
開發模式
涉及人員
敏捷開發
產品需求方、軟體開發工程師、軟體測試工程師
devops
開發工程師、測試工程師、運維工程師
持續交付
產品需求方、軟體研發團隊、運維工程師
持續交付2.0靠哪些方法與原則保持先進?
持續交付2.0為了更快了解海量客戶需求,快速驗證大量業務假設與解決方案,達到為客戶創造價值的目的;其中有兩個方法:
方法一:簡稱探索環,指識別和定義業務問題,並制訂出最小可行解決方案;怎麼識別?
提問,也就是定義問題。通過有針對性的提問,找出客戶的具體需求,病找出具體需求背後的原因,具體需求根因是為了解決什麼問題;
錨定,也就是定義結果目標指示器,針對問題收集資訊,進行分析並去除干擾資訊,進而明確適當的衡量指標項;
共創,也就是共同探索和創造解決、驗證各種解決方案;
精練,對所有可行方案進行選擇,找到最小可行性解決方案;
構建,是指根據非數位化描述,將最小可行性解決方案準確轉換成符合質量要去的軟體包;
執行,將達到質量要去的軟體包部署到生產環境或交到使用者手上,並使之為使用者提供服務;
監測,指收集生產系統中產生的資料,對系統進行監控,確保其正常執行,同時將業務資料以適當的形式及時呈現出來;
探索環與驗證環相輔相成,探索環像是一部車子的前輪,把握前進的方向;驗證環,像是車子的後輪,使車子平穩且驅動快速前進,相互促進探索環產生的可行性方案規模越小,越能夠提高驗證環的運轉速度;如果驗證環能夠提高運轉速度,有利於探索環盡早得到真實的反饋,有利於快速決策,及時對前進的方向進行驗證或調整。
持續交付的核心原則:堅持少做、持續分解問題、堅持快速反饋、持續改進病衡量,這樣提高探索環與驗證環的運轉速度,提公升持續交付的能力,發展現有業務,並快速開創新業務。
探索環的工作原則有哪些?
探索環的工作原則可以遵循以下三個原則:分解並快速試錯、一次只驗證一點、允許失敗。
為了保證高速運轉,探索環實施中的注意事項有哪些?
多角色參與探索;
現狀:類似於實際專案中的開工會,人員到齊,思路及意見沒「到齊」。
改進措施:
站在專案角度,多問一些為什麼;
具體解決方案實施時,明確各方責任,確定最優解;
存在往復過程
現狀:1.需求往復;2.方向往復;
改進措施:明確並不斷確認需求以及需求實現效果,不推脫,多確認,多反饋需求效果,避免理解偏差;
風險不是等價的
現狀:1.需求永無止境;2.bug源源不斷;
改進措施:明確專案中關鍵路徑上的需求與問題,重點投入。
上帝視角
現狀:1.競品是怎樣,我們就怎樣;2.競品是我們產品的上限,而不是產品的底線;
改進措施:實際客戶或者研發角度提出自己的想法與意見,充分反饋並逐級上報,收集反饋意見並思考;
唯數字論
現狀:成果盡量以客觀資料的形式展現;
改進措施:數字只是現狀或階段性的反饋,並不能代表今後的發展趨勢,挖掘現有資料的不足,比如提高10%,為何不能提高到30%,並深入思考今後的前進方向;
蛇形效應
現狀:想法或方案很多,到底應該先做哪個;
改進措施:方案及優化要先明確具體的方向,並想清楚他能夠給我嗎帶來的實際效果,起碼有7成把握;綜合對比各方案,當前最為必須的先行。
《持續交付2 0》讀書筆記 03
有哪些常見架構?架構優點 缺點適用於 microcore plugin good extensibility 易發布易測試 可定製可漸進式開發 bad scalability 開發難度較高 外掛程式與核心通訊複雜 高度依賴框架 客戶端開發 microservice good scalability ...
C primer 讀書筆記(2,4,5章節)
第二章1.關於什麼是物件?一般而言,物件就是記憶體中具有型別的區域,說的具體一點,就是計算左值表示式就會產生物件。2.關於初始化,分為直接初始化 direct initialization 和複製初始化 copy initialization 直接初始化是把初始化式放在括號裡,複製初始化語法用等號 ...
《演算法之美》第一二章讀書筆記
第一章 1.分治法和動態規劃 dp 的區別 1 分治法 自頂向下 主要用遞迴操作,並且各個部分之間沒有聯絡。需要遞迴若干次並且需要重複計算已經計算好的資料。因此效率低 function devide x else int a size size int p matrix 0 0 for int i ...