- 1、采访工业界的软件团队(通过邮件,微博,微信,阅读博客等方式),询问他们的软件开发流程
- 2、分组讨论,
- (1)投票选出你们小组成员最喜欢的两个团队类型
- (2)辩论你们在这门课程中最应该采取哪种类型
- (3)列出优劣
- (4)课堂发言,或发表博客
一 软件开发流程
(一)项目启动
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、最喜欢的两种团队类型:
(1)特工团队:特工团队中每个人对软件开发的某个领域都达到了“专家”“高手”的地位,合作起来各司其职,效率和正确率会非常高。
(2)社区模式:社区模式中每个人选择自己感兴趣的项目,贡献力量,这种模式的好处是众人拾柴火焰高。
2、这门课程中最应该采取哪种类型:特工团队
应该采取特工模式。 特工团队中每个人对软件开发的某个领域都达到了“专家”“高手”的地位,合作起来各司其职,效率和正确率会非常高。
首先,作为刚刚接触软件工程的学生,初学者想要在软件开发的每一个步骤都达到精通是很困难的,而特工团队中,每个人前期只要先学精自己喜欢的某个模块,这样学习合作起来更加适合初学者。
其次,软件开发是一个较为繁琐的过程,需要团队的合作。软件开发的过程中可以具体到每个模块,在遇到问题时,可以“专人”解决。
3、列出优劣
优点:
(1)效率高
(2)一出手就能解决别人解决不了的难题
(3)会成为其他一些技术不怎么好的员工的榜样,并帮助他人提高技能
(4)交流一些好的技术,开阔眼界
缺点:
(1)在大家协作完成一个功能后去和他人组队,那么新的小组成员还需要一个磨合期来使对方熟知起来比较耗时间不稳定。
(2)大多能力强的人都会有点心高气傲,这样的一群人聚在一起,会导致谁也不服谁,进而有损团队和睦