软件工程的最大难题

软件工程的最大难题的配图
一、引言大学有一门课程《软件工程》,研究如何组织和管理软件项目。说实话,这门课不适合本科生,因为学生可能体会不到,课程到底要解决什么问题。只有亲身参与过大项目的开发,经历过大团队,才能感受为什么软件工程很重要,又很难做对。软件开发有一个难题,叫做"扩展"(scaling),即怎样服务更多的用户。 你有 10000 个并发用户,跟你有 10 个并发用户,这是完全不同的概念,哪怕功能完全相同,背后的实现是完全不一样的。并发用户数上升一个数量级,软件就必须重构,大量问题随之产生。大项目的技术难度高,管理难度更高,而且大团队的生产率往往很低,行动缓慢。 《软件工程》就是研究,如何扩展软件和团队,适应大……