對技術負債,技術和業務權衡和重構,重寫,升級的一些看法
技術負債
在技術圈,有一個債務術語叫【技術負債】或者【技術債務】。【技術負載】帶來的顯性和隱性成本是非常高的。
顯性的是技術不給力,運營/產品/商業團隊都很難受,而這種難受實際帶來的損失會比想象的大,甚至對整個公司的前景都產生了影響。
第二個是隱性的,隱性的是指雖然你隨便找個團隊都能把某件事情(系統)做出來,但是這個事情(系統)埋的雷太多,它只是跑起來了,但其實不能持續的跑。不能持續的跑體現在那些方面呢?
- 無窮無盡的看起來很小的bug
- 很多業務訴求甚至表示無法實現
- 研發有60%以上的精力專注在人肉運維該系統。
- 新的業務功能完全是在寫新的程式碼,老的程式碼不敢護著不願意去動。
最後的結果是去跟老闆說,對不起,這個系統我們實在run不下去了,只能重構甚至重寫了。
這部分屬於隱性成本,它的實際開銷也是遠遠大於管理者想象的。大家可以想像下,是個程式設計師有八個人肉運維該系統的運轉,另外兩個對接業務,但是效率極其低下,這其實是在浪費你的程式設計師的成本,同時各個業務部門也都不滿意,很難受,嚴重影響了業務的發展。
所以,怎麼避免產生技術債務呢?怎麼解決技術債務呢? 在講這個之前,我們再提一個【歷史名題】,業務和技術到底誰優先。
業務和技術到底誰優先?
大部分和技術有關的公司都會說業務優先,業務優先沒有錯,沒有業務你公司就死了,還談何技術優先。
但是執行中最後都會歪了,變成跛子,導致技術沒辦法把業務優先支撐起來,業務優先也就成了空話。
另外當大家提業務優先的時候,骨子裡想的是什麼? 想的就是你做技術的就是一堆死板的工匠,比如你是個木工,你好好做好木工就行了。但實際上工程師不同於此,沒有工程師文化,工程就做不好,但是大家適應不了這種變化,你一個工匠跟我提文化,這不是搞笑呢麼,幾千年的治人思想 ,沒辦法。
值得一提的是,中國也開始慢慢過了有個Idea找個團隊做出來就行的階段了 ,美帝現在的階段肯定是我們未來的階段,基礎技術美帝始終都有在大量投入 技術驅動也很明顯。這就意味著,隨著商業模式慢慢都被做透了,大家拼的就是工程了和服務質量了。
所以關於業務和技術到底誰先行,最後的總結的就一句話:
戰術上業務先行,戰略上持續關注技術
重構,重寫和升級
重構,重寫,升級適用於編碼,也適用於架構,也適用於各種支援業務的系統。有一個好的工程師文化的團隊,重構,重寫,升級應該是在日常中完成的,並且是自驅的。
做到這一點,有什麼好處呢?因為這可以避免和減少你的【技術負債】。
怎麼做到這一點呢?戰術上業務先行,戰略上持續關注技術
很好,我們把這三者之間很好的串聯起來了。萬事皆有關聯,靠的近的事容易有因果。所以他們三者也逃不出這個因果關係。
能做到日常的重構,重寫,升級,是非常需要勇氣和主動責任的精神,也考研團隊技術實力,而這也是工程師文化的一種。我們來看看為什麼是需要勇氣的,主動和實力的。
- 重構,重寫,升級意味著新的bug和坑,主動迎上去需要勇氣。
- 重構,重寫,升級短期不是必須的,主動迎上去需要主動和責任。
- 重構,重寫,升級不是處故障的藉口,而是讓故障更少,業務更快的的主動出擊行為,這就需要實力。
當然,要減少技術負債,提升業務效能需要做的事情太多太多,但是重構,重寫,和升級真的能起很大的作用。