这个问题非常好。不同国家,软件开发套路不一样。我觉得有两点很重要,一是多任务系统,二是程序库共享。以下以我接触过的一个美国合作伙伴的控制系统为例,简要说明。
多任务系统,每个任务目标明确,程序员工作单一,不仅轻松,而且能实时创新这个公司的系统,上位机用RTOS多任务系统或者类似的多任务系统进行开发,主要分人机界面、IO及通讯管理、ISO用户NC程序语法分析、语义解释、轨迹计算、自适应控制、PLC控制、遥控装置控制等数控部分组成,每部分为一个任务,由若干个程序员负责开发。
还有一个项目负责人,负责各任务的数据传输、交换,制定通讯protocol,最后拼接组装。
另一个team,专门负责提需求,写操作流程,只为软件开发team写开发资料
每个人的任务单一,明确。有更多时间去学习相关知识,并实时改进,与时俱进。
我们国家的软件开发,存在开始工作不够细致,框架设计不科学,不能有效地、有机地分解复杂任务,导致程序员任务开发繁重;架构不好,导致小bug不断地产生。这在一些中、小型非专业的软件开发公司,表现尤为突出。
很多公司没有架构设计师,就一帮程序员在堆代码。一开始能凑合做一个单页面app,急着release;有了市场,再加点功能;用户有新需求,要适应AI,云端,再缝补一番。
如此缝缝补补,最后做的app既不漂亮,也无价值,也得不到认可。最主要的是程序员,累的一塌糊涂!