導語:現(xiàn)在每當直接或間接帶一支研發(fā)團隊我都會給大家做一次敏捷思想和實踐的培訓(注:軟件方向,復雜的硬件開發(fā)流程建議使用IPD思想)。作為一個有近10年的開發(fā)編碼工作經(jīng)驗的資深程序員,作為一個管理者,作為一個還算轉(zhuǎn)型成功的創(chuàng)業(yè)者,我一直有種初心
目前創(chuàng)新互聯(lián)公司已為上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站托管維護、企業(yè)網(wǎng)站設(shè)計、黟縣網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。希望所有研發(fā)人員能夠敢于并且會表達自己,讓更多的人了解自己;
希望所有的研發(fā)人員不僅僅是機械的寫代碼,也能洞悉市場、了解用戶,讓自己的產(chǎn)出能夠適配用戶和市場的需求,這何嘗不是一種成就感;
希望所有的研發(fā)人員不再受困于狹窄的職場方向,而是有更多可能轉(zhuǎn)型產(chǎn)品、市場、管理
我認為敏捷開發(fā)的實踐帶給了我這些:工作的收益、內(nèi)心的釋放、轉(zhuǎn)型的機遇以及最重要的自信,所以也想分享給大家這些。
敏捷開發(fā)思想
所有人都可以從字面上理解敏捷代表著“快”;
呆伯特老板的理解:沒有什么計劃或者文檔,直接開始寫代碼......
很多業(yè)內(nèi)人士的理解:迭代 開發(fā)。
以上理解不能算是錯,但都是盲人摸象式的理解。我們先看看幾種常見的開發(fā)模式:
計劃驅(qū)動的瀑布式開發(fā);
逐步完善的迭代 開發(fā);
風險驅(qū)動的螺旋式開發(fā);
價值驅(qū)動的敏捷開發(fā);
除卻外包項目常采用的瀑布式開發(fā)外,在很多人印象里仿佛剩下的三種開發(fā)方式都該是敏捷開發(fā),其實這里有個文字游戲,就是“***的”這個定語,敏捷開發(fā)是由用戶價值(用戶的需求)驅(qū)動,這才是區(qū)分標準,這種對核心的強調(diào),是在提醒我們需要最重視的是什么。至于用戶價值的意義,不言而喻——如果我們做出的東西并不是用戶需要的,那又有什么意義?在敏捷開發(fā)的過程中其實既有螺旋式開發(fā)的思維,也有迭代式開發(fā)的流程,甚至有計劃式開發(fā)的階段。
敏捷宣言—價值觀
很多“保守力量”反對敏捷開發(fā)的原因就是說敏捷不注重計劃或者是文檔等等。這里的文字游戲就是“勝過”二字,并不是沒有,而是取舍側(cè)重的分別??偨Y(jié)如下:
“自組織團隊與客戶緊密協(xié)作,通過高度迭代式、增量式的軟件開發(fā)過程響應變化,并在每次迭代結(jié)束時交付經(jīng)過編碼與測試的有價值的軟件?!?/p>
勝過
“與客戶確定合同后在初期制定并遵循基于活動的完整計劃,在重型過程和工具指導下,通過完成大量文檔進行知識傳遞,最后交付需求?!?/p>
敏捷開發(fā)之 12 條敏捷原則
1、我們最優(yōu)先要做的是通過盡早的、持續(xù)的交付有價值的軟件來使客戶滿意。
注:客戶的期望值管理
2、即使到了開發(fā)的后期,也歡迎改變需求。敏捷過程利用變化來為客戶創(chuàng)造競爭優(yōu)勢。
注:歡迎變更需求但不是意味著可以隨時變更,在一個計劃節(jié)點內(nèi)要保證需求不變更
3、經(jīng)常性的交付可以工作的軟件,交付的間隔可以從幾周到幾個月,交付的時間間隔越短越好。
注:比如scrum,節(jié)點周期往往設(shè)置為2到4周
4、在整個項目開發(fā)期間,業(yè)務人員和開發(fā)人員必須天天都在一起工作。
注:研發(fā)人員對業(yè)務的理解可以使產(chǎn)品更具備可用性甚至有卓越的用戶體驗,業(yè)務人員對技術(shù)的理解也會讓其更專業(yè),還可以加深不同團隊的交融理解
5、圍繞被激勵起來的個人來構(gòu)建項目。給他們提供所需要的環(huán)境和支持,并且信任他們能夠完成工作。
注:比如針對需求和實現(xiàn)性大家的頭腦風暴,鼓勵每個人發(fā)言,比如任務采取主動領(lǐng)取,而不是被動分配,倡導民主和開放
6、在團隊內(nèi)部,最具有效果并且富有效率的傳遞信息的方法,就是面對面的交談。
注:面對面交談不但效率高,而且有利于清晰透徹的了解對方的意圖,直面解決沖突
7、工作的軟件是首要進度度量標準。
注:每一個節(jié)點都要保證軟件是可用的,而不是99%的完成但不可用
8、敏捷過程提可持續(xù)的開發(fā)速度。責任人、開發(fā)者和用戶應該能夠保持一個長期的、恒定的開發(fā)速度。
注:scrum節(jié)點就如同心跳一般讓我們的計劃有規(guī)律
9、不斷地關(guān)注優(yōu)秀的技能和好的設(shè)計會增強敏捷能力。
注:倡導每個人要有自主學習能力,建立學習型組織
10、簡單----使未完成的工作大化的藝術(shù)----是根本的。
注:書籍 大道至簡 (豆瓣), UNIX編程藝術(shù) (豆瓣) 的核心思想
11、最好的構(gòu)架、需求和設(shè)計出自于自組織的團隊。
注:《失控》中的去中心化,生物般的進化
12、每隔一定時間,團隊會在如何才能更有效地工作方面進行反省,然后相應地對自己的行為進行調(diào)整。
注:“實踐——反省——修正——成長......”的正循環(huán)
基于以上這些原則和關(guān)鍵詞,抽出幾個敏捷開發(fā)的核心:“價值”、“客戶”、“人”、“團隊”。
敏捷實踐之Scrum
大家要明白一個區(qū)別,敏捷開發(fā)是一種思想,下面來講述一下承載這種思想落地的其中一種開發(fā)過程Scrum。
從這張開發(fā)過程使用的統(tǒng)計圖中可以看出Scrum的流行程度。Scrum本身并不是方法論,它只是一個框架,它只定義了高層次的管理流程,如下圖示
它并不涉及具體開發(fā)方法或者人員的有效溝通技巧等。這些沒有涉及的領(lǐng)域需要同其他理論和技能互為補充,以確保項目的成功。
可以看到Scrum的實施過程是建立在敏捷開發(fā)思想12原則基礎(chǔ)上的。反過來,對流程的實施也可以加深大家對敏捷原則的理解。
Scrum兼有的價值觀
核心價值觀:承諾、專注、公開、敬重和勇氣
提倡的原則:自我管理、涌現(xiàn)機制、可視性和評估/適應循環(huán)
Scrum的要點提煉
Backlog——明晰商業(yè)價值,場景化用戶故事
任務估算——精細,可控,準確
會議——專注,高效,開放
目標——清晰,可達成
《硝煙中的Scrum和XP 》
《高效程序員的45個習慣 》
Jira && confluence 項目管理、wiki知識庫
Redmine 需求、原型、協(xié)作
jenkins 持續(xù)集成
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。