|
3#
楼主 |
发表于 2018-4-28 15:27:53
|
只看该作者
目前很多公司在广泛使用的, Scrum是一个包括了一系列的实践和预定义角色的过程骨架(是一种流程、计划、模
式,用于有效率地开发软件)。Scrum中的主要角色包括同项目经理类似的Scrum主管角色负责维护过程和任务,
产品负责人代表利益所有者,开发团队包括了所有开发人员。在每一次冲刺(一个15到30 天周期 ,长度由开发团
队决定),开发团队创建可用的(可以随时推出)软件的一个增量。每一个冲刺所要实现的特性来自产品订单(pr
oduct backlog,我觉得翻译成“产品目标”更恰当), 产品订单(产品目标)是指按照优先级排列的需要完成的工作
的概要的需求(目标)。哪些订单项(目标项目)会被加入一次冲刺,由冲刺计划会议决定。 在会议中,产品负责
人告诉开发团队他需要完成产品订单中的哪些订单项。开发团队决定在下一次冲刺中他们能够承诺完成多少订单项。
在冲刺的过程中,没有人能够变更冲刺订单(sprint backlog),这意味着在一个冲刺中需求是被冻结的。
篇幅有限, 其它有关水晶等敏捷方法在这儿不展开了
边做边改模型(Build and Fix Model)
很多小型初创公司其实已演变为 边做边改模型, 对于开发人员来说是痛苦的, 如下图
当一个软件产品在没有规格说明或主要设计的情况下被开发时,开发者往往不得不重新对产品编码多次直到他们
得到正确稳定的产品。这种开发模型就是边做边改模型。
边做边改模型的最重要缺点是存在于需求。设计和实现中的错误要到整个产品被构建出来后才能被发现。
这是一种类似作坊的开发方式,对编写几百行的小程序来说还不错,但这种方法对任何规模的开发来说都是不能
令人满意的,其主要问题在于:
1) 缺少规划和设计环节,软件的结构随着不断的修改越来越糟,导致无法继续修改;
2) 忽略需求环节,给软件开发带来很大的风险;
3) 没有考虑测试和程序的可维护性,也没有任何文档,软件的维护十分困难。
其它模型还有 快速应用开发(Rapid Application Development), 喷泉, 变换模型,智能模型,WINWIN,并发开发模型,基
于构件的开发模型, 基于体系结构的开发模型, Adaptive Software Development
创业公司的软件开发
“完成比完美重要”以及“快速移动且要突破一些事情”,当你进入到创业公司的工作区域时会看到这样的箴言。
流程管理是敏捷的、进化的、机会主义的
在创业公司中流程管理代表了用于管理产品开发的所有工程活动。因为灵活性对于创业公司来说能够使用频繁的
变化至关重要,敏捷方法论被认为是最可行的流程-他们鼓励变化、允许开发去适应业务的策略。以增量和迭代
的方式快速发布可以缩短从创意构思到生产部署的时间。其中一个敏捷的变体就是精益方法,此方法倡导识别软
件业务中风险最大的部分,且据系统的测试提供最小化的可行办法,以及在下一代产品迭代时的修改计划。在此方
面,原型是缩短上市时间必不可少的。为了能够更好的设计原型,在第一阶段需要实现“软编码”的进化工作流程,
直到找到最优解为止。尽管在开发中用来鼓励快速的开发原型使用了多种方法论,但是创业公司没有一个是按照某
种方法论严格执行的。然而创业公司的不确定和快速变化的性质驱使他们寻找最小化的流程管理来实现短期的目标
,以快节奏的学习过程来适应用户,从而解决市场的不确定性。创业公司急于寻找利益增长点和获得投资,从而得
到进一步的发展。这也就意味着软件质量并非是他们主要关心的。为了能够快速的验证产品,他们倾向于利用特定
的敏捷或精益方法。
根据市场需求使用众所周知的框架来快速的适应产品的变更;
通过已有的组件来使用进化的原型和实验;
持久的客户承认成立专门的团队来作早期的采用者;
持续的价值交付,专注于从事那些为付费用户服务的核心功能;
团队的授权会影响到最终到结果;
使用量化来快速的学习用户的反馈和需求;
使用容易实现的工具来促进产品的开发,且要掌控快节奏的、不断变化的信息。
沟通
沟通包括三个部分:视觉、口头和笔头。去掉视觉和口头元素,沟通只能保留原本7%的信息。跟旁边隔间的程序
员在网络上沟通,实际上跟阅读笔头文字没有区别。您可以用文字发送问题(写邮件等于另一堆笔头文字),得到
回应(也是邮件)。如果不能提供程序员可以面对面沟通的区域,我们就进一步限制了沟通。隔离也会降低士气。
第一条:组织不应做任何事情限制沟通。典型的、也是很常见的障碍,就是格子间。在行动相对不受限的开放空间
中,团队工作更有成效。
第二条:不要将两个甚至更多团队放在同一个项目区域中。与手上任务无关的人也是障碍,这些外人的出现会造成
噪音,降低士气。
第三条:为开发团队提供白板、会议桌、马克笔。
第四条:不要试图在项目之间分享团队成员。
软件过程改进
过程改进(Software Process improvement,SPI)帮助软件企业对其软件(制作)过程的改变(进)进行计划、
(措施)制定以及实施。 他的实施对象就是软件企业的软件过程,也就是软件产品的生产过程,当然也包括软件维
护之类的维护过程,而对于其他的过程并不关注. 五个原则:
·注重问题
·强调知识创新
·鼓励参与
·领导层的统一
·计划不断地改进
为了决定你的组织是否处于CMM第一级,判断你的软件和测试团队实践是否符合以下的任何一个描述:
为了获得灵活性,软件过程大体是在项目过程中由从业者和他们的管理者临时准备的。
即使确定了一个软件过程,它不是严格维护或强制从每个阶段或迭代中严格执行的。
团队的焦点是解决眼下的危机(救火)。
当强加了严峻的截止时间时,产品的功能和质量不得不对时间表做出妥协。
意图是加强质量的活动,比如结构化的评估和测试,在项目落后于时间表时经常被削减或取消。
CMM的核心思想是: 过程, 要事先定义; 过程的实施效果, 要不断验证(可以持续改进); 过程中的基本活动形式,要保证.
软件能力成熟度模型集成(CMMI)
将现有的实施以及未来的各种能力成熟度模型进行了集成,目的就是增强并改进软件过程,以最低的成本最高的效
率,开发出最符合客户需求的高质量软件。
目前通用的成熟度模型有五级:
初始级:混乱无序的软件过程,成功与否完全依赖于个人的努力。
可重复级:有基本的项目管理过程去跟踪项目进度、成本等。
已定义级:具有过程的文档化、标准化。
量化管理级:软件质量和过程有的详细度量数据支持,并有定量的控制。
优化管理级:过程量化,并定量反馈信息,可持续改进。
人力资源能力成熟度模型PCMM(People Capability Maturity Model)
是美国卡耐基.梅隆大学的软件工程研究院(SEI)开发的一个管理架构,于1995 年推出第1版标准,随即在世界范围
内被各种商业组织、政府组织以及其他类型的组织广泛运用。后来又推出第2版标准,促使PCMM更为科学化、更具
有适用性和广泛性,同时进行了PCMM评估方法的拓展和完善,使PCMM更具实用性。
TMM测试能力成熟度等级
混沌级
1、没有专业测试团队
2、没有建立测试需求和测试用例管理
初始级
1、建立了专业测试团队
测试团队
2、实现了需求、测试用例和测试执行的管理
需求管理
测试用例管理
测试执行管理
缺陷跟踪
提高级
1、划分了测试分析、测试设计和测试执行阶段
测试需求分析
2、引入了测试分析和测试设计方法,保障了测试覆盖度
测试用例设计
评审管理
优化级
1、引入缺陷分析,发现软件开发和测试过程中质量改进点,不断优化流程
测试计划
2、引入测试度量,使得测试过程可视化,达到量化管理目标
测试度量
缺陷分析
Final
组建敏捷团队, 需要优秀的工程师, 持续长期招聘, 创造公司的影响力, 招聘优秀与合适的人容入团队. 层级组织不
能快速应对新的市场机遇和变化,这会妨碍公司的长期生存。组织应该在跨职能团队和董事会之间分配管理职责,
从而实现扁平化并提高整体敏捷. 每一个理智的人都想在一个开放、透明、诚实、民主的环境中工作,在那里他们
的知识和诉求能够得到响应。拥有中层管理的传统的层级结构往往不能做到这一点。它仍然能够非常有效地解决问
题,但是它往往是一个冰冷的环境。敏捷团队是自组织的团队,拥有制定计划和做技术决定的自主权.如果项目成员
足够优秀,那么他们几乎可以采用任何一种过程来完成任务. 如果项目成员不够优秀,那么没有任何一种过程可以弥补
这个不足.
团队持续进化, 淘汰白食者与未被进化者, 成员必须在环境中自我学习与进化. 凡事需要度量, 有度量才有管理.
对于短期缺乏优秀工程师组织, 还是先成功实践CMMI过程半年以后, 再逐步尝试转化于敏捷开发. 从其中需要经
过组织与企业文化变革 |
|