軟件工程師與運維工程師雙方在軟件開發(fā)與維護過程中要更緊密協(xié)作和分享相似職責(zé)。對于運維與軟件開發(fā)人員之間的關(guān)系,20年前與現(xiàn)在相比有何不同在發(fā)布、故障修復(fù)和協(xié)作方面)?
在20世紀(jì)80年代和90年代,軟件的規(guī)模還比較小。開發(fā)者編寫軟件,將它交付給“制造環(huán)節(jié)”,如保存到軟盤或光盤中,然后就可以發(fā)往商店。商店負責(zé)將它銷售給用戶。如果用戶遇到問題,那么他們就會呼叫客戶服務(wù)。客戶服務(wù)的目標(biāo)是避免客戶與軟件開發(fā)人員直接溝通。如果系統(tǒng)管理員遇到了規(guī)模問題(自動化安裝或讓一臺服務(wù)器處理更大的用戶量),那么他們會根據(jù)操作手冊的說明進行操作,但是他們大多數(shù)時候會將這個問題轉(zhuǎn)交給真正了解這些產(chǎn)品的開發(fā)工程師,然后由他們負責(zé)開發(fā)出真正的解決方案。
開發(fā)人員與客戶的關(guān)系:一對多。
與客戶的互動:禁止。
系統(tǒng)管理任務(wù):偶爾。
敏捷是如何改變您與開發(fā)人員的互動的?
我認為開發(fā)運維是敏捷方法的必然結(jié)果。如果一個軟件團隊由于更快的發(fā)布周期和更高效的交流而需要提高自身的效率,那么將系統(tǒng)管理員加到這個過程中不是更有意義嗎?
開發(fā)運維與敏捷之間存在很多的相似性。它們各自都是對方的演化,而開發(fā)運維必然加入敏捷宣言的實踐方法和理念。敏捷宣言最早發(fā)布于2001年,當(dāng)時Web真正成為了一個正式成熟的平臺。它的主要概念有
個體活動與互動通過過程與工具實現(xiàn);
通過全面文檔指導(dǎo)軟件開發(fā);
通過合同協(xié)商開展客戶協(xié)作;
按照計劃來處理變更。
當(dāng)然,敏捷過程和方法不僅僅包含這四個原則,而且從敏捷宣言公開發(fā)布以來,敏捷的定義及其實現(xiàn)也一直在不斷地增加和發(fā)展中。
敏捷實踐提出了一種新的網(wǎng)站制作軟件開發(fā)方法,而開發(fā)運維則更進一步它基于這些實踐方法,但是主要關(guān)注于加強開發(fā)與運維之間的協(xié)作和技術(shù)互補,從而使開發(fā)與運維的角色與職責(zé)互相連接(現(xiàn)在幾乎涉及各個方面)。它引領(lǐng)了一場文化轉(zhuǎn)變,讓運維人員的工作方式更靠近軟件開發(fā)人員,其中包括解決問題的方式及參與設(shè)計和部署過程的方式。