解读敏捷2 - 敏捷实施的六个陷阱

本文深入探讨了敏捷实施过程中常见的六个陷阱,并提出了成功实施敏捷的关键问题与建议。主要内容包括:缺乏明确目标、误解敏捷本质、采用错误方法(如过度依赖套装)、基础能力不足、环境与文化冲突以及高估研发管理能力。通过分析这些问题,作者旨在帮助读者理解敏捷的核心价值,避免常见误区,从而实现有效的敏捷转型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 随着敏捷日益成为主流,各种各样的敏捷会议召开,一本又一本的敏捷图书出版,一个又一个的公司前赴后继的迈向敏捷,好一番火热景象。这让我回忆起了当年看报时的一个感受,当时每张报纸的显眼处都能看到牛皮癣和肝病的广告,咋一看感觉会治病的人很多,仔细思考下才发觉是根本原因是能治好病的人很少,否则市场上不会那么热闹。敏捷的现状是不是也是如此呢?

“与其做敏捷,不如变敏捷!Be agile rather than do agile.”但对于大多数公司来讲,如果没做过敏捷,怎么知道如何变敏捷。而且做敏捷可以检查和测量,变敏捷则不能,这违背了“不能被测量则不能被管理”的管理定律。但大多数敏捷实施会失败!那些被敏捷后的美好前景吸引、前赴后继奔向敏捷的公司基本上是在自寻烦恼,“苦逼敏捷”开始盛行。

窃以为要想成功实施敏捷必须先解决下面六个问题:

1. 没有目标,为敏捷而敏捷

为敏捷而敏捷,并不是为了解决真正的问题,把手段当做目标。不少公司简单的被市场宣传打动,认为敏捷就代表着好,不敏捷就不好。这些公司往往会被轻易的忽悠,高估敏捷实施的效果,希望通过简单的敏捷实施就能解决面临的很多问题。因为没有目标,他们在实施的时候只能力求规范。这是一种符合国情的管理方式,俗称运动式管理。运动式管理的目标仅仅是为了运动,运动之后才知道自己在裸泳

贵公司当前的主要问题是什么?实施敏捷要解决哪些问题?哪些问题是不能通过实施敏捷解决的?

2. 没搞懂敏捷

不想变敏捷,只想做敏捷。没有真正投入成本研究敏捷的公司并不知道敏捷因何生效。当然,他们也有研究,例如派人参加两天的CSM培训,拿到证书;或者买进两本敏捷的书籍,看看红绿模式或者知道每天早上要回答三个问题。这种肤浅的研究把敏捷看做过程,而且是非常简单的过程。他们往往会低估敏捷实施的难度,高估敏捷实施的效果,结果在真正实施的时候碰的头破血流。在这种情况下实施敏捷就是一个悲剧。“我遵守所有的规则,人的和神的。而你不遵守规则,但他们爱你胜过爱我。“——《燃情岁月》

敏捷是什么?敏捷到底是怎样发挥作用的?需要多长时间?敏捷对什么没用?

They told me that the world would be changed if I could answer three questions every morning. Now I’ve answered them for a month, why hasn’t the world been changed?

3. 错误的方法:套装癖

套装癖是指人们更喜欢看起来完整的东西来满足他们的心理愿望,以逃避独立思考和解决问题的真正困难。套装癖现象不仅仅发生在敏捷软件开发,它体现了人们对解决方案而不是解决问题的热爱。瀑布模型并不是瀑布模型提出者的本意,但它被曲解成了瀑布模型这样一个软件开发解决方案;之所以提出CMM是为了衡量过程中的质量,但它变成了解决软件开发企业管理问题的解决方案;Scrum不是解决方案,但人们或者是抱怨Scrum解决方案没有提供足够的实践,或者是自己为它加上用户故事、计划扑克和其他实践,一定要把它变成解决方案。人们一边在市场上追逐套装,一边在抱怨套装原来是中看不中用啊。的确,实施一个套装比实施一个实践难多了,但套装癖们还是乐此不疲。

实施敏捷就是实施Scrum吗?真的需要所有的实践吗?有没有哪一个实践做好了,真的有效了?

4. 基础不行

敏捷软件开发还是软件开发,不会因为实施了敏捷,就可以招聘技能更低的人完成工作了。以Scrum为例,Scrum是暴露问题而不是解决问题,解决问题还是要靠人。人与人之间的冲突需要冲突解决能力,团队建设需要领导能力,对业务的深入理解需要对业务的掌握和分析能力,开发人员的设计编码能力更别说。Scrum的创始人说过,白痴也可以用Scrum,然后他又补充了一句,当然,他们只能产出垃圾而已。你们公司需要垃圾吗?

贵公司现在的软件开发能力如何?经过6-12月后,代码的质量能保障吗?开发人员理解业务吗?架构是不是让人很崩溃?

5. 环境冲突

要实施敏捷,却没有实施敏捷所需的环境、人和文化。大多数的公司无法包容为了解决问题突破公司规定,敢指出领导问题的人,在这种公司大规模实施敏捷,纯属找抽。这也是很多人谈到敏捷都会说,敏捷很好,但是在我们公司不适合的原因所在。而且实施敏捷带来的透明性会让坏消息在开始的时候满天飞,能否容忍坏消息?能否正确引导团队的认识?对管理层是极大的考验,其实坏消息一直存在,只是以前被捂住了而已。“贪官奸,清官要更奸。”——来自周星驰《九品芝麻官》

贵公司有没有更奸的清官?能不能容忍坏消息?能容忍多久?鼓励尝试吗?还是对任何“错误”都要惩罚?

6. 高估研发管理能力

软件研发管理能力是被软件开发公司忽视的癌症。有一个非常简单的问题来考察软件研发管理能力,“请问贵公司Code review做的怎么样?”看看管理层如何回答这个问题,到几个项目团队去看看实际做的怎么样,问问开发人员对Code review的感受。Code review是搞软件的人都懂的实践,人人都知道应该做,但是大多数公司在这一点上都不合格。

贵公司有没有一个软件开发实践是真正推下去了,没有应付了事的?哪一个敏捷实践是贵公司准备实施的?怎么真正推下去?

 

解读敏捷

这就是解读敏捷这个系列的目的了,希望通过这个系列达到如下目的:1)展示我对敏捷的理解,以帮助更多的人真正了解敏捷;2)对实施敏捷提出想法和建议;3)提供一些实例供参考。

虽然看起来很容易,但是敏捷真的很难,需要多年的学习和实践。只想按葫芦画瓢,结果就会是按下葫芦浮起瓢。我的格言是:简简单单就能做好的事不值得付出努力。就是因为难,所以做好了才能成为竞争力,才能与众不同,是这个道理吧。

后续的内容还没有全部构思好,但考虑中的内容包括:

1)实践与理论解析

敏捷有多难?从细节看全局,如何将细节做到极致,从细节理解敏捷。请看后续:解读敏捷实践之结对Review,解读敏捷实践之每日立会。怎么理解套装的ScrumXP等等。

敏捷背后的理论解析,排队论,博弈等等。

2)实施方法与样例

你想解决什么问题?采用什么方法?问题域分析与道法术器。

3)杂谈

一些相关的事例与感悟。

 

PS:@larrycaiyu 建议我把名字从《大多数敏捷实施会失败》改成《敏捷实施的六个陷阱》,欣然改之。

基于数据挖掘的音乐推荐系统设计与实现 需要一个代码说明,不需要论文 采用python语言,django框架,mysql数据库开发 编程环境:pycharm,mysql8.0 系统分为前台+后台模式开发 网站前台: 用户注册, 登录 搜索音乐,音乐欣赏(可以在线进行播放) 用户登陆时选择相关感兴趣的音乐风格 音乐收藏 音乐推荐算法:(重点) 本课题需要大量用户行为(如播放记录、收藏列表)、音乐特征(如音频特征、歌曲元数据)等数据 (1)根据用户之间相似性或关联性,给一个用户推荐与其相似或有关联的其他用户所感兴趣的音乐; (2)根据音乐之间的相似性或关联性,给一个用户推荐与其感兴趣的音乐相似或有关联的其他音乐。 基于用户的推荐和基于物品的推荐 其中基于用户的推荐是基于用户的相似度找出相似相似用户,然后向目标用户推荐其相似用户喜欢的东西(和你类似的人也喜欢**东西); 而基于物品的推荐是基于物品的相似度找出相似的物品做推荐(喜欢该音乐的人还喜欢了**音乐); 管理员 管理员信息管理 注册用户管理,审核 音乐爬虫(爬虫方式爬取网站音乐数据) 音乐信息管理(上传歌曲MP3,以便前台播放) 音乐收藏管理 用户 用户资料修改 我的音乐收藏 完整前后端源码,部署后可正常运行! 环境说明 开发语言:python后端 python版本:3.7 数据库:mysql 5.7+ 数据库工具:Navicat11+ 开发软件:pycharm
MPU6050是一款广泛应用在无人机、机器人和运动设备中的六轴姿态传感器,它集成了三轴陀螺仪和三轴加速度计。这款传感器能够实时监测并提供设备的角速度和线性加速度数据,对于理解物体的动态运动状态至关重要。在Arduino平台上,通过特定的库文件可以方便地与MPU6050进行通信,获取并解析传感器数据。 `MPU6050.cpp`和`MPU6050.h`是Arduino库的关键组成部分。`MPU6050.h`是头文件,包含了定义传感器接口和函数声明。它定义了类`MPU6050`,该类包含了初始化传感器、读取数据等方法。例如,`begin()`函数用于设置传感器的工作模式和I2C地址,`getAcceleration()`和`getGyroscope()`则分别用于获取加速度和角速度数据。 在Arduino项目中,首先需要包含`MPU6050.h`头文件,然后创建`MPU6050`对象,并调用`begin()`函数初始化传感器。之后,可以通过循环调用`getAcceleration()`和`getGyroscope()`来不断更新传感器读数。为了处理这些原始数据,通常还需要进行校准和滤波,以消除噪声和漂移。 I2C通信协议是MPU6050与Arduino交互的基础,它是一种低引脚数的串行通信协议,允许多个设备共享一对数据线。Arduino板上的Wire库提供了I2C通信的底层支持,使得用户无需深入了解通信细节,就能方便地与MPU6050交互。 MPU6050传感器的数据包括加速度(X、Y、Z轴)和角速度(同样为X、Y、Z轴)。加速度数据可以用来计算物体的静态位置和动态运动,而角速度数据则能反映物体转动的速度。结合这两个数据,可以进一步计算出物体的姿态(如角度和角速度变化)。 在嵌入式开发领域,特别是使用STM32微控制器时,也可以找到类似的库来驱动MPU6050。STM32通常具有更强大的处理能力和更多的GPIO口,可以实现更复杂的控制算法。然而,基本的传感器操作流程和数据处理原理与Arduino平台相似。 在实际应用中,除了基本的传感器读取,还可能涉及到温度补偿、低功耗模式设置、DMP(数字运动处理器)功能的利用等高级特性。DMP可以帮助处理传感器数据,实现更高级的运动估计,减轻主控制器的计算负担。 MPU6050是一个强大的六轴传感器,广泛应用于各种需要实时运动追踪的项目中。通过 Arduino 或 STM32 的库文件,开发者可以轻松地与传感器交互,获取并处理数据,实现各种创新应用。博客和其他开源资源是学习和解决问题的重要途径,通过这些资源,开发者可以获得关于MPU6050的详细信息和实践指南
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值