敏捷已經(jīng)席卷了軟件開發(fā)世界。最近的調(diào)查表明,近71%的公司使用敏捷方法開發(fā)他們的軟件。然而,有很多嵌入式開發(fā)團(tuán)隊(duì)反對(duì)使用敏捷方法。他們覺得嵌入式軟件“很特別”,很獨(dú)特,不太適合敏捷框架和方法。所以,這個(gè)問題只是回避被問到,“敏捷能和嵌入式軟件一起工作嗎?”。在本文中,我們將探討這個(gè)問題,并看看使用敏捷方法設(shè)計(jì)和開發(fā)嵌入式系統(tǒng)的一些經(jīng)驗(yàn)。
敏捷在嵌入式軟件中“不起作用”的常見原因,這些原因通常包括:
l 我們太依賴硬件了
l 我們不可能在兩周的沖刺中開發(fā)出產(chǎn)品代碼
l 我沒有時(shí)間寫測試
l 管理層需要確定的功能日期
l 我需要硬件來編寫我的應(yīng)用程序
l 我們需要文件
還有很多其他原因。嵌入式軟件團(tuán)隊(duì)經(jīng)常認(rèn)為他們與硬件的交互是“特殊的”,并把他們排除在敏捷之外。在某種程度上,這種信念來自于團(tuán)隊(duì)從“純粹主義者”的角度看待敏捷。
敏捷純粹主義與敏捷現(xiàn)實(shí)主義
敏捷純粹主義者通過完美地遵循敏捷框架或方法來看待敏捷,每一點(diǎn)都有點(diǎn)交叉。敏捷純粹主義者傾向于生活在“純”軟件世界,比如web或應(yīng)用程序開發(fā)。他們首先指出你所做的不是敏捷的。然而,到底什么是敏捷?敏捷不就是采納敏捷宣言的價(jià)值觀和原則,并努力以迭代和協(xié)作的方式交付軟件嗎?
迄今為止,大約有47種不同的方法和框架被認(rèn)為是敏捷的。如果沒有幾百個(gè),也許幾千個(gè)。在許多情況下,嵌入式開發(fā)團(tuán)隊(duì)從一個(gè)常用的框架開始,并對(duì)其進(jìn)行調(diào)整以滿足團(tuán)隊(duì)的獨(dú)特需求和個(gè)性。因此,嵌入式軟件團(tuán)隊(duì)需要采用敏捷現(xiàn)實(shí)主義,也就是簡單地理解嵌入式軟件團(tuán)隊(duì)的獨(dú)特挑戰(zhàn)將導(dǎo)致對(duì)敏捷方法的修改,以滿足他們獨(dú)特的需求。
敏捷方法適用于嵌入式軟件
其實(shí)嵌入式軟件團(tuán)隊(duì)可以從敏捷方法和框架中獲益,從而改進(jìn)他們的固件。不過,團(tuán)隊(duì)需要做幾件事才能成功。
首先,團(tuán)隊(duì)拋棄了純粹主義者對(duì)他們是否真的在做敏捷的關(guān)注。相反,敏捷是關(guān)于改變你的思維模式,改善互動(dòng)和協(xié)作,并通過消除浪費(fèi)來提供價(jià)值。
第二,團(tuán)隊(duì)需要認(rèn)識(shí)到他們可以利用像TDD和CI/CD這樣的技術(shù),但是這需要他們改變他們?cè)O(shè)計(jì)和編寫軟件的方式。在許多情況下,這種改變是非常有益的,并且大多數(shù)團(tuán)隊(duì),六個(gè)月后,無法相信沒有它們他們以前是如何編寫軟件的。
不要讓純粹主義者嚇到你,使你意識(shí)不到采用可以徹底改變你如何開發(fā)嵌入式軟件的價(jià)值觀和原則。相反,在嵌入式開發(fā)中采取小的、迭代的步驟,在你意識(shí)到之前,你的軟件質(zhì)量和上市時(shí)間將會(huì)非常棒。