敏捷原则

敏捷需求分析之INVEST原则 通过 INVEST 原则,团队可确保用户故事的有效性,避免需求模糊、进度延迟等问题,推动敏捷开发高效落地。 阅读详情

为了解决软件研发的工程问题,十多年来,特别是2000年后,各种现代软件研发模式应运而生。比如阶段式发布(Staged Delivery)、极限编程(eXtreme Programming)、统一过程(Unified Process)以及Scrum。每一种软件研发模式都有一大批追随者和实践者。经过大规模应用,这些现代软件研发模式相对于传统的瀑布模型的优势越来越被广泛认同。《人月神话》说面对软件研发的工程问题,过去、现在、将来都没有银弹(Sliver Bullet)。这些现代软件研发模式或许也还不是真正的银弹,因为毕竟软件研发在其本质上是创新性的工作,整个过程充满风险,充满失败的可能。但是这些现代软件研发模式的出现,给人们看到了解决软件研发工程问题的曙光,并且已经领略到了其巨大的威力和生命力。

 

既然现代软件研发模式这么好,那我们就赶紧用上吧。

 

可问题来了,林林种种的关于软件研发模式的书充斥书店,对于这个领域的初学者,似乎较难入门。毕竟这些模型方法论出现时间还不长,还没有单本进行系统化总结的书,或许这个领域本身还处在一个不断发展的阶段,各种新观点新实践还在不断涌现。除了书太多,人们也发现限于现实工作环境,很难在日常工作中找到一个完美的环境去尝试、去实践这些方法论。在我的职业生涯,我也经历了若干种软件研发模式。从最初微小公司的没有开发过程,到一些“大公司”的臃肿开发流程,我也时时困惑于哪里有“适合天才生长的土壤”。毕竟绝大多数开发人员不是老板,必须要遵守公司所谓的制度。

 

面对琳琅满目的书籍,形形色色的“最佳实践”,以及现实的工作环境,我们怎么才能把这些现代软件研发模式有效地应用于我们日常研发工作中,从而真正为我们解决问题,提高生产力呢?毕竟研发工作是开发人员一定要做的,以最快的速度,最高的质量完成分配给你的研发任务,究其根本还是于我们自己有利,至少使你不必整天担心最后期限,担心无止境的加班。我的经验是首先学习各种方法论中最经典的书,先站在巨人肩膀上,然后思考隐藏在各种方法论背后本质的原则,最后在日常工作中在自己最大可控范围内以应用这些原则为根本,找到最简单最易操作并能持久的实践方法,最终形成自己的“最佳实践”。我们不一定能改变环境,但是经过努力,我们一定可以改变自己。

 

在后面章节,我会跟大家讨论我亲自运用过的、切实提高了我的软件研发生产力的实践方法。不过在进入那些话题之前,让我们首先探讨隐藏在现代软件研发模式后面普适的道理和原则。毕竟人类是理性的动物,在真正认清事物的本质之后,我们才会自觉自愿地运用,也才能保证我们使用的方法不会貌合神离地偏离原来的初衷。

 

前面谈到,现在有很多不同称谓的现代软件研发模式,如果要穷举,估计要用尽你的十指。那么用“敏捷(Agile)”来称呼他们吧。其实敏捷本身就是这些方法论最大的一个特点。因为软件研发本质上是个创造性的工作,唯有用敏捷灵活的态度来认识它、安排它,才有可能达到最佳的开发效果。

 

敏捷把整个软件研发生命周期划分为多个短迭代周期。

针对软件研发质量和进度较难控制和跟踪的特点,敏捷用多个短迭代周期来组织整个软件研发。每一次迭代就是对软件研发质量和进度进行一次最真实有效的检验,从而让我们得到最真实可信的结论。即便这些结论告诉我们软件项目进展的比最初预期的慢,比最初人们想象的有更多困难,我们也可以更早的做相应安排,避免最后一分钟意外。

 

敏捷提倡及时的沟通。

在软件研发过程中,程序员多数工作时间是一个人安静地跟电脑打交道,这种特殊的工作形态比较容易造成项目成员之间信息交流不及时、不准确。敏捷倡导及时有效的沟通,通过每日站会和平时及时的口头交流,让每个项目成员获得最真实、最及时的信息。

 

敏捷鼓励最终用户或用户代表介入整个研发过程。

针对软件需求较难搜集和需求经常变更的特点,敏捷提倡以多种形式让用户更早更长介入整个研发过程,以最大可能保证最终软件符合用户需求,让用户满意。

 

敏捷注重有效的评审。

人是容易犯错误的。敏捷针对这一特点,对每个研发环节的输出结果,都进行有效的评审。文档、代码、测试用例都需要进行严格的评审,避免“木桶效应”决定软件的质量和进度。

 

敏捷认为测试贯穿整个研发过程。

敏捷不相信个人主观的假定。任何模块、任何功能的完成情况必须经过让人信服的检验。敏捷认为避免Bug的第一任务人是程序员自己。任何模块在宣布完成或者提交代码库供别人使用前,必须进行充分的单元测试。

 

敏捷鼓励做真正增加价值的工作。

敏捷提倡以辩证的态度来对待软件研发过程中“必须”要做的任务。“只做”那些真正有利于加强沟通,提高软件质量和进度的事。

 

敏捷认为代码质量高于一切,要求无情的重构。

软件最终的质量取决于代码,因此软件研发周期的大部分时间和程序员大部分精力应该理所应当的用在提高代码质量上。敏捷还认为,第一遍完成的软件代码不一定是最优的,而是需要经历一定的演化周期、多次重构才能剔除瑕疵、达到完美。

 

敏捷倡导最大限度地自动化日常任务。

敏捷倡导我们更聪明的工作,让机器和工具为我们完成日常不断重复做的、机械的工作:自动代码编译,自动运行单元测试,自动代码检查……

 

洪七公说降龙十八掌招式不重要。软件研发也一样,在选择适合你个人的,适合你的团队的切实有效的方式、方法时,多问问做这件事是否带来真实的价值,是否有利于团队沟通,是否有利于提高软件质量,是否是最低代价的。只要正确运用了敏捷原则,经历几个项目周期的尝试、反思、改进,降龙十八掌的威力一定可以显现。

《敏捷宣言》十二大原则的简单解释 《敏捷宣言》十二大原则的简单解读 敏捷方法已成为项目管理的常用方法。 它建立在2001年由一组软件开发人员创建的12条原则的基础上。他们的宣言概述了一组关键原则,旨在确保公司优先考虑正确的事情。 即:客户满意度,协作,适应变化等。 这12条敏捷原则可以支持企业简化其产品开发周期,并通过灵活的反应性系统获得更好的结果。 客户应尽快收到成品,并提供宝贵的反馈意见以告知将来的版本。 敏捷原则可以应用于不同规模的团队,在信任个人完成工作的同时,建立更紧密的工作关系。 敏捷的开发周期包括“冲刺”或“迭代”,这些 阅读详情

相关推荐

实战解析:基于Python的APT攻击检测与ATT&CK框架应用

本文通过实战案例,详细解析了如何利用Python编程语言结合MITRE ATT&CK框架,构建一套针对高级持续性威胁(APT)的自动化检测与狩猎系统。文章涵盖了从环境搭建、核心检测逻辑编写、到模块化框架设计与主动威胁狩猎的全过程,为安全从业者提供了可落地的技术方案,以有效应对复杂的网络攻击。

weixin_29044157的博客 389

敏捷测试需要遵循的原则

在这种情况下,团队不仅会提高工作的满意度,还能在很大程度上调动了团队成员的积极性,发展生产力,最终反映到高质量的产品交付中。所以在做敏捷测试的过程中,我们要通过持续测试以及自动化测试来获取及时的反馈,营造反馈的文化,促进团队的业务方向和流程朝着正确的方向发展。团队的沟通协作是解决问题的一大举措,其中,面对面的沟通交流又是在团队内部和各个团队之间传递信息的最有效的方法。总之,敏捷测试作为敏捷项目管理中不可或缺的一部分,在实际的项目流程中,我们应更加专注于产品质量,持续为客户交付具有价值的高质量产品。

okcross0的博客 827

Zemax中场曲与畸变图的深度解析与应用场景对比

本文深度解析了Zemax中场曲/畸变图与网格畸变图的核心原理、计算逻辑与适用场景。通过对比常规成像镜头、扫描镜头、鱼眼镜头及变形宽银幕镜头等实际案例,详细阐述了如何根据系统对称性、视场角及核心需求选择正确的分析工具与畸变评价标准,为光学设计中的畸变诊断与优化提供清晰指导。

sand8的博客 482

敏捷学习——敏捷的12条原则

    没有什么方法可以保证团队一定能开发出完美的软件,敏捷的团队也是同样地,所以,有一系列的原则来帮助敏捷团队。 最优先要做的是尽早、持续地交付有价值的软件,让客户满意。 欣然面对需求变化,即使在开发后期。敏捷过程利用变化为客户维持竞争的优势。 频繁地交付可工作的软件,从数周到数月,交付周期越短越好。 在团队内外,面对面交谈是最有效,也是最高效的沟通方式。 在整个项目过程中,业务人员必...

张楠的博客 2万+

Calibre提参实战:如何用hcell和xcell文件精准屏蔽模块(附避坑指南)

本文详细解析了Calibre提参过程中hcell和xcell文件的应用技巧,帮助工程师精准屏蔽模块以优化寄生参数提取。通过对比hcell与xcell的核心差异、图形界面与命令行操作指南,以及常见问题排查方法,提升芯片后端设计效率。附避坑指南,解决EETOP论坛热议的模块丢失问题。

weixin_26795617的博客 440

Flink on k8s 环境搭建(一)

Flink on Yarn的环境搭建过程中,需要进行配置较多,且需要搭建zookeeper Hadoop Yarn 等相关组件,安装流程比较复杂,集群出现问题重新安装的流程也比较复杂,且Yarn的3个节点中 只能起了 3个resourceManager和1个NodeManager,Flink 作业申请资源时只能 向NodeManager的节点申请资源,整体有资源瓶颈的隐患(后继flink作业会越来越多),现在尝试进行Flink on k8s 的环境搭建。

wangqiaowq的博客 3413

敏捷原则比敏捷框架更重要

2018年5月10日,敏捷宣言的发起人之一Ron Jeffries公开宣称“开发人员应放弃使用敏捷框架”。Ron Jeffries提到,诸如Scrum和看板之类的敏捷框架,与敏捷原则相差甚远,并不能为开发人员提供好的服务。他希望开发人员重新关注敏捷原则,并放弃使用这些敏捷框架。 我们询问了一些团队在实际工作中如何进行敏捷实践,希望大家在公开场合(互联网或社交媒体上)讲述他们的敏捷实践,以此进行一个...

柚橙论 1263

具身智能:原理、算法与系统 第16章 运动控制基础

实时迭代(Real-Time Iteration, RTI)策略在每个采样时刻执行有限次迭代(通常一次),利用相邻时刻解的连续性,在严格时间限制内获得可行解。比例-积分-微分(Proportional-Integral-Derivative, PID)控制是工业界最广泛应用的控制策略,其原理基于误差的当前值(比例)、累积值(积分)与变化率(微分)的线性组合。力-位置混合控制(Hybrid Force/Position Control)将任务空间分解为力控制子空间与位置控制子空间,分别控制。

VectorShift的博客 146

敏捷价值观和敏捷原则

敏捷开发的核心价值观强调个体互动高于流程工具、可运行软件重于详尽文档、客户合作优于合同谈判、响应变化胜于遵循计划。十二项原则进一步指导团队通过持续交付、拥抱变化、短迭代、紧密协作等方式实现敏捷目标。测试团队转型应以此为基础:主动跨团队沟通、聚焦可交付产品、成为质量伙伴、灵活调整策略、持续改进实践、提升技术能力。这些价值观和原则为敏捷转型提供了根本的行动指南,推动团队从控制过程转向快速交付价值。

吾非技道之翘楚,唯好研索之学人耳。此处所录,或为既往所历之困厄,或为解厄寻途之思绎,亦有学而随记之零散笺注 —— 犹整理书斋,将诸般识见渐次厘剔,使各归其序。若此些微碎语,能助同路求索之君,实乃吾之幸事!诚邀共论,相携精进,不亦乐乎? 662

UMI——斯坦福刷盘机器人:通过手持夹爪革新数据收集方式,且使用视觉SLAM和Diffusion Policy预测动作

没想到今年年初的斯坦福mobilealoha的热度刚过,而到今年2月的下旬,斯坦福另一个团队又推出了UMI刷盘机器人,且这两个团队还互相认识、还在一块共同切磋(顺带小小感叹一下,斯坦福的氛围是真好而且真高产)斯坦福UMI刷盘机器人其与mobile aloha(以及AirExo: Low-Cost Exoskeletons for Learning Whole-Arm Manipulation in the Wild)最大的不同在于其收集数据处理的非真实的机器人,而是一个手持夹持器(从而大幅降低成本)

u013250861的博客 1357

解决k8s核心组件calico pod资源不创建问题

解决k8s核心组件calico pod资源不创建问题 1.问题描述 由于K8S集群Master节点故障,导致calico网络组件虽然处于Running状态,但是一直无法准备就绪,如下图所示 calico-node-lpt7h运行在master节点,第一时间紧急处理方法就是将其pod删除,让K8S自动重建该pod,使整个集群快速恢复 但是就当我将calico-node-lpt7h pod删除后,该pod始终无法自建,就好像是从来没有这个pod似的 2.解决方法 期初排查时,我觉得可能是由于当前master

江晓龙的博客 4807

敏捷开发原则

~学点新东西 敏捷开发原则 1.尽早的,经常性的进行交付。努力在项目刚开始的几周内交付一个具有基本功能的系统,然后努力坚持每两周就交付一个功能渐增的系统。 2.团队努力保持软件结构的灵活性。这样能够欢迎需求的变化(变化可以为客户创造竞争优势)。因此要学习面向对象设计的原则和模式,这会帮助我们维持这种灵活行。 3.要经常性交付软件,并且是可以工作的软件。周期越短越好。

zhaohuiy的专栏 2510

098、C3k2_Ghost:用 GhostConv 替代 C3k2 内标准卷积的轻量化改造代码

本文介绍了用GhostConv轻量化改造YOLOv11中C3k2模块的实践。作者通过线上部署案例引出问题,详细解析了GhostConv的核心实现逻辑,指出直接替换标准卷积会导致的两个关键问题:通道数不匹配和kernel_size冲突。文章提供了完整的C3k2_Ghost实现代码,包含注意事项和调试技巧。消融实验显示,该方法在小模型上可减少27%-28%参数量、34%-35%FLOPs,仅损失0.8mAP。作者总结了适用场景:小模型效果显著,大模型需谨慎;检测小目标任务不推荐;训练时需调整学习率。最后强调sh

sundong_81的博客 62

敏捷-第二章 敏捷宣言与原则

本章知识重点 1、敏捷宣言 2、敏捷12原则

陈显平的专栏-Oracle EBS 1012

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

敏捷宣言和敏捷原则

最近在看《软件项目管理与敏捷方法》这本书,作者将PMBOK中各个过程中可以用敏捷方式进行的作了一个说明,也给出了一些如何在使用传统开发方法的团队中如何推广敏捷开发原则的方法,但总体而言收获不大。另外我看的这一版是根据PMBOK第三版编写的,而我学习和考试PMP时用的是第四版,看书的过程比较痛苦。 但看书的过程中至少对敏捷开发有了稍微多的了解,在书的开头也提到了敏捷宣言和“知识工人”。现...

dly41721的博客 148

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

敏捷宣言和敏捷的十二原则

简单的说,敏捷开发是一种以人为核心、迭代、循序渐进的方法。在敏捷开发中,软件项目在构件初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视,可集成和可运行的特征,可持续创新交付现有客户的需求,可缩短上市时间提高投资回报率,对产品和商业变化快速做出响应,支持业务的增长和盈利能力等等。总的归纳来说“价值、质量、约束”是敏捷关注的三个目标:价值目标:提供可交付的产品质量目标:提供可靠、适应性强的可交付产品约束目标:在可接受的约束内,实现价值和质量目标。

huangkaiwuhan的博客 879

敏捷软件开发 - 原则、模式与实践

起源 《敏捷软件开发 - 原则、模式与实践》是我接触到的第一本系统介绍软件设计的书籍,深刻影响了个人的软件开发习惯。它并不难懂,我一直推荐给身边的各个层次的程序员学习。 可对于一本接近500页的图书,很多人还是望而却步。一直都想写个关于这本书的速读,使更多的人了解它。但是最近又重新学习了一遍发现它之所以有价值不仅仅在于书中总结的原则和模式,更在于它提供的如何运用这些原则、模式的实践例子。忽略了大量...

feifeilb的博客 2377

对敏捷宣言的原则进行风险评估

对敏捷宣言的原则进行风险评估 **题目要求:在敏捷宣言遵循的12条原则中挑选1条你感兴趣的原则进行风险评估。 ** 风险评估 大型软件项目的风险管理:大型项目存在诸多风险因素,在不同程度上对软件开发过程和软件产品质量造成影响。风险不能全部消除,而只能采用避免、减轻、和接受三种应对策略。 需求变更风险; 进度风险、预算风险、管理能力风险、信息安全风险; 应用技术风险、质量控制风险、软件设计与开发工...

dick的博客 1436

敏捷方法论的前世今生- 敏捷历史,敏捷宣言与敏捷12条原则

敏捷方法论的前世今生 敏捷方法的历史: - 敏捷一词来源于2001年初美国犹他州雪鸟滑雪胜地的一次敏捷方法发起者和实践者(他们发起组成了敏捷联盟)的聚会。 - 迭代和增量开发方法最早可以追溯到1957年 - 在二十世纪九十年代,各种各种轻量级软件开发方法纷纷被提出,其中包括: - 1991: RAD (rapid application development) - 1994: UP (uni...

bruesz的专栏 5172

敏捷宣言与原则

1.个体以及互动而不是过程和工具 2.可用的软件而不是完整的文档 3.客户合作而不是合同谈判 4.应对变更而不是遵循计划

模界 | AI工程化实践者 538

【PMP】敏捷宣言与原则

摘要: 敏捷开发以四大核心价值观(个体交互、可用软件、客户协作、响应变化)和十二条原则为核心,强调敏捷思维而非固定实践。团队角色包括产品负责人(管理需求优先级)、Scrum Master(消除障碍)和自组织跨职能团队。核心会议(每日站会、迭代规划/评审/回顾会)需高效聚焦,遵循时间盒规则。关键实践涵盖变更管理(优先级调整)、范围管理(渐进明细)、风险管理(透明化)和产品待办列表(动态优先级)。易错点包括混淆角色职责、形式化会议及误解敏捷文档要求。常见框架如Scrum、看板、XP各有侧重,用户故事需符合INV

m0_55845928的博客 652

【敏捷那些事儿 02期】如何理解敏捷价值观和原则?

从底层逻辑看敏捷

在数字化道路无限探索 1012

敏捷开发的INVEST原则

很久没来这个社区发点文章了,是因为工作的变动很大。上一篇文章,我还在讨论专项测试领域,如何在金融投资领域进行测试,如何把控测试管理。现在我要做的是质量体系建设的咨询,上升的高度和领域发生了变化。我现在接触的是车企的软件领域范围,快速的敏捷迭代,导致的质量问题。所以我又要开始从头学习一些体系管理,质量管理的内容。在此做一个学习的笔记。

899

敏捷开发之 12条敏捷原则

本文已挪至  http://www.zhoujingen.cn/blog/2593.html ------------------------------------------ 上篇敏捷开发之 4句敏捷宣言中讲了敏捷开发的价值观, 从这些价值观中可以引出下面的12条原则,它们是敏捷实践区别于重型过程的特征所在。在Agile Software Development - Principles,...

weixin_33943836的博客 326

敏捷开发的宣言和原则

一、敏捷软件开发宣言 个体和互动高于流程和工具 工作的软件高于详尽的文档 --注重产品本身,而不是形式和流程,文档应简洁易阅读,方便维护和同步 客户合作高于合同谈判 --主动拥抱变化,及时响应,持续交付 响应变化高于遵循计划 --制定可实现的短期清晰的目标,中期的粗略的计划,长期的大方向有大概目标即可 ...

weixin_30832351的博客 361
上一篇: 软件研发的特点
下一篇: 架构设计和制定开发计划
xiaohaige
博客等级 码龄25年 1粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值