谈谈变味的敏捷开发

【Windows】 解决联想为主的所有自带摄像头(integrate camera)打不开的毛病(特别点名小新、thinkbook、thinkpad、y7000...) 解决联想系列电脑打不开自带摄像头的问题 阅读详情

转载:https://yq.aliyun.com/articles/130605

敏捷开发(Agile Development) 随着“敏捷”一词出现在越来越多的项目中,于是,敏捷开发本身也被赋与了越来越多的意义,而敏捷的真正内涵反而变得越来越模糊。如何迈出敏捷开发第一步?是按照敏捷宝典、操作指南或是教父语录,还是因地制宜、因项目定方法?完成所有这些工作后,我们就真的“敏捷”了吗?

  一、前言

  Agile是指企业能够对外部环境做出速捷、有效的反应,是未来企业的必备素质。21世纪企业面临的竞争环境将是一个不断变化、不可预测的环境。由于高新技术的出现和更迭越来越快,产品的生命周期日益缩短,企业要面对这样的新的竞争环境,抓住市场机遇,迅速开发出用户所需要的产品,就必须实现敏捷反应。

  狭义地讲,敏捷企业就是将柔性的先进制造技术、熟练掌握生产技能、有知识的劳动力以及促进企业内部和企业之间的灵活管理三者集成在一起,对千变万化的市场机会做出快速、有效的响应。敏捷企业强调人、组织和技术的有机结合。通过这三者的紧密结合,敏捷企业可以发挥最佳的整体效益。评价一个企业敏捷性的具体指标是时间、成本、稳健性(Robustness)和适应范围。对敏捷企业的广义理解,可以认为敏捷企业是一个CIMS(计算机集成制造系统)、动态联盟、并行工程、仿真制造、高素质员工等多方面的系统集成,是一个基于CIMS、在CMS基础上发展起来的一个更高层次的集成大系统。

  二、变味的敏捷

  敏捷是大家在一起高效率地工作,清除所有沟通上的障碍,关注于增值的活动,从而使得开发更加成功。敏捷是大家肩并肩地工作,而不是什么都通过文档。敏捷是管理者积极地参加到项目管理中而不是整天去写状况报告,用那个来监督到底发生了什么事情。敏捷是开发人员和涉众(项目开发中涉及的从需求到最后交付的各种人员)在一起制定实际的计划,而不是用复杂的微软Project去制定一些几乎没人看的进度表。

  公平地说,很难设想敏捷术能如何发挥作用,尤其是在一些软件开发本身都问题重重的传统组织中,被误导过的敏捷更是难以帮上什么忙。

  敏捷开发,看到过这个词时,很多人一直没有什么深刻的体会,也没有仔细去研究到底什么才是敏捷开发。而一直在很多人的思想里,敏捷开发的印象就是,开发速度比较快。没错,做互联网的,快确实是一个制胜的法宝,那么敏捷开发似乎也就是在互联网应用的开发中最适合的方法了。那么敏捷开发中的参与者应该是什么状态?这似乎成了一直以来困扰很多管理者的严重问题。可以说,在敏捷开发中,并没有觉得有多敏捷,进度一拖再拖,问题一个接着一个,让我觉得我们是在进行慌乱开发。为什么会这样?

  另外,关于实施敏捷的效果也是充满置疑之声。我们经常看到一些号称Agile的国内项目,按照菜谱、操作指南和教父语录的提示,采用了许多花哨的技巧和实践(做法),是啊,表面上确实Agile了,那么结果呢?项目还是不能按时完成,甚至严重超支和超时,这能叫“敏捷”吗?

  三、敏捷十戒

  1、天报制度

  就算是进行远程开发或是两地使用开发,项目组的成员每天至少碰一次,不管是当面的,还是通过其它方式,如通过电话、email、Skype或其它。进行敏捷开发的时间,任何团队都不能以任何理由进行孤立的开发。

  2、例会制度

  即使每天通过Email给主管汇报工作,但有时主管还是无法及时准确的掌握项目组成员的状况及工作量。此时,通过每周一小时左右的例会将会有效的解决此问题。通过例会,大家面对面的就某些问题进行共同的探讨与讨论,找到共同的解决方案。

  3、版本控制

  如果没有一台干净的电脑来进行团队代码管理的话,则很有可能导致代码的混乱。而每天只须花很少的时间,哪怕一天一次,进行及时的数据提交与代码提交,则可以有效的保证团队之前代码的同步及代码的备份。

  4、需求失灵

  即使手里拿着30页且客户进行了签字的需求说明,有可能仍然不知所措。相对起那些良好的设计、精确的分析等,与客户持续的沟通、及时的反馈、不断的演示这些工作显得更加的有效果。可以有效的获得需求变化,减少误解,更加准确的把握用户的需求。

5、单元测试是QA的工作

  很多开发人员,甚至一些高级的软件开发人员,对于单元测试没有足够的认识,在行动上也没有足够的注意。大家都一致的认为那是QA的事情。就开发人员来讲,单元测试应该是一种白箱测试,能从功能上充分的测试软件的功能性。而对QA来说,只能是一种黑箱测试,无法深入的去分析代码的优势,只是从用户的角度进行功能上的测试而已。

  6、质量保证是QA的责任

  自从有了质量管理这个词以及后来产生的质量管理部门后,很多开发人员就理所当然的认为质量保证是QA的责任了。其实每一个人都需要对软件的质量负责,特别是开发人员。Bug越最早发现,那么解决它的成本就越低。

  7、项目进度风险控制

  也许一个项目需要18个月左右才能完成,但在没完成之前,谁也无法进行比较准确的时间估计。无法确定需要多长的时间进行设计、编码及软件组件的组合。但进行项目设计、实现及融合的人应该相对比较准确的掌握与估计项目的时间。因此,需要进行项目进度的风险控制,风险总是存在的,但要进行有力与及时的控制。充分意识到项目中可能会存在的风险因素,在制定计划时预留一定的时间,如果在项目进行中出现了没有想到的问题,根据其重要性,考虑压后解决,要在计划的时间内把计划的事情完成好,并为后续解决问题争取更多的时间。

  8、架构师身体力行

  很多软件架构师基本上不写代码,这也许是好事。软件架构师嘛,当然是比较高级的,他们对环境、语言、类库方面都可能比软件开发人员要更加在行,但他们一般不编码。这样的架构师是危险的,特别是那些基本上不与首席开发人员进行沟通或咨询的架构师,离项目失败可能已经不远了。

  9、牵一发而动全身

  很多时间,在功能上做了一个很小的变动,往往导致花费好几天的功夫来进行软件的集成与整合。如果没有持续的整合、及时的回归测试、可靠的整体设计,一些看起来非常微小的修改都有可能导致很大的麻烦。

  10、加大管理执行力

  目前项目中,开发者或者说参与人的状态是混乱的,或者说是慌乱的。那问题在哪里呢?是工作流程出了问题?不应该啊!在项目启动前已经定了一个看似美好的流程,而且是经过参与人讨论一致通过的。那么问题在哪里呢?原来是沟通、传达出了问题,执行力不够。那么,就必须加大执行力,今日事今日毕,这是必须的。

  另外,在一些产品级的软件开发中,觉得要实施敏捷式开发,我觉得也有一个不好解决的问题:没有具体的客户!没有具体的客户,那你的沟通去哪里寻找呢?一般的做法也是给一些有兴趣的用户发布Alpha版本,或者是beta版本的软件。可是当软件都到了Alpha/beta版本的时候,软件还有迭代的余地吗?未必!从我个人理解的角度来看,敏捷开发的适用范围还是很有局限性的。个人认为最适合使用敏捷开发的软件必须要有非常明确的客户才能进行,而有明确客户的情况以定制型软件为主。所以,我觉得最适合用敏捷方式开发的软件应该是——定制软件!

  四、小结

  记得Jim Highsmith在他的《敏捷项目管理》一书中这样写道:敏捷是指在动荡的业务环境中,适应变化并创造变化,从而获得价值的一种能力。同时敏捷是平衡灵活性和稳定性的一种能力。由此可见,望文生义地把“敏捷”理解为“做得快”也颇可商榷。如果缺乏有效的实施指导、忽视严格的敏捷实践,单凭着高层面的理解甚至“文化”就开始盲目前行,往往会因为缺乏对质量的有力保障而失去平衡,最终欲速则不达。


219页华为供应链管理:市场预测S&OP计划、销售预测与存货管理精要 S&OP计划的整合作用:S&OP是一种综合的销售和运营计划流程,它将市场预测、生产能力、库存水平和财务目标整合在一起,以确保企业能够平衡供需,实现最佳的运营效率。持续监控与改进:市场预测、S&OP计划、计划委员会的决策以及存货管理都需要持续的监控和评估。供应链策略与执行:华为ISC拥有清晰的供应链策略,并通过SISC架构实现了策略的有效执行,包括供应链网络设计、库存管理、物流优化等。持续的供应链创新:华为ISC不断探索新的供应链管理方法和技术,如数字化供应链、智能物流等,以适应全球化和市场的快速变化。 阅读详情

相关推荐

【学习系列】SAP RAP 18:Unmanaged场景开发示例-基本数据更新

本文介绍了在SAP RAP中unmanaged模式下从0到1的开发步骤。unmanaged模式下需要自行实现数据更新、权限检查等逻辑,适用于操作现有数据库表或复杂业务场景。文章以两层的采购订单对象为例,详细说明了创建技术对象(表、视图、行为定义等)的过程,并重点阐述了如何实现CRUD相关方法的核心逻辑。通过创建缓冲类来处理交互阶段和保存阶段的数据操作,确保事务一致性。完整代码展示了抬头层级的增删改查功能实现,为后续明细层级的开发奠定了基础。

DeveloperMrMeng的博客 601

什么是敏捷开发敏捷开发流程的8个步骤

敏捷开发(Agile)是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。简单地来说,敏捷开发并不追求前期完美的设计、完美编码,而是力求在很短的周期内开发出产品的核心功能,尽早发布出可用的版本。然后在后续的生产周期内,按照新需求不断迭代升级,完善产品。是谁这么厉害,提出了敏捷开发思想?是一位名叫 Martin Fowler 的美国大叔。

DreamSun的博客 5万+

c++对halcon的动态链接库dll封装及调用(细细讲)

本文详细介绍了将Halcon图像处理算法封装为C++动态链接库(DLL)的完整流程,包括7个关键步骤:1)封装Halcon函数并导出CPP文件;2)在C++项目中配置Halcon环境(包含目录、库目录设置);3)验证Halcon代码;4)创建DLL项目并进行环境配置;5)编辑DLL并导出生成文件(.dll、.lib、.h);6)在主项目中配置DLL调用环境;7)编写测试代码验证功能。通过这个流程实现了Halcon算法的模块化封装和复用,文中提供了具体的配置路径和代码示例,重点说明了环境配置细节和文件结构安排

Tianwen_running的博客 934

什么是敏捷开发

敏捷开发的实现主要包括Scrum与XP(极限编程,ExtremeProgramming),还有其他的一些方式。同样是敏捷开发,XP极限编程更侧重于实践,并力求把实践做到极限,实践可以是测试先行,也可以是结对变成,关键要看具体的应用场景。SCRUM则是一种开发流程框架,也可以说是一种套路。SCRUM框架中包含了三个角色,三个工件,四个仪式。其目的是为了有效完成每一次迭代周期的工作。SCRUM是一个重点。SCRUM是一个适用于增量式产品开发的管理框架,由一个5-10人左右的跨职能和自组织的团队组成。它提供了一个

Moneys的博客 4万+

开发模式-敏捷开发

随着软件开发技术的不断发展,现在出现了很多种不同的开发模式,其实敏捷开发已经成为现在很多企业开发应用程序都想要选择的开发方案,那么什么是敏捷开发呢?敏捷倡导的是用工作的软件即文档**(核心是代码即文档)**。整个项目用于产品开发的文档不是一开始准备好的(甚至都没有RP原型设计),而是在过程中”及时的“ just-in-time准备出来的,因此,我们看到的是非常简单的且常常被放在最后处理的文档(在项目中涉及到移交或问题分析时这一点显得尤其突出)

沉浸式Study 1万+

敏捷开发简介

敏捷开发 一.简介 什么是敏捷开发敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。 怎么理解呢?首先,我们要理解它不是一门技术,它是一种开发方法,也就是一种软件开发的流程,它会指导我们用规定的环节去一步一步完成项目的开发;而这种开发方式的主要驱动核心是人;它采用的是迭代式开发; 为什么说是以人为核心? 我们大部分人都学过瀑布开发模型,它是以文档为驱动的,为什么呢?因为在瀑布的整个开发过程中,要写大量的文档,把需求文档写出来后,开发人员都是根据文档进行开发的,一切

korn的博客 4885

敏捷开发(scrum)简介

敏捷开发(scrum)是一种软件开发的流程,强调快速反应、快速迭代、价值驱动。Scrum的英文意思是橄榄球运动的一个专业术语,表示“争球”的动作;运用该流程,你就能看到你团队高效的工作。 一、四大价值观(特点) 敏捷开发的特点就是下面4句话: 「个体与交互」胜过「过程与工具」 「可以工作的软件」胜过「面面俱到的文挡」 「客户协作」胜过「合同谈判」 「响应变化」胜过「遵循计划」 说明: (1)敏捷开发(scrum)适用于竞争激烈,快速变化的市场。 敏捷的客户协作观念,快速迭代能帮助团队以最小成本,最快速

清平乐的技术专栏 9020

谈谈软件项目管理——敏捷开发

敏捷开发(Agile Development) 随着“敏捷”一词出现在越来越多的项目中,于是,敏捷开发本身也被赋与了越来越多的意义,而敏捷的真正内涵反而变得越来越模糊。如何迈出敏捷开发第一步?是按照敏捷宝典、操作指南或是教父语录,还是因地制宜、因项目定方法?完成所有这些工作后,我们就真的“敏捷”了吗?   一、前言   Agile是指企业能够对外部环境做出速捷、有效的反应,是未来企业的

Alan_Wdd的专栏 2312

参加2018年完美世界GameJam的体会

  6月1号-3号参加了完美世界举办的上海站GameJam。本场的规则是在48小时内,做出一款主题为“萌”的游戏,最后所有队伍分别演示。我们团队一共6人,我名义上是队长,实则后勤部长(笑)。队伍成员都没有实际游戏项目经验,也基本上是第一次参加GameJam。而我更是一个接触游戏引擎才一个月的新新手。我们大都抱着见见世面、膜拜大佬的心态参赛的。最后作品居然很幸运地获得了上海站前三的成绩,难以置信。 ...

gaming & coding 3025

关于SCRUM的一点想法

公司推行SCRUM有一段时间了,一直想把自己的想法整理一下写点东西,正好看到了这个帖子http://www.iteye.com/topic/748985,参与进去进行了讨论。把自己的回帖贴在这里,基本能完整表达我对SCRUM的看法。     简单一句话,我认为SCRUM不是一个拥抱变化的软件方法。     写道 topgun 写道 先不跑题,说说我们实践过的几种进度反馈方式: 站立会议,...

u012619290的博客 233

敏捷开发:以人为本的高效开发模式

敏捷开发以人为本,强调个体和交互的价值,倡导响应变化而非盲目遵循计划,推崇增量迭代式的开发流程。这种方法非常适用于小型项目,尤其是在需求不完全明确或经常变化的情况下。通过小步快跑的方式,敏捷开发能够高效应对复杂的项目挑战。 本文将深入探讨敏捷开发的核心理念、敏捷宣言的四大价值观以及敏捷开发如何在实践中应用,并最终分析敏捷开发如何在实际开发过程中提供了更大的灵活性和可适应性。

cooldream2009的博客 2586

Scrum 敏捷开发

什么是敏捷开发敏捷开发是一个术语,用于描述迭代软件开发。迭代软件开发通过在短增量完成工作(通常称为冲刺, Sprint)来缩短 DevOps 生命周期。冲刺通常长达一到四周。敏捷开发通常与传统或瀑布式开发形成鲜明对比,后者会提前规划大型项目,并根据计划完成它们。每次冲刺交付生产质量代码都需要敏捷开发团队来加快速度。所有的编码、测试和质量验证都必须在每一次冲刺 (sprint) 中完成。除非团队已正确设置,否则结果可能低于预期。虽然这些失望提供了很好的学习机会,但开始之前,学习一些关键教训会很有帮助。

似水流年的博客 1万+

一看就会的敏捷开发

敏捷开发: 就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。 优点: 1、敏捷开发的高适应性,以人为本的特性。 2、更加的灵活并且更加充分的利用了每个开发者的优势,调动了每个人的工作热情。 缺点: 由于其项目周期很长,所以很难保证开发的人员不更换,而没有文档就会造成在交接的过程中出现很大的困难。 传统瀑布开发优缺点: ...

东北溜达滑的博客 1790

敏捷开发-互联网时代的软件开发方式

敏捷开发模式简介

m0_37258559的博客 1535

软件工程务实——敏捷开发

敏捷软件开发( agile software development), 又称敏捷开发,是从20世纪90年代开始逐渐引起广泛关注的-些新型软件开发方法,它是一类轻量级的软件开发方法,提供了一组思想和策略来指导软件系统的快速开发并响应用户需求的变化。随着软件交付周期的日益加快,迭代式敏捷开发方法渐成标准,已经成为大多数软件开发团队的必选项。迭代对整个团队的需求、架构、协同及测试能力都提出了更高的要求,敏捷可以被看成是迭代式开发的一种导人方式,只不过敏捷的范围其实比迭代化开发更大些。

weixin_64278441的博客 3327

敏捷开发之开发流程

​ 敏捷如果用好了,真的可以提高产研效率,拥抱变化、快速迭代,但是敏捷也不是万金油,需要满足天时地利人和,条件有些苛刻老板大力支持:这个是一切的前提,比如我们之前是老板大力推广敏捷,全部门就能搞起来,后来老板方向变了,敏捷就不搞了;项目能支持小步迭代:敏捷比较适合探索类的项目、或者是 APP 之类的迭代快的项目,因为需求非常容易变更、任务好拆分;如果是传统项目,需求一开始就定好了,任务也不好拆,你就还是老实用瀑布模型吧;团队成员闭环。

大张伟 3695

什么是敏捷开发?教你正确理解敏捷开发

敏捷开发是相对于瀑布开发来说,一种轻量级的软件开发方式。敏捷开发是为了快速响应需求变化、通过组建跨职能团队实现持续不断的交付高质量的产品的方法的集合。所有符合敏捷宣言和敏捷开发十二项原则的方法都可以是敏捷开发的一种实践。 在大多数的敏捷开发实践过程中,团队会组合应用多种敏捷开发的实践,常见的方式是Scrum模型和看板的方式,并结合DevOps实现持续集成与持续部署等实践来推进敏捷开发。下面以一个团队的一次迭代举例说明敏捷开发过程。 一、需求梳理 在敏捷开发之前,基于需求开展敏捷协同工作,将需求尽可

weixin_42556618的博客 6254

敏捷开发流程

敏捷开发流程介绍

korn的博客 2968

项目管理-敏捷开发

敏捷在项目管理中,现在越来越成为主流,我们特别是在IT领域,敏捷已经成为必备的知识。本文主要是对敏捷及其相关知识进行了梳理,包括敏捷的发展、定义、原则、组成等,并着重说明了scrum敏捷框架以及用户故事,并展望了敏捷未来的发展。本文为大家提供了全面的视图,使大家可以对敏捷可以有一个全方位的理解和认识。

rangdizhen1783的博客 1719

项目管理 | 一文读懂什么是敏捷开发管理

敏捷开发管理是一种基于灵活性和快速响应变化的软件开发方法论。它强调团队合作、自组织和快速迭代,旨在更好地满足客户需求、提高交付速度和质量,以及适应不断变化的市场需求。敏捷开发中的“敏捷”一词来源于英文“agile”,字面意思是“灵活的、敏捷的”,在软件开发领域,它代表了一种能够快速适应和响应变化的开发方法和理念。

Teambition的博客 3154

html+css+js网页设计 厦门旅游网14个页面 大学生HTML5期末作业 Web前端网页制作 html网页制作 html css网页制作成品 大学生html网页制作作业 html5+css3

预览地址:https://blog.csdn.net/qq_42431718/article/details/144116189大学生HTML5期末作业 Web前端网页制作 html网页制作 html css网页制作成品 大学生html网页制作作业 html5+css3+js html+css+js网页设计 厦门旅游网14个页面

eetop.cn_Mosfet Models for Spice Simulation, Including BSIM3v3 and BSIM4.part2

第2部分Mosfet Models for Spice Simulation

上一篇: 敏捷个人和敏捷开发
下一篇: 从瀑布模型、极限编程到敏捷开发
wer0735
博客等级 码龄14年 159粉丝 67原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值