您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[开放运维联盟&高效运维社区&DevOps时代]:一种让软件开发成功的秘诀 - 发现报告

一种让软件开发成功的秘诀

AI智能总结
查看更多
一种让软件开发成功的秘诀

一种让软件开发成功的秘诀 李智桦敏捷教练 是看板方法之父David j. Anderson在他的职业生涯中所参研出来迈向成功的六个步骤,可以拿来做组织变革时研发单位的指导原则、也能运用在管理者新上任时的措施、或作为改善开发团队效能的行动指南。简单的几个步骤却融合了精实与敏捷的精神,实践多年深知有太多细节需要借助实务的经验,才能运用自如。 一种让软件开发成功的秘诀 组织变革时研发单位的指导原则、管理者新上任时的措施、改善开发团队效能的行动指南 个人介绍 李智桦敏捷教练 具有超过40年的工程师经历,擅长带领研发团队开发与创新,著作有:精实开发与看板方法。为专业的软件工程顾问、Scrum及看板课程教学的讲师。曾担任多家科技公司的研发部经理。擅长新创公司的项目开发工作,现担任敏捷教练。 让软件开发成功的秘诀1 目录 ○专注于质量.○减少进行中的工作.○频繁交付.○根据交付速度平衡需求请求量.○进行优先级排序.○消除变异性的根源,提升可预测性. CONTENTS 第3章 让软件开发成功的秘诀 《人 的 层 面》 判别开发团队的交付观念? 如果你发现刚刚发布出去的程序,有一个隐忧的缺陷存在,你会怎么办? 找出问题原因,制定改善计划。 依照计划立即采取行动 •别等问题浮现才去改善•将进度及结果可视化•从小地方开始 •定义问题与目标•制定计划•选出最佳方案 •标准化或重启循环•吸取他人经验•推展到整体 •检视最初的目的与做法•成功与否都要分析原因•适时喊停 ○专注于质量-測試左移 Shift-Left testing •加强测试的观念,由工程师一直到测试人员(需求与测试案例)。 •提升撰写程序的质量,给工程师改善质量的动机。 •由需求做起 •需求符合简单的原则,质量自然提升。•当我们得知使用者最在乎的东西是质量的话,质量自然提升了。 》AI可以帮助程序设计师更快速地发现问题,提高质量和效率。 提升程序的质量 DevOps四大关键指标 •部署频率Deployment frequency在指定时间之内,提交并部署正式上线的Production版本的多寡。 •变更的前置时间Lead time for changes从原始码交付到成功上线运行的间隔时间。 •平均恢复时间Mean time to recovery从灾后停机状态恢复服务所花的平均时间MTTR •变更失败率Change failure rate计算Production部署的成败比值,测量部署失败发生的频率及立刻补救Rollback的比率。 •价值流Value stream运用利特尔法则运算产出效能 精益開發指標 利特爾法則 平均交付量DeliveryRate=在制品數WIP/前置時間Lead Time 平均交付量=完成的需求數前置時間(在制品數) •交付量即每次迭代可完成的待開發任務的比率,•在制品是開發團隊可同時處理的開發任務量。•前置時間是指產出的單個產品從定義到交付的整個流程所需的時間。 工程师是怎么想的… 如果我们相信学习是思考的结果,那么我们不仅要让我们的工程师去思考,而且要理解正在展开的思考过程,以便我们能够支持它、促进它并发展它。 可视化思维MTV •启发性提问 「你为什么这么说?」透过使用促启发问题时,目标是了解学员的想法,进入他们的头脑,使他们的想法显现出来。 •倾听 通過我們的傾聽,我們為學員提供了一個開放的空間,讓我們看到他們的思維與想法。 •文件纪录 思考和學習的過程可能是難以捉摸和短暫的。文件記錄就是盡可能豐富地捕獲這個過程的工作。將隱性知識轉換為顯性知識的過程中記錄思維。 •思维流程 思维流程是让思维可视化的核心练习。它们是促进思维的工具,是揭示和支撑思维的结构,随着时间的推移,它们的使用会逐渐成为一种固定的行为模式。 AI如何提升程序质量? 消除变异性的根源,提升可预测性. 为了降低软件开发中的变异性,知识工作者需要改变他们的工作方式(追求高质量的程序),学习新的技术,并改变他们的个体行为。 简 单 原 则 KISS原则,即为Keepit simple and stupid. 简单原则 我先做哪一件事之后,其他事就会变得比较容易,或者不必做了? 问题与回答 根据交付速度平衡需求请求量. -John SwellerCognitive load 了解工程师的负荷 负荷:工程师工作记忆中使用的脑力劳动 1.固有认知负荷(内在的) -与问题领域的基本任务相关。组织应该试图最小化固有认知负荷,例如:上任、培训…来快速实现。 2.额外认知负荷(外在的) -与处里的环境相关。应该尽量消除额外认知负荷。 3.相关认知负荷(鹰架式) -与那些需要格外关注学习和高性能方面的任务相关。 为相关认知负荷预留更多空间,才是一种让团队增值的思维。 「复杂度是认知负荷的一大因素」,让团队聚焦在单一领域这是微服务化的效用。 开发速度与开发团队的认知负荷 他 们 感 觉 很 兴 奋 还 是 很 疲 倦?你 的 团 队 目 前 的 开 发 速 度 如 何? 觉 得 学 到 很 多 东 西?还 是 没 有 学 到 东 西? 如何做到Intervals区间式的开发模式 问题与回答 项目开始之初,首重看见全貌 一旦;当你把眼光投注在哪一个要项的时候, 你的思绪将被那一部分的内容所牵动,很难再看见其他的事…所以我们要退后一步, 不!有时要退后很多步,才能比较清晰地看见全貌。 -请思考你的「退后一步」是什么? 我在哪里? 提问… 前提 你接到某一家软件公司的offer,邀请你担任研发部主管的职务,该公司已经成立7~8年了,有自己的产品,曾经坚持不做客制化,但遇到大客户时还是会为他们做一点专属的产品开发。他们从一开始就采用敏捷开发法(Scrum),但没有专职的Scrum Master。 研发部有将近三百个成员(全公司接近500人),请问阁下会怎么做,你将会从哪里开始?你的策略是什么? 一种成功的秘诀David J. Anderson的 组 织 层 面 让软件开发成功的六个秘诀 ○专注于质量.○减少进行中的工作.○频繁交付.○根据交付速度平衡需求请求量.○进行优先级排序.○消除变异性的根源,提升可预测性. 一种成功的秘诀David J. Anderson的 组 织 层 面 让软件开发成功的六个秘诀 ○专注于质量.○减少进行中的工作.○频繁交付.○根据交付速度平衡需求请求量.○进行优先级排序.○消除变异性的根源,提升可预测性. 人可能才是最大的挑战 一种软件成功开发的秘诀 開發者體驗DevX 组 织 层 面 人 的 层 面 品质 了解目前产品质量产品交付的顺畅度由价值流程图出发 開發者體驗的目的 如何讓開發團隊順暢而高品質的完成他們的任務。 需求排序 减少变异性 一种软件成功开发的秘诀 一种成功的秘诀 •团队交互由协作转为服务 範例:站立會議 团队参加大数据API的培训,有一半的人没有通过最终的测验,但测验成绩最好工程师,也来自这个团队的成员。 因此ScrumMaster想利用站立会议的时候,让团队也都学会怎么做才能高效顺利地通过测验。 《思維可視化教學》 哈佛大學教育學院設計可視化思維課堂的18種流程 作者:羅恩·理查德,馬克·丘奇 出版社:中國青年出版社 出版日期:2022/05/31 如何克服AI所帶來的教育衝擊? 开放运维联盟高效运维社区DevOps时代 荣誉出品