软件工程包括了开发、运营、维护软件的过程中的很多技术、做法、习惯和思想。软件工程把这些相关的技术和过程统一个体系中,叫“软件开发流程”,软件开发流程的目的是为了提高软件开发、运营、维护的效率,以及提升用户满意度、软件的可靠性和可维护性。
软件开发流程不光指团队的流程,还包括个人开发流程,因为软件团队是由个人组成的。在团队的大流程中,是每一个具体的个人在做开发、测试、用户界面设计、管理、交流等工作。因此,个人在团队中也有独立的流程。
大多数的工程师都在团队的环境中工作,怎么样是一个合格,甚至优秀的队员呢?PSP(personal software process),和它对应的有团队的软件流程TSP(team software process),TSP对团对成员也有要求:
1、交流:能有效地和其他队员交流,从大的技术方向,到看似微小的问题。
2、说到做到:就像上面说的“按时交付”。
3、接受团队赋予的角色并按角色要求工作:团队要完成任务,有很多事情要做,是否能接受不同的任务并高质量完成。
4、全力投入团队的活动:就像一些评审会议,代码复审,都要全力以赴地参加,而不是游离于团队之外。
5、按照团队流程的要求工作:团队有自己的流程,个人的能力即使很强,也要求按照团队制定的流程工作,而不要认为自己不受流程约束。
6、准备:在开会讨论之前,开始一个新功能之前,一个新项目之前,都要做好准备工作。
7、理性地工作:软件开发有很多个人的、感情驱动的因素,但是一个成熟的团队成员必须从事实和数据出发,按照流程,理性的工作。
职业发展--考级之路
在中国,软件工程师的职业资格考试有:计算机等级考试和全国计算机技术与软件专业技术资格考试。
现代软件产业经过几十年的发展,一个软件有一个人单枪匹马完成,已经很少见了,软件都是在相互合作中完成的。合作的最小单位是两个人,两个工程师在一起,做的最多的事情就是“看代码”,每个人都能看“别人的代码”,并发表意见。但是每个人对于什么是“好”的代码规范未必认同,这时我们很有必要给出一个基准线--什么是好的代码规范和设计规范。
团队的有共同的特点:1、团队有一致的集体目标,团都要一起完成这目标。一个团队的成员不一定要同时工作,例如接力赛跑。
2、团队成员有各自的分工,互相依赖合作,共同完成任务。
软件团队有各种形式,适用于不同的人员和需求。基于直觉形成的团队模式未必是最适合的。
模式有:一窝蜂模式、主治医师模式、明星模式、社区模式、业余剧团模式、秘密团队、特工团队、交响乐团模式、爵士乐模式、功能团队模式、官僚模式