這個問題非常好。不同國家,軟件開發套路不一樣。我覺得有兩點很重要,一是多任務系統,二是程序庫共享。
以下以我接觸過的一個美國合作伙伴的控制系統為例,簡要說明。
多任務系統,每個任務目標明確,程序員工作單一,不僅輕松,而且能實時創新
這個公司的系統,上位機用RTOS多任務系統或者類似的多任務系統進行開發,主要分人機界面、IO及通訊管理、ISO用戶NC程序語法分析、語義解釋、軌跡計算、自適應控制、PLC控制、遙控裝置控制等數控部分組成,每部分為一個任務,由若干個程序員負責開發。
還有一個項目負責人,負責各任務的數據傳輸、交換,制定通訊protocol,最后拼接組裝。
另一個team,專門負責提需求,寫操作流程,只為軟件開發team寫開發資料
每個人的任務單一,明確。有更多時間去學習相關知識,并實時改進,與時俱進。
我們國家的軟件開發,存在開始工作不夠細致,框架設計不科學,不能有效地、有機地分解復雜任務,導致程序員任務開發繁重;架構不好,導致小bug不斷地產生。
這在一些中、小型非專業的軟件開發公司,表現尤為突出。
很多公司沒有架構設計師,就一幫程序員在堆代碼。一開始能湊合做一個單頁面app,急著release;有了市場,再加點功能;用戶有新需求,要適應AI,云端,再縫補一番。