產品開發
關於技術債的溝通與管理
某次在一個技術社群中分享關於敏捷的議題,演說後有一位年輕夥伴問了我一個問題:「公司內有很多 legacy code,架構疊床架屋,時常改A錯B,跟老闆溝通了很多次,但始終排不進去工作中,永遠都被業務的需求排擠,在這種公司工作,很無奈,怎麼辦?」 我告訴他:「這是很棒的一件事,技術債是屬於活下來的公司,而技術債會愈來愈嚴重,某種程度也代表公司還在成長與發展,正面來看是一件好事。」 我也跟他分享了我看過的各種可怕技術債,但這些滿滿技術債的公司,它們卻是逐年在成長,而且活得還不錯。如果技術債是不好的,那為何這些公司沒有因此而倒閉呢? 「你怎麼看待『債』這種東西?它一定得償還嗎?」 如果你跟銀行借款,當你手上有錢的時候,你會立刻一次還清嗎?還是你會逐月逐月還,然後留些錢在手邊作其他用途呢?我相信多數人會選擇後者,留一部分的錢在身邊。為什麼呢?很大一部分原因是因為那些債並沒有立即償還的迫切性,也就是說選擇負債,但讓手邊有充足現金,對自己來說,有時是相對聰明的選擇。 對產品團隊來說,開發資源就如同手上的現金,這些資源是投入在償還技術債,或者開發新的需求,一樣也得從價值的角度來思考。 債