開發(fā)效率與系統(tǒng)穩(wěn)定性雜談
在互聯(lián)網(wǎng)系統(tǒng)中,開發(fā)效率與系統(tǒng)穩(wěn)定性與產(chǎn)品成敗非常相關(guān)。開發(fā)效率在一定程度反映了團隊的執(zhí)行力,快速開發(fā)能力帶來了產(chǎn)品的競爭優(yōu)勢。系統(tǒng)穩(wěn)定性(包括安全及性能等)則是產(chǎn)品的后防線,稍有失誤則會給產(chǎn)品帶來很大傷害。因此開發(fā)效率與系統(tǒng)穩(wěn)定性是衡量互聯(lián)網(wǎng)系統(tǒng)開發(fā)成熟度最重要的兩個指標。
在軟件開發(fā)周期不同階段,這兩者如何控制?
在需求階段,對開發(fā)效率的影響常見的是溝通理解偏差帶來的技術(shù)風險,之外最常見的還有需求變更的風險。后者大多是來自市場環(huán)境的變化作出調(diào)整,技術(shù)主管更多的是積極心態(tài)去應對。但對前者溝通理解偏差導致效率問題也不罕見,更值得警惕。
在技術(shù)設計階段最大的風險是技術(shù)方案,找個無需多講,考驗團隊的架構(gòu)能力以及對當前系統(tǒng)的駕馭程度。
開發(fā)階段最大的風險是單元測試不到位或缺失。很多號稱“敏捷”型項目依賴在線上測試及修改,當模塊增多后,這樣代碼健壯性就會變得比較脆弱,不少團隊也會越走越慢。
Review階段風險是簡潔性及性能。除了壓力測試能達標之外,警惕那些不易懂的代碼,這些代碼將來會成為事故多發(fā)地帶。
部署階段最大的風險是上線計劃把控,上線過程中操作錯誤的情況并不罕見,如去年Amazon EC2的故障就是由于操作失誤造成。
從宏觀看來,技術(shù)方案的風險最大,由于模塊很多,具有豐富經(jīng)驗的高手不可能參與每一個環(huán)節(jié),這就會出現(xiàn)木桶的短板效應,架構(gòu)師認為不重要的地方總是會出問題。給用戶體驗造成極大傷害。
另外還有團隊文化的風險。大部分團隊很難形成書面交流的習慣。口頭溝通需求、討論方案對創(chuàng)業(yè)團隊非常適合。在團隊變大之后,這樣的習慣會造成信息流動障礙,可能會給工作效率帶來更多負面問題。同時大部分團隊也對流程、模板、規(guī)范缺乏了解與重視,過多依賴參與人的內(nèi)部驅(qū)動力及能力,無法依靠制度與流程來取勝。