一、软件开发流程

(一)项目启动 

1、产品经理和项目干系人确定项目方向,产品型项目的干系人包括公司领导、产品总监、技术总监等,项目的话则包括客户方领导、主要执行人等。

2、公司领导确认项目组团队组成,包括产品经理、研发项目经理、研发工程师、测试团队等。

3、明确项目管理制度,每个阶段的成果产物需要进行相应的评审,评审有相应的《会议纪要》;从项目启动起,研发项目经理每周提供《项目研发周报》;测试阶

段,测试工程师每周提供《项目测试周报》。

4、产品经理进行需求调研,输出《需求调研》文档。需求调研的方式主要有背景资料调查和访谈。

5、产品经理完成《业务梳理》。首先,明确每个项目的目标;其次,梳理项目涉及的角色;再来,每个角色要进行的事项;最后,再梳理整个系统分哪些端口,要有哪些业务模块,每个模块再包含哪些功能。

(二)需求阶段 
1、进入可视化产物的输出阶段,产品经理提供最简单也最接近成品的《产品原型》,线框图形式即可。在这个过程中还可能产生的包括业务流程图和页面跳转流程图。业务流程图侧重在不同节点不同角色所进行的操作,页面跳转流程图主要指不同界面间的跳转关系。

2、产品经理面向整个团队,进行需求的讲解。

3、研发项目经理根据需求及项目要求,明确《项目里程碑》。根据项目里程表,完成《产品开发计划》,明确详细阶段的时间点,最后根据开发计划,进行《项目任务分解》,完成项目的分工。

4、研发工程师按照各自的分工,进入概要需求阶段。《概要需求》旨在让研发工程师初步理解业务,评估技术可行性。

(三)设计阶段

1、UI设计师根据产品的原型,输出《界面效果图》,并提供界面的标注,最后根据主要的界面,提供一套《UI设计规范》。UI设计规范主要是明确常用界面形式尺寸等,方便研发人员快速开发。UI设计常涵盖交互的内容。

2、研发工程师在界面效果图的基础上,输出《需求规格》,需求规格应包含最终要实现的内容的一切要素。

3、研发工程师完成《概要设计》、《通讯协议》及《表结构设计》,及完成正式编码前的一系列研发设计工作。

(四)开发阶段

1、研发工程师正式进入编码阶段,这个过程虽然大部分时间用来写代码,但是可能还需要进行技术预研、进行需求确认。

2、编码过程一般还需进行服务端和移动端的联调等。

3、完成编码后需要进行功能评审。

(五)测试阶段

1、测试工程师按阶段设计《测试实例》,未通过的流程测试提交至jira,分配给相应的开发人员调整。

2、研发工程师根据测试结果修改代码,完成后提交测试,测试通过后完成。

3、测试工程师编写《测试结果报告》,包括功能测试结果、压力测试结果等。

4、测试工程师编写系统各端口的《操作手册》、维护手册等。

(六)系统上线

与客户或者上级达成一致后,系统进行试运行,稳定后上线。

二、最喜欢的两个团队类型

交响乐团模式:交响乐团门类齐全,各司其职,演奏都靠谱,同时看指挥;当某个软件领域处于稳定成长阶段时时比较适用。

功能团队模式:具备不同能力的同事们平等协作,共同完成一个功能,在这个功能完成以后,这些人又重新组织,和别的角色一起去完成下一个功能。

三、本门课程中应采取的类型

1.我认为在本门课程中比较适合的是交响乐团模式,交响乐团模式最中心的位置是指挥者,每个演奏者以指挥者为中心来完成自己的表演片段,乐器种类多大家各司其职使演奏十分完整。对于现在的我们来说缺乏一定的发展能力需要一个好的指挥家来领导我们合作,小组成员根据需要发挥自己擅长的部分在团队里大家都能够去凭借自己的知识技能来共同完成这样一个功能。

       而且团队中的每个成员的擅长点大都不一致的,把这些都合并起来那么可以互相弥补不足之处,对于交响乐团队模式解决了把大家集合起来的问题但是又出现成员之间缺乏交流,这对于一个项目的完成是不正确的,交流的缺少会给成员对成员有错误的认知,对方不了解各自的技能到底处于什么水平往往会出现偏差。所以我认为在采用这种模式的情况下可以进行优化,加强小组成员的交流,使彼此有一个较为全面的了解那么在分配任务会更有侧重点完成度也会大大提高。

但我更希望我们的团队模式可以是二者的结合形式,通过磨合,能够协同作战。团队可以公开的讨论流程和工作的方式,协商制定计划;有能力的成员也分担一定的领导职责;大家各司其职,平等协作,最后汇总各部分,完成任务。

   2.不同模式优缺点分析

(1)交响乐团模式

优点:门类齐全,并且大家各司其职,各自有专门的场地,演奏期间没有聊天走动的现象,还有就是演奏都靠谱,同时看指挥的,而且演奏的都是经过多次练习的曲目,最重要的是这个团队需要一个能力强的指挥者来进行整场的演奏,执行能力强。

缺点:团队小组成员做事比较呆板,自己只顾着完成自己的演奏片段而忽略了自己与团队的交流,并且光看指挥者的指挥还会失去了自己的想法。

(2)功能团队模式

优点:小组成员注重合作,大家平等协作共同完成一个功能并且还可以再和别人完成另外的工作,灵活性比较高,这样每个人都能发挥自己擅长的,而且小组内部交流比较频繁,敢于提出自己的想法。

缺点:在大家协作完成一个功能后去和他人组队,那么新的小组成员还需要一个磨合期来使对方熟知起来比较耗时间不稳定。