读《构建之法》——初识软件工程
课程名称:2016级计算机科学与工程学院软件工程(西北师范大学)
课程要求:实验一 软件工程准备
三个问题:
问题1:
对于《构建之法》第95页阿超所说的程序员Melvin Conway总结的康威规律中所讲,“软件系统是给用户使用的,用户的需求并不是要看这个机构的内部组织架构图,而是要解决用户的问题。一个合适的团队结构,能更大的改进交流的效率,让团队更能把注意力集中在最主要的目标——解决用户需求上面。”由此可以看出,一个软件工程开发的过程中,用户的需求占据着至高无上的地位,那么机构的内部组织架构就不重要了吗?当用户不断地提出新的问题时,软件开发人员又将如何解决因此而带来的时间问题呢?此外,评价一个团队的好坏,也是只关注他们是否可以解决用户的需求,而无需顾及每个机构的内部组织架构吗?
问题2:
通过阅读《构建之法》第五章中软件团队的模式相关内容,我了解到了团队模式的多样性,但是对于这些团队模式的特点以及各自的优缺点还不是太理解。同时,对于团队模式也有以下一些困惑。在我们现在的学习中和以后的工作中所适合的团队模式是否一样呢?当一个全新的软件工程项目开始时,应该如何选择一个最合适的团队模式呢?当选定一个团队模式以后,在整个项目开发过程中,最初所选的团队模式是否可以发生变化呢?如果发生变化,那么会在哪些情况下才可以改变团队模式呢?在软件工程开发的过程中改变团队模式,会对整个软件工程项目造成一些积极或者消极的影响吗?
问题3:
通过阅读第九章的相关知识点,我深刻体会到了在一个软件团队中PM的重要性以及想要成为一个合格的PM所必备的一些条件,同时也产生了很多疑惑。在182页的讲述中,我知道了PM可以表示为以下三种:Product Manager(产品经理)、Project Manager(项目经理)、Program Manager(程序经理),那么这三种PM有什么本质的区别呢?在一个大型的公司中,是否同时需要这三种PM的存在呢?此外,对于当代大学生来说,初入社会很少有成为一个合格的PM所需的能力,那么我们应该从哪方面开始,又应该如何培养这些能力呢?