软件开发流程(Software development process)即软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。首先,开发者需要对软件系统进行系统设计。在概要设计的基础上,开发者需要进行软件系统的详细设计。详细设计应当足够详细,能够根据详细设计报告进行编码。编码完成后,需要测试编写好的系统。交给用户使用,用户使用后一个一个的确认每个功能。在软件测试证明软件达到要求后,软件开发者应向用户提交开发的目标安装程序、数据库的数据字典、《用户安装手册》、《用户使用指南》、需求报告、设计报告、测试报告等双方合同约定的产物。
开发流程:
第一步:需求调研分析
1.相关系统分析员向用户初步了解需求,然后用WORD列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,在这一步里面可以初步定义好少量的界面。
2.系统分析员深入了解和分析需求,根据自己的经验和需求用WORD或相关的工具再做出一份文档系统的功能需求文档。这次的文档会清楚利用系统大致的大功能模块,大功能模块有哪些小功能模块,并且还列出相关的界面和界面功能。
3.系统分析员向用户再次确认需求。
第二步:概要设计
首先,开发者需要对软件系统进行概要设计,即系统设计。概要设计需要对软件系统的设计 进行考虑,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、 运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础。
第三步:详细设计
在概要设计的基础上,开发者需要进行软件系统的详细设计。在详细设计中,描述实 现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。应当保证软件的需求完全分配给整个软件。详细设计应当足够详细,能够根据详细设计报告进行编码
在概要设计的基础上,开发者需要进行软件系统的详细设计。在详细设计中,描述实 现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。应当保证软件的需求完全分配给整个软件。详细设计应当足够详细,能够根据详细设计报告进行编码
第四步:编码
在软件编码阶段,开发者根据《软件系统详细设计报告》中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。在规范化的研发流程中,编码工作在整个项目流程里最多不会超过1/2,通常在1/3的时间,所谓磨刀不误砍柴功,设计过程完成的好,编码效率就会极大提高,编码时不同模块之间的进度协调和协作是最需要小心的,也许一个小模块的问题就可能影响了整体进度,让很多程序员因此被迫停下工作等待,这种问题在很多研发过程中都出现过。编码时的相互沟通和应急的解决手段都是相当重要的,对于程序员而言,bug永远存在,你必须永远面对这个问题,大名鼎鼎的微软,可曾有连续三个月不发补丁的时候吗?从来没有
第五步:测试
测试编写好的系统。交给用户使用,用户使用后一个一个的确认每个功能。软件测试有很多种:按照测试执行方,可以分为内部测试和外部测试;按照测试范围,可以分为模块测试和整体联调;按照测试条件,可以分为正常操作情况测试和异常情况测试;按照测试的输入范围,可以分为全覆盖测试和抽样测试。以上都很好理解,不再解释。总之,测试同样是项目研发中一个相当重要的步骤,对于一个大型软件,3个月到1年的外部测试都是正常的,因为永远都会又不可预料的问题存在。完成测试后,完成验收并完成最后的一些帮助文档,整体项目才算告一段落,当然日后少不了升级,修补等等工作,只要不是想通过一锤子买卖骗钱,就要不停的跟踪软件的运营状况并持续修补升级,直到这个软件被彻底淘汰为止。
测试编写好的系统。交给用户使用,用户使用后一个一个的确认每个功能。软件测试有很多种:按照测试执行方,可以分为内部测试和外部测试;按照测试范围,可以分为模块测试和整体联调;按照测试条件,可以分为正常操作情况测试和异常情况测试;按照测试的输入范围,可以分为全覆盖测试和抽样测试。以上都很好理解,不再解释。总之,测试同样是项目研发中一个相当重要的步骤,对于一个大型软件,3个月到1年的外部测试都是正常的,因为永远都会又不可预料的问题存在。完成测试后,完成验收并完成最后的一些帮助文档,整体项目才算告一段落,当然日后少不了升级,修补等等工作,只要不是想通过一锤子买卖骗钱,就要不停的跟踪软件的运营状况并持续修补升级,直到这个软件被彻底淘汰为止。
第六步:软件交付准备
在软件测试证明软件达到要求后,软件开发者应向用户提交开发的目标安装程序、数据库的数据字典、《用户安装手册》、《用户使用指南》、需求报告、设计报告、测试报告等双方合同约定的产物。
《用户安装手册》应详细介绍安装软件对运行环境的要求、安装软件的定义和内容、在客户端、服务器端及中间件的具体安装步骤、安装后的系统配置。
《用户使用指南》应包括软件各项功能的使用流程、操作步骤、相应业务介绍、特殊提示和注意事项等方面的内容,在需要时还应举例说明。
第七步:验收
用户验收。
团队具有四种类型:问题解决型团队,自我管理型团队,多功能型团队,虚拟型团队。
我们最喜欢的两个团队类型分别是自我管理型团队和多功能型团队
一,自我管理型团队,顾名思义它是工作团队的一种,保留了工作团队的基本性质,但运行模式方面增加了自我管理、自我负责、自我领导的特征。自我管理型团队通常由10-16人组成,他们承担着以前自己的上司所承担的一些责任。一般来说,他们的责任范围包括控制工作节奏、决定工作任务的分配、安排工间休息。彻底的自我管理型团队甚至可以挑选自己的成员,并让成员相互进行绩效评估。世界上许多知名的大公司都是推行自我管理团队的典范。但对自我管理型工作团队效果的总体研究表明,实行这种团队形式并不一定带来积极效果。在我国江浙一带的乡镇企业中,已形成了一些所谓的“小企业群小企业群集”,通过任务分解,迅速实现生产。
自我管理型团队,是新型横向型组织的基本单位。自我管理型团队是早期团队方式的发展产物。例如,许多公司都使用跨职能团队以获得跨部门的协作,用任务组来完成临时项目。还有的公司使用“解决问题团队”,这种团队由自愿临时参加的雇员组成,他们开会探讨一些有关改善质量、效率和工作环境的方式。
自我管理型团队,是新型横向型组织的基本单位。自我管理型团队是早期团队方式的发展产物。例如,许多公司都使用跨职能团队以获得跨部门的协作,用任务组来完成临时项目。还有的公司使用“解决问题团队”,这种团队由自愿临时参加的雇员组成,他们开会探讨一些有关改善质量、效率和工作环境的方式。
自我管理具有目标性,依懒性,自我管理性,自我领导性,自我负责性,良好的沟通性
①由公司中不同职能部门的人员所组成
②小型化,因为大型团队容易造成沟通障碍
③自我管理并被赋予相关的权力
④多功能化,即该团队能解决多方面的问题
二,多功能型团队是一种有效的团队管理方式,它能使组织内(甚至组织之间)不同领域员工之间交换信息,激发产生新的观点,解决面临的问题,协调复杂的项目。但是多功能型团队在形成的早期阶段需要耗费大量的时间,因为团队成员需要学会处理复杂多样的工作任务。在成员之间,尤其是那些背景、经历和观点不同的成员之间,建立起信任并能真正的合作也需要一定的时间。跨职能团队在实现隐性知识共享的过程中扮演着核心的角色作用。同样,它也可以使在这个团队的每一个成员在进行交流与沟通的同时,增长跨专业化的知识。至于跨职能团队的存在,问题可能不单单出在某个部门内部,同样,解决问题也无法依靠单独部门。需要有跨职能团队对源自不同业务流程中的要素进行统筹安排。来自某具体职能外的团队成员能带来客观的视角和全新的思维,可形成创造性的方案,解决和某具体业务流程相关的问题。团队要按照跨职能的方式来组织,这样可博采众长,集思广益,有效地开展流程变革和改进。
多功能型团队是由来自同一种等级、不同领域的员工组成,他们来到一起的目的是完成一项任务和课题。具有以下特点:任务导向性、人员依赖性与氛围民主性;探讨了多功能型团队的有效运行模式,以确保企业能真正孕育高绩效的多功能型团队。
多功能型团队是由来自同一种等级、不同领域的员工组成,他们来到一起的目的是完成一项任务和课题。具有以下特点:任务导向性、人员依赖性与氛围民主性;探讨了多功能型团队的有效运行模式,以确保企业能真正孕育高绩效的多功能型团队。