敏捷软件开发价值观和原则重温

敏捷软件开发宣言

  • 个体和交互胜过过程和工具
  • 可以工作的软件胜过面面俱到的文档
  • 客户合作胜过合同谈判
  • 响应变化胜过遵循计划

个体和交互胜过过程和工具

软件开发是人的活动,人是软件开发中最重要的因素。如果没有优秀的成员,再好的过程也无法挽救项目。【那么,如何培养优秀的开发人员呢?】

软件开发是人的活动,而且是团队的活动,团队成员之间的有效交互对软件开发的成败至关重要。从某方面来说,过程和工具也是为了保证交互过程中信息不存在丢失或误解。【那么,如何保证交互的效率和有效性呢?】

团队的构建比环境的构建重要的多。 【那么,如何进行团队的构建呢?】

当前困境:

  1. 开发人员的能力不足够优秀:对业务了解不足,分析和设计能力不足,软件开发实践质量不够高;

解决方案:

  1. 熟悉业务:1)项目中学习并做好知识的总结;

  2. 提升分析和设计能力:1)学习软件设计和开发方法;2)项目中做好实践;【TD: 具体计划;软件开发书籍,架构设计书籍,linux驱动开发书籍】

  3. 提升软件开发质量:落实高质量软件开发实践. 【TD: 具体计划】

可以工作的软件胜过面面俱到的文档

代码不是传达系统原理和结构的理想媒介。团队需要编制易于阅读的文档,来对系统及其设计决策的依据进行描述.

敏捷价值观认为,过于庞大的文档会使文档失真,造成误导。

文档应当使短小(short)并且主题突出的(salient)。主题突出是说,仅论述系统的高层结构和设计原理。

那么如何培训新团队成员呢?我们会非常密切地和他们一起工作。我们通过近距离的培训和交互使他们成为团队的一部分。

即,实现的细节,通过近距离的交互来传递。

当前困境:

  1. 缺少文档;

  2. 文档不能有效的描述业务实质、系统原理和设计依据;

客户合作胜过合同谈判

成功的项目需要有序、频繁的客户反馈。不依赖合同或工作上的陈述,而是让客户和开发团队一起密切地工作,尽量经常提供反馈。

当前困境:

  1. 软件功能和质量不能及时满足客户的需求;

需要注意:软件设计和项目设计是息息相关的,不要简单割裂,而应同时关注,自始至终的关注。

响应变化胜过遵循计划

响应变化的能力常常决定着一共软件项目的成败。当我们构建计划时,应该确保计划是灵活的并且易于适应商务和技术方面的变化。

较好的做计划的策略是:为下两周做详细的计划,为下三个月做粗略的计划.

当前困境:

  1. 计划常常未达成;

敏捷软件开发的原则

  • 我们最优先要做的是通过尽早的,持续的交付有价值的软件来使客户满意;

    我们努力坚持每两周就交付一共功能渐增的系统。

  • 即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势

    这是多么吸引人的特质啊!要努力达成。
    敏捷团队会非常努力地保持软件结构的灵活性。
    这对软件设计提出了要求!【TD】学习和达成软件结构灵活的能力。

  • 经常性的交付可以工作的软件,交付的间隔可以从几周到几个月,交付的时间间隔越短越好。

  • 在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。

  • 围绕被激励起来的个人来构建项目。给他们提供所需要的环境和支持,并且信任他们能够完成工作。
    在敏捷项目中,人被认为是项目取得成功的最重要的因素。 如果其他因素影响了人,就改变其他因素。
    当前困境:没有给人提供足够的支持和信任。

  • 在团队内部,最具有效果并且富有效率的传递信息的方法,就是面对面的交谈。

    默认的沟通方式是交谈。

  • 工作的软件是首要的进度度量标准。

  • 敏捷过程提倡可持续的开发速度。责任人、开发这和用户应该能够保持一个长期的、恒定的开发速度。

  • 不断关注优秀的技能和好的设计会增强敏捷能力
    高的产品质量是获取高的开发速度的关键。保持软件尽可能的简洁、健壮是快速开发软件的途径.
    【TD】这个是日常开发的着力点!要重点关注。如何实现呢?软件的简洁、健壮和高的产品质量?要做好日常看护,包括方案、实现、验证等。
    我需要关注:设计、质量!

  • 简单------使未完成的工作最大化的艺术------是根本的。
    在今天以最高的质量完成最简单的工作。

  • 最好的架构、需求和设计出自于自组织的团队。
    敏捷团队是自组织的团队。
    敏捷团队的成员共同来解决项目中所有方面的问题。不存在单一的团队成员来对系统架构、需求或测试负责的情况。

  • 每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整。

参考

[1] Robert C. Martin. 敏捷软件开发-原则、模式与实践. 第一章

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/683182.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenVDB Cookbook 笔记

目录 Hello WorldCreating and writing a gridPopulating a grid with valuesReading and modifying a gridStream I/OHandling metadataAdding metadataRetrieving metadataRemoving metadata IterationNode IteratorLeaf Node IteratorValue IteratorIterator Range Interpol…

Vegeta压测工具学习与使用

Vegeta压测工具学习与使用 目标: 能够在命令行下使用Vegeta对指定API进行测试了解如何导出结果,以及能获得什么样的结果(P99,P99.9,QPS)探索能否导出其他结果,是否能够执行复杂命令或简易脚本等 时间比较紧迫,预计两到三个小时内完…

详解tomcat中的jmx监控

目录 1.概述 2.如何开启tomcat的JMX 3.tomcat如何实现JMX的源码分析 1.概述 本文是博主JAVA监控技术系列文章的第二篇,前面一篇文章中我们介绍了JAVA监控技术的基石——jmx: 【JMX】JAVA监控的基石-CSDN博客 本文我们将从使用和源码实现两个方面聊…

BLDC驱动刹车电路、能量泄放电路

不同STM32的性能; APM2.8飞控整合资料: APM2.8飞控说明书 GitBook BLDC的制动首先要考虑MOS的泄放电阻的选择,参考前面博客。 刹车电阻制动: 如图所示就是一种通过功率电阻耗散电机制动过程中产生电能的电路。因为功率电阻在这个电路中起…

【AI视野·今日Robot 机器人论文速览 第七十八期】Wed, 17 Jan 2024

AI视野今日CS.Robotics 机器人学论文速览 Wed, 17 Jan 2024 Totally 49 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers Safe Mission-Level Path Planning for Exploration of Lunar Shadowed Regions by a Solar-Powered Rover Authors Olivier L…

【并发编程】ThreadPoolExecutor类

📝个人主页:五敷有你 🔥系列专栏:并发编程⛺️稳重求进,晒太阳 ThreadPoolExecutor 1) 线程池状态 ThreadPoolExecutor 使用 int 的高 3 位来表示线程池状态,低 29 位表示线程数量 状态名 高三位 …

rtt设备io框架面向对象学习-uart设备

目录 1.uart设备基类2.uart设备基类的子类3.初始化/构造流程3.1设备驱动层3.2 设备驱动框架层3.3 设备io管理层 4.总结5.使用 1.uart设备基类 此层处于设备驱动框架层。也是抽象类。 在/ components / drivers / include / drivers 下的serial.h定义了如下uart设备基类 struc…

Transformer实战-系列教程18:DETR 源码解读5(BackboneBase类/Backbone类)

🚩🚩🚩Transformer实战-系列教程总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 点我下载源码 DETR 算法解读 DETR 源码解读1(项目配置/CocoDetection类) …

我的NPI项目之嵌入式总线系列(一) -- SPI 接口

如我的NPI项目之Android 安全系列 -- 外挂SE集成(SPI)接口-CSDN博客 提到SPI的接口,基本的电气特性已经给出。这边文章就针对协议部分进行详细解析。从协议网找到了原文:SPI protocol 还有wilipedia SPI 主要涉及一下几个方面&a…

bat 定时收缩sqlserver2017

如果你希望使用批处理(.bat)文件来定时收缩SQL Server的数据库,你可以编写一个脚本来执行这个任务。但首先,需要注意的是,定期收缩数据库通常不是一个好的做法,因为它可能会对性能产生负面影响,…

全闭环直播推流桌面分享远控系统

直播推流涉及多协议,多端技术栈和知识点,,想要做好并不容易,经过几年时间的迭代,终于小有成就,聚集了媒体服务器,实时会议sfu,远控kvm等功能。可以做一个音视频应用的瑞士小军刀。主…

详解Vue文件结构+实现一个简单案例

💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢…

测试开发-2-概念篇

文章目录 衡量软件测试结果的依据—需求1.需求的概念2.从软件测试人员角度看需求3.为什么需求对软件测试人员如此重要4.如何才可以深入理解被测试软件的需求5.测试用例的概念6.软件错误(BUG)的概念7.开发模型和测试模型8.软件的生命周期9.瀑布模型&#…

MATLAB知识点:randperm函数(★★★★★)将一个数字序列进行随机打乱

​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自第3章:课后习题讲解中拓展的函数 在讲解第…

Codeforces Round 923 - A.B.C.D

文章目录 A. Make it WhiteB. Following the StringC.Choose the Different Ones!D. Find the Different Ones! A. Make it White #include<bits/stdc.h>using namespace std;void solve() {int n;cin >> n;string s; cin >> s;int flag 0;int x 0, y -1…

django中admin页面汉化

在Django中&#xff0c;将admin界面汉化为中文需要进行一些配置和翻译文件的添加。下面是一个基本的步骤指南&#xff0c;帮助你实现Django admin的汉化&#xff1a; 一&#xff1a;安装并配置Django: 如果你还没有安装Django&#xff0c;首先通过pip安装它&#xff1a; pip…

【开源训练数据集1】神经语言程式(NLP)项目的15 个开源训练数据集

一个聊天机器人需要大量的训练数据,以便在无需人工干预的情况下快速解决用户的询问。然而,聊天机器人开发的主要瓶颈是获取现实的、面向任务的对话数据来训练这些基于机器学习的系统。 我们整理了训练聊天机器人所需的对话数据集,包括问答数据、客户支持数据、对话数据和多…

ESP32学习(1)——环境搭建

使用的ESP32板子如下图所示 它可以用Arduino 软件&#xff0c;基于C语言开发。但是&#xff0c;在这里&#xff0c;我是用Thonny软件&#xff0c;基于micro_python对其进行开发。 1.安装Thonny Thonny的软件安装包&#xff0c;可以去它官网上下载。Thonny, Python IDE for begi…

【MySQL】学习外键约束处理员工数据

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-g4glZPIY0IKhiTfe {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

【原理解密】多角度、多尺度、多目标的边缘模板匹配

学习《OpenCV应用开发&#xff1a;入门、进阶与工程化实践》一书 做真正的OpenCV开发者&#xff0c;从入门到入职&#xff0c;一步到位&#xff01; 边缘模板匹配的基本原理 OpenCV中自带的模板匹配算法&#xff0c;完全是像素基本的模板匹配&#xff0c;特别容易受到光照影…