知己知彼,百战百胜。一个软件项目也一样,从项目一开始就应该分析清楚项目自身的特点,因地制宜,因时制宜的采用不同的方法论和工具技术来实现。
工欲善其事,必先利其器。而对于一个软件开发项目,最重要的器就是方法,工具和技术。而这三要素中重要的又是方法论,方法是基础,工具和技术更多是我们根据方法论选择的实现手段,是辅助要素。如果这个地方就出现了决策性错误,小一点是影响项目的质量和团队效率,大一点就是直接导致项目的失败。
1、方法论-项目的灯塔。
方法论是我们针对一个行业或领域提出的分析和解决问题的方法,是我们在总结和实践过程中高度抽象出来的理论,是经过实践检验和验证的具有科学依据的原理。你的成功是因为你站在前人的肩膀上,我们不应该凭空的去发明和创造,而应该根据项目特点,借鉴前人的经验和教训,选择合适的方法论去指导我们的项目运作。让我们来分析下软件项目管理中常使用到的方法论:
2、软件过程改进-CMM/CMMI,TSP,PSP
过程改进方法论是软件项目管理中最宏观的方法论,大中型的组织或机构可以实施CMM,而对于小型组织或个人可以采用小组软件过程或个体软件过程。软件过程成熟度指针对软件过程进行明确定义、管理、度量、控制的程度。它表明软件过程能力的有效性和增长的潜力,表明组织软件过程的丰富性及其应用于项目的一致性。
软件过程改进方法论类似于我们在项目中采用PDCA循环的方法,其重点在于分析和实践以及持续的改进。CMM只是告诉你要做哪些事情,但采用何种方法来做并没有明确的定义,所以CMM更像是高屋建瓴的一个东西。
3、分析和实现方法论-结构化分析,面向对象,面向方面,特征驱动
分析和实现的方法论归根到底现在常用的就是结构化分析设计和面向对象分析设计,结构化方法强调以实体关系图和数据流图分析为核心,通过数据流图的精华和变换事务映射,进行模块和单元划分,接口分析和设计。而面向对象分析和设计强调是对象和类,关注类的属性和行为和相互协作。通过用例建模,对象的结构建模,对象的行为建模,充分考虑封装,继承等面向对象关键特征进行分析和设计。
4、生命周期模型-瀑布,原型,增量,迭代,螺旋
选择什么样的生命周期模型是根据项目自身特点来确定的。每种生命周期模型都有自身的优缺点。对于大中型的复杂系统,前面的需求和系统分析没有搞清楚,后面的设计和实现根本无法进行,所以这种系统还是适合用瀑布模型按部就班的进行。对于需求多变,项目进度要求紧张,人员配置相对固定,这种情况更适宜于采用增量和迭代的方法进行。
5、工具和技术-提升效率的关键所在。
如果你不知道去哪里?给你张地图也没有用,所以方法论更多的是让我们走正确的路。但如何在正确的路上走的更快则要借助相关的工具和技术来提高我们的生产率。现在谁用汇编语言去实现MIS系统估计不能尊为天才,而只能尊为傻子了。现在相关的工具和技术很多,主要从软件开发生命周期模型的各个阶段来谈下相关的工具和技术的使用。
6、需求阶段工具:
需求阶段主要分为需求收集,需求开发和需求管理三个方面的内容。需求收集主要是如何捕获和描述清楚用户需求,可以用Excel来完成需求的收集;需求开发对于面向对象一般采用使用ROSE工具采用UML用例建模的方式进行,用例建模一般又分为用例建模,行为建模和界面建模三个层次的内容。需求管理一般采用RP工具进行需求的追踪,采用CQ等工具进行需求变更的控制。
7、技术+过程方法论-RUP,MSF
把R