初读《构建之法》
大三的第二学期我接触到了软件工程,在学习软件工程之前我谈谈自己对软件工程的了解。大一,大二的时候自己对于软件的理解基本就是使用Java,python等语言编写自己想象的功能,让它们实现这些功能就好了。我现在才知道那并不是软件而是程序。现在我明白了软件=程序+软件工程,程序=数据结构+算法。我希望通过对于软件工程这门课的学习,可以写出优秀的软件(在现实中有实际价值,可用的软件)。
1.我们为什么要学习软件工程?
学习软件工程之前我想了解软件工程在软件的实际开发中起到怎样的一个作用。通过课本了解到,软件工程可以将开发,运营,维护相关的技术和过程统一到一个体系中,叫“软件开发流程”。其目的是提高软件开发,运营,维护的效率,软件的质量,用户的满意度,可靠性和软件的可维护性。
2.团队和非团队的区别?
现在使用的软件基本都是由团队开发的,这就需要了解团队和非团队的区别,毕竟团队的能力始终大于个人和非团队的。同时如何定义自己在团队中的位置也是非常重要的。团队有一致的集体目标,团队要一起完成这目标。一个团队的成员不一定要同时工作。团队成员有各自的分工,相互依赖合作,共同完成任务。
3.it创新思维的培养?
一个团队的产品和众多竞争对手在各个市场上竞争,一个团队的资源是有限的,不可能什么都做,这就需要在决定的时候选择有利于创新的,这样才会是产品更加有竞争力。我们可以通过SWOT分析框架进行分析。
4.pm在软件开发中的作用?
pm对于一个软件开发团队是非常重要的,pm在软件开发中到底扮演着怎样的角色是我们需要了解的。pm在软件开发中需要和客户交谈,发现客户需求,了解和比较竞争对手的产品,同时也要考虑如何使软件变得可用,如何改进团队的流程。
5.怎样进行用户调研?
软件开发中需要进行用户调研,只有知道用户想要的我们才可以开发出用户想要的程序。我们可以通过以下方法进行用户调研:焦点小组(Focus Group),深入面谈(In-depth Interview),卡片分类(Card Sorting),用户调查问卷(User Survey),用户日志研究(User Diary Study),人类学调查(Ethnographic Study),眼动跟踪研究(Eye Tracking),快速原型研究(Quick Prototype),A/B测试(A/B Test)。