本人在軟件開發行業中混跡多年,接觸敏捷開發也有3年多的時間了,期間SM, Agile Coach 都曾經從事過,在工作過程中也有過一些對軟件開發流程,敏捷開發的一些思考和總結。這里想記錄下來,和大家分享一下,也作為自己對個人多年來工作的一個記錄和總結吧。
本篇是這個敏捷系列文章的第一篇,這個系列主要是介紹敏捷的相關知識,個人想分為三個部分,第一是敏捷理論及相關,第二個是Scrum及實踐,第三個是看板及實踐。
現在,敏捷理論在各個行業中都已經運用很多了,不僅是軟件開發,而且包括一些傳統行業和硬件相關也都引入了敏捷理論來對原有產品開發流程進行優化和整理。特別是互聯網發展起來之后,由于互聯網產品開發具有天然敏捷性,所以敏捷開發在其中更是如魚得水,得到進一步的發展。
既然敏捷開發這么流行,現在也有很多軟件開發行業從業者對其很感興趣,那么敏捷到底是什么呢,今天我們來一點一點揭開他的面紗。
上面是很多朋友都耳熟能詳的敏捷宣言了,不論你想從任何角度來嘗試解釋敏捷,都不會繞過這個宣言。敏捷宣言是在2001年2月11日-13日,由17位支持敏捷方法的軟件開發專家,在美國猶他州一個滑雪度假村,經過反復討論,最后達成共識,發表了一個軟件開發的原則,也就是敏捷宣言。里面4個軟件開發的原則是今天所有敏捷開發方法的核心價值所在。但是這樣往往大家忽略了敏捷宣言的其他部分,而我個人認為前面兩句話才是敏捷宣言里面真正的核心部分。那就是:
我們一直在實踐中探尋更好的軟件開發方法,身體力行的同時也幫助他人。
第一句話表明了敏捷不僅是一種軟件開發方法,而是一種理念,這種理念是來源于軟件開發過程中的實踐,而且隨著軟件開發過程的不斷演進,他也會不斷的演進,從而達到更適合目前軟件開發過程的方法。通過這句話,我們可以感受到當時各位起草敏捷宣言的軟件開發者對于敏捷的思考和理解,那么就是敏捷一定是扎根于實踐,是一種不能脫離時間的軟件開發方法,如果我們試圖在實施敏捷的過程中,把敏捷抽象出來,讓它成為一種普遍方法論,那么它就不再是敏捷了。
第二句話,在實施敏捷的過程中,每個人都要自己身體力行,先從自己開始,進行改變,適應新的開發方式,同時在軟件開發過程中,也要更多的幫助他人,這也是敏捷的核心理念之一。就是通過改變自己,從而影響其他人,幫助他人。使得大家在軟件開發過程中能夠更好的自我組織,自我發展。
所以通過重新理解敏捷宣言,我們可以看到,起草這個宣言的人們并不是想創造出一種新的軟件開發理論,而是想提出一種理念,一種在軟件開發實踐中產生,并且能夠根據軟件開發實踐的變化不斷適應,不斷發展,更好的反饋到軟件開發實踐中去。而不僅僅是一種方法論而脫離實際。