一.什么是开发流程?
在开发,运营,维护软件过程中的技术,做法,思想统一到一个体系中,叫做“软件开发流程”。
二.开发流程。
1.写了再改模式
开发人员拿到需求文稿后,编码成功,交付客户,客户反馈意见,继续编码,多次重复之后发布软件。
2.瀑布模式
遵循成熟行业[分析->设计->实现->销售->维护]的流程。由Winston Royce提出,并且在设计大型系统时需要改进,要做到相邻步骤的回溯,即【系统需求<->软件需求<->分析<->程序设计<->编码<->测试<->运行】。这个模型最好走两遍,收集反馈并改进。
瀑布模型的各种变形:
a。生鱼片模型(各相邻模块像生鱼片那样部分重叠),这个模型解决了各个步骤之间分离的缺点。
b。子瀑布模型(区别对待问题,大瀑布带着小瀑布),各个子系统统一到最后做系统测试。
3.统一流程
统一流程是重计划,重事先设计,重文档表达的集大成者。它的工作流是【a.业务建模b.需求c.分析和设计d.实现e.测设f.部署g.配置和变更管理h.项目管理i.环境j.初始阶段k.细化阶段l.构造阶段m.交付阶段】
4.老板驱动的开发流程
由行政领导主导的开发流程。
5.渐进交付的流程
当系统的主要需求和架构明确之后,软件团队进入一个不断演进的循环:[开发->发布->听取反馈->根据反馈做改进],重复这个循环,直到时间用完,钱花光,完成了计划的迭代次数,或者客户满意为止。
6.敏捷流程
A.什么是敏捷开发流程?
“敏捷开发流程”是一系列价值观和方法论的集合。
B.敏捷开发原则:
(1)尽早并持续地交付有价值的软件以满足顾客需求;
(2)敏捷开发流程欢迎需求的变化,并利用这种变化来提高用户的竞争优势;
(3)经常发布可用的软件,发布间隔可以从几周到几个月,能短则短;
(4)业务人员和开发人员在项目开发过程中应该每天共同工作;
(5)以有进取心的人为项目核心,充分支持信任他们;
(6)无论团队内外,面对面的交流始终是最有效的沟通方式;
(7)可用的软件是衡量项目进展的主要指表;
(8)敏捷流程应能保持可持续的发展。领导,团队和用户应该能按照目前的步调持续合作下去;
(9)只有不断关注技术和设计,才能越来越敏捷;
(10)保持简明——尽可能简化工作量的技艺——极为重要;
(11)只有能自我管理的团队才能创造优秀的架构,需求和设计;
(12)时时总结如何提高团队效率,并付诸行动;
C.敏捷的步骤:
(1)找出完成产品需要做的事情——Product Backlog;
(2)决定当前的冲刺(Sprint)需要解决的事情——Sprint Backlog;
(3)冲刺(Sprint);
(4)得到软件的一个增量版,发布给用户。然后在此基础上有进一步计划增量的新功能和改进;
D.敏捷流程对团队的要求:
自我管理,自我组织,多功能性。
7.MSF(Microsoft Solution Framework)
MSF的思想框架
(1)推动信息共享与沟通(要求所有信息公开公,开告知所有人。技术机密,安全性要保护);
(2)为共同的远景工作(有一致,明确的目标);
(3)充分授权和信任(所有成员都应该能得到充分的授权,有权在职权范围内按照自己的承诺完成任务);
(4)各司其职,对项目共同负责(每个成员都有自己的职责);
(5)交付增量的价值(重视商业价值,提供渐进的价值);
(6)保持敏捷,预期和适应变化(预期变化,适应变化);
(7)投资质量(对质量的重视,引发对质量的投资,引发对人,过程,和工具的投资);
(8)学习所有的经验;
(9)与顾客合作;
8.TSP的原则
优秀的模式和流程的共同点:
a.使用妥善定义的流程,流程 中的每一步都是可以重复,可以衡量结果的。
b.团队的各个成员对团队的目标,角色,产品都有统一的理解。
c.使用成熟的技术。
d.尽量多的收集数据,并分析使用数据。
f.制定合理地计划。
g.增加团队的自我管理能力。
h.专注于提高质量,全面细致的设计工作。
原文地址:http://www.cnblogs.com/xuedinedemiao/p/6885076.html