软件过程的价值观、原则以及实践——从敏捷说起

什么是事务,以及事务的特性! 阅读详情

       【写在最前:文章的很多观点是S老师讲授并且我觉得能引发我许久不动的大脑的一点零星火花的内容。在S老师上课之前,R老师曾就敏捷开发提出了诸多质疑,敏捷真的是拥抱变化的么?开发人员真的欢迎变化么?敏捷的方法真的如书中所说是高效、高质、高适应的么,是不是过度的吹捧?。。。。。。这一系列的反问,结合自己实习的经历,令我也很纠结。但是,曾有人说,存在就是合理,敏捷方法如今的应用远远不止“存在”的状态,而是一种真正的流行,公司、书籍、众多的会议活动,似乎都说明了这的确是一个值得推荐的方法。】

        哲学上说,世界观指导方法论。在IT世界,每一种软件过程方法也有自己的价值观,以及与之对应的领域内的原则和实践活动。软件过程是将一个大的任务进行有序的分割,分割所遵循的最高,最抽象的规则,便是价值观,它解释了你为什么如此分割或者说它给了你进行这样分割的一个充分的理由。

         在传统的软件方法中,项目的成功归结为:on time & on budget,即按时完成,符合预算,并且所有特性和功能都符合原先的设计规格。如果不符合其一,便被认定为不太成功或者不成功的项目。传统的软件开发方法似乎就是“计划驱动开发”,并且最后由原先计划去评审最后的产物。

          而敏捷对于成功的定义最重要的标准在于:为客户创造价值,所有软件开发实践都应该以提升项目收益为首要目标。由此,对于变更,这个显然会破坏计划的活动来说,敏捷方法从价值观上有着更积极的态度。从这个层次上说,敏捷方法是拥抱变更的,特别是能够为客户带来更多收益的变更(通常市场部门或其他所做的变更不是无理由的,变更的初衷都是能够提升收益)。

          Kent Beck在描述极限编程时说它是”一种软件开发哲学,一组实践,一套互补原则“,敏捷软件开发是一种思考软件开发的方法,真正要学习的人需要从价值观、原则以及实践三个层次上去学习。实践是天天做的事,你可能不知道为什么这样做,但是这是有价值的,实践是明确的、客观的、让价值观清晰可见的。但是,只懂实践的人缺少一个整体的概念,缺少什么时候该做什么事的判断能力。原则是在价值观和实践之间架起桥梁,在具体领域中给予指导方针。

         应当说,价值观是普适的,而实践是具体的,理论上来说,可以以价值观之名做任何事情。这不禁让我联想起”没有银弹“。Brooks早在1986年便说”没有任何一种单纯的技术或管理上的进展,能够独立的承诺十年内使生产率、可靠性或者简洁性获得数量及上的进步,软件开发在根本上就是困难的“。任何的价值观不管如何普适,都应当从实践中来,到实践中去。而实践的方法偏偏很难做到普适,它是如此具体,或者在我看来,根本不存在这样普适的方法。前文曾经提到,价值观是教你应当在什么时机做什么工作,而能够这样的正确的价值观又需要大量的实践来支撑,不可能每个人都拥有。个人(或者说少部分精英)的能力与判断力似乎成为了项目成功的特别重要的因素(有很多例子佐证),似乎什么方法并不重要,而是领头人或者项目的决策者能否正确做出什么时间该做什么的决策。那么对于普通IT者个人来说,学习敏捷的意义何在呢?难道仅仅是具体实践的学习?不知原因的埋头实干却不知为何如此?我们真的能成为敏捷的专家么?想到这里,我的思维似乎进入了一个怪圈。

        【后记:S老师最后问了个问题:你觉得在软件开发中是人更重要,还是过程(方法)更重要(没有说某方不重要),我们几乎都选择了人。但是,S老师对我们说,如果你们工作了很长时间,或许结论不会如此单一。对于还未真正进入工业界的我来说,目前对敏捷的学习,在于它提出了一个新的软件开发的思路,它鼓励我们去迸发出新的指导软件开发的思想火花,创建IT世界的诸子百家时代,并且我们了解了一些好的实践,虽然它不适用于所有场景。敏捷开发作为一种轻量级,减少管理和过程的负担的开发方法,作为一种选择方式,似乎更适合企业或者商业化而非个人。思想未免过于浅薄,仅以此篇记录目前所思所学。不知待回头看,是否会笑掉大牙。。。】

PMP-敏捷项目管理实践-敏捷Scrum实践 敏捷思维模式由价值观定义,以原则为指导,并在许多不同的实践中体现。具体的实践方法包括但不限于Scrum、XP(极限编程)、看板、TDD(测试驱动开发)等。可根据不同环境结合使用或单独使用,而今天分享其中的Scrum实践。Scrum实践是一种敏捷开发方法论,旨在提高团队的效率和生产力。它主要强调团队合作、迭代开发,以及不断反馈和改进。Scrum实践包括一系列的会议、角色和工具,比如三个支柱、三个角色、三个工件、五个事件、五大价值观,简称33355。 阅读详情

相关推荐

【教程4>第4章>第22节】FFT频偏估计方法,导频+cordic频偏估计方法,costas环的性能对比

频偏范围适应性:Costas 环频偏锁定和基于 PN 导频和 CORDIC 算法的频偏估计都可以通过调整参数来适应一定范围的频偏,但 Costas 环的频率捕获范围相对较窄,而基于 PN 导频和 CORDIC 算法的频偏估计,基于 FFT 变换频偏估计对频偏范围较大。在高信噪比条件下,三种方法都可以获得较高的估计精度,但在低信噪比环境中,基于 PN 导频和 CORDIC 算法的频偏估计,基于 FFT 变换频偏估计这两个开环方案相对更具优势,而Costas 环频偏锁定的精度可能会受到较大影响.

FPGA/MATLAB学习教程/源码/项目合作开发 586

什么是事务?事务的四个特征(ACID)

一、什么是事务?         **事务(Transaction)是访问并可能更新数据库中各项数据项的一个程序执行单元(unit)。**事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。         事务是一个不可分割的数据库操作序列,也是数据库并发控制的基本单位,其执行的结

qq_44290077的博客 2万+

069、自动曝光(AE)测光策略:全局/中心/点测光与曝光时间增益分配

本文深入探讨了自动曝光(AE)测光策略的技术细节与实际应用。作者通过多个真实案例(手机前置摄像头、车载ADAS、安防监控等)分析了全局测光、中心测光和点测光的优缺点,指出不同场景应采用不同策略。重点剖析了曝光时间与增益分配的"跷跷板效应",提出要根据传感器特性选择最优分配方案。文章强调测光策略应动态调整,并给出5条实用建议:结合场景切换测光模式、关注传感器增益拐点、点测光需防抖处理、全局测光不宜迷信、调试要观察亮度直方图。最后指出AE调试需要结合具体硬件特性进行实测优化,没有通用解决方案。

zzfmlxs的博客 78

什么是事务?事务的特性?

在mysql中,事务是一种机制、一个操作序列,是访问和更新数据库的程序执行单元。事务中包含一个或多个数据库操作命令,会把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么都不执行。 php入门到就业线上直播课:进入学习 本教程操作环境:windows7系统、mysql5.6版本、Dell G3电脑。 数据库的事务(Transaction)是一种机制、一个操作序列,是访问和更新数据库的程序执行单元,包含了一组数据库操作命令。 事务把所有的命令作为一个整

m0_71188683的博客 4794

什么是事务?

什么是事务?;事务的四个特征(ACID);Sping是如何控制事务?——AOP;事务的传播方式;脏读、幻读、不可重复读;事务的隔离级别;Spring的事务注解

weixin_62993347的博客 7771

事务的四大特性

1. 事务的四大特性 事务具有4个基本特征,分别是:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Duration),简称ACID ① 原子性 事务的原子性是指事务必须是一个原子的操作序列单元。事务中包含的各项操作在一次执行过程中,只允许出现两种状态之一,要么都成功,要么都失败 任何一项操作都会导致整个事务的失败,同时其它已经被执行的操作都将...

Javaer`s blog 5万+

敏捷价值观敏捷原则

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

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

敏捷方法的价值观原则汇编

  敏捷宣言 1 个体和沟通胜过流程和工具
 2 可以工作的软件胜过详尽的文档
 3 与客户合作胜过合同谈判
 4 响应变化胜过遵循计划 也就是说,尽管右项有其价值,我们更重视左项的价值。   敏捷方法的12个原则 1 我们最重要的目标,是通过持续不断地及早交付有价值的软件使客户满意。 2 欣然面对需求变化,即使在开发后期也一样。善于掌控变化,帮助客户获得竞争优势。 3 经常...

麦哲思科技 2209

软件工程 ---- 什么是统一过程敏捷过程

MENU统一过程特点迭代过程具有的优点统一过程软件生命周期敏捷过程何为敏捷开发过程敏捷过程的4个价值观敏捷开发应遵循的12条原则 统一过程 特点 统一过程是用例驱动的 用户(User):软件系统是为了解决用户的需求的,因此对于一个系统必须首先确定它的用户,即参与者。这个User不仅仅指人,也可以是其他系统。即用户是与系统进行交互的事物。 用例(User Case):是用户对系统的业...

不想打代码 7487

理解敏捷价值观原则

敏捷宣言 敏捷宣言也称敏捷软件开发宣言,软件开发业的先辈们对以下四则价值观达成了一致: 个体和互动高于流程和工具 可工作的软件高于详尽的文档 客户协作高于合同谈判 响应变化高于遵循计划 **注:**下面是这份宣言的完整内容: 我们一直在实践中探寻更好的软件开发方法,身体力行的同时也帮助他人。 由此我们建立了如下价值观。 个体和互动 高于 流程和工具 可工作的软件 高于 详尽的文档 客户协作 高于 合同谈判 响应变化 高于 遵循计划 也就是说,虽然右项有其价值,但是我们更重视左项的价值。 个体和互动高

东溪陈姓少年 3554

ACP_1_敏捷价值观原则

ACP 敏捷管理

Java晋升指北 1万+

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

本文还有配套的精品资源,点击获取 简介:敏捷软件开发是一种以人为本、迭代、逐步交付的开发方式,强调适应变化和持续改进。本课程设计项目经过测试,旨在帮助学生掌握敏捷开发的原则、模式和实践。学生将通过实践任务,提升在Scrum、极限编程、精益开发等敏捷模式方面的能力,并在迭代开发、用户故事、持续集成等实践中,提升团队协作和软件质量。 1. 敏捷软件开发简介 敏捷软件...

weixin_36288992的博客 1525

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

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

陈显平的专栏-Oracle EBS 1003

事务(一)——什么是事务,为什么会有事务,事务是做什么的?

什么是事务,为什么会有事务,事务是做什么的? 看到这个标题工作这么久,从来没有认真的思考过这个问题,今天参考一些资料做一些总结。 1、什么是事务 (1) 事务的定义 事务就是用户定义的一系列数据库操作,这些操作可以视为一个完成的逻辑处理工作单元,要么全部执行,要么全部不执行,是不可分割的工作单元。 (2)事务的使用: begin tran...

lanhuyuedui2012的专栏 1万+

事务(Transaction)详解

事务(Transaction)是数据库操作的最小工作单元,保证多个 SQL 语句作为一个整体执行,要么全部成功,要么全部失败,确保数据的一致性和完整性。如果第一步执行成功,但第二步失败(比如数据库崩溃),账户 A 的钱就凭空少了,这会导致。当一个事务调用另一个事务方法时,Spring 提供了。Spring 事务管理非常强大,可以帮助我们。当多个事务同时运行时,可能会出现。实现事务管理,无需手动编写。,在企业级开发中至关重要!默认情况下,Spring。来控制事务之间的影响。两种方式来管理事务。

m0_69529796的博客 1927

事务的隔离级别详解

文章引用出处: https://www.toutiao.com/i6733032238771864067/ 什么是事务? 事务是逻辑上的一组操作,要么都执行,要么都不执行。 事务最经典也经常被拿出来说例子就是转账了。假如小明要给小红转账1000元,这个转账会涉及到两个关键操作就是:将小明的余额减少1000元,将小红的余额增加1000元。万一在这两个操作之间突然出现错误比如银行系统崩溃,导致小明余额...

当冬夜渐暖的博客 364

一文读懂数据库事务

首先说一下什么是事务。事务(Transaction)指一个操作,由多个步骤组成,要么全部成功,要么全部失败。比如我们常用的转账功能,假设A账户向B账号转账,那么涉及两个操作:(1)从A账户扣钱;(2)往B账户加入等量的钱。因为是独立的两个操作,所以可能有一个成功,一个失败的情况。但是因为在这种场景下,必须要保证事务,即要么同时成功,要么同时失败(一个失败需要回滚),不能存在从 A 账户扣钱成功,往 B 账户加入等量钱失败这种情况。

Doublelv 的博客专栏。 3万+

MySQL——事务(Transaction)详解

该博客详解MySQL中的事务 一、事务定义 Transaction 事务:一个最小的不可再分的工作单元;通常一个事务对应一个完整的业务(例如银行账户转账业务,该业务就是一个最小的工作单元) 一个完整的业务需要批量的DML(insert、update、delete)语句共同联合完成 事务只和DML语句有关,或者说DML语句才有事务。这个和业务逻辑有关,业务逻辑不同,DML语句的个数不同...

浅然的专栏 24万+

通过 SSH 在远程 Linux 系统上运行命令的方法

主要介绍了通过 SSH 在远程 Linux 系统上运行命令的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

下一篇: 浅出深入统计学(一)
wood_moon
博客等级 码龄16年 1粉丝 7原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值