您的軟體架構夠敏捷嗎?(二)- 持續演進的軟體架構
這次,於 2019/05/05 受新竹敏捷社群總舵主柯仁傑的邀請,在新竹敏捷社群我分享了一個關於 您的軟體架構夠敏捷嗎? 的主題,在這個主題當中,我分享了我個人早期多年在專案開發上的系統設計相關經驗外,與最近這五年執行顧問時,替企業規畫與設計軟體架構相關經驗的分享,過程中,與觀眾有幾個共鳴點待我在下方娓娓道來。 軟體的快速交付≠有價值的交付 課程一開始,我提到了在十多年前,我曾待過一家軟體公司,在這個環境中我們嘗試創造出一個 0 缺陷的軟體架構,詳細的內容我在上一篇文章【 敏捷的軟體架構設計:可擴展的軟體架構 】裡有說明,這裡不再重述。 接著,我提到了現在也是開發流程+開發方法百花齊放的年代,只是 Agile/DevOps 特別為人所知而已,但在這個混亂的年代分常容易讓人無所適從,尤其時初學者,因為你所處的環境有可能已經追不上大環境中的變化與改變的速度了,但是你卻還是有很多東西要學,對吧?我的意思是,最讓人無所適從的倒不是技術的推層出新,慢慢的反而是到底是改怎麼做才是正確的?這部分我們以下在詳盡說明。 先前我曾聽過某大廠的 App 能夠在一天之內交付 20 ~ 30 次的版本,這對一家軟體公司來說,維運與開發之間必須非常的運作與整合完備情況下,再加上工具的熟悉度極高,才有可能將 CI/CD 持續整合+自動化部暑到如此境界 ,有許多軟體開發商無不卯足全力渴望達成此境界! 但是據我所知,大部分大型購物網站、或者對外的訂票系統,事實上,他們在實務上只需要一天上一個至兩個版本便足夠了! 如果您需要在一天之內上 20-30 次版的話,通常代表著您的開發流程可能是出了問題,比如:團隊與 User 可能存在著隔閡/開發人員或小組之間沒有共識+不清楚需求就冒然的修改程式碼… 等等。 我在這邊請大家思考另一個面向問題,就是,軟體公司究竟想要什麼?做專案+產品想要的是什麼?就是【獲利】!對吧?做這麼多,改變這麼多,去了解敏捷是什麼!最終目的,就是要賺錢,但是要賺錢,就得先思考如何【獲利】呢?因為你們在進行系統開發時一定常常遇到下面問題: 測試總是花費許多時間? 軟體的修改總是牽一髮動全身? 無法掌控的技術債? 失控 的技術債? 需求確定後,才可以開始寫程式? 架構設計完成後?才可以開始寫程式? 對了,看到這裡答案就呼之欲出了,公司要賺錢,就是要將『成本...