软件开发重要性_在软件开发中考虑时间的重要性

软件开发重要性

by Crunch Tech

通过Crunch Tech

在软件开发中考虑时间的重要性 (The importance of time to think in Software Development)

Modern Technology teams operate in a fast-paced environment. With a Technology team of only 35 people, we average over 50 releases per week. We are rightly proud of our software when compared to our competitors that are 3–4 times our size.

现代技术团队在快节奏的环境中运作。 我们的技术团队只有35人,因此每周平均发布50多个版本。 与我们的竞争对手相比,我们的软件感到自豪,而我们的竞争对手的软件规模是我们的3-4倍。

To achieve this, our roadmaps are jam-packed with Client feature requests and enhancements. These enable our front-of-house staff to continue providing a personal service, at scale.

为此,我们的路线图挤满了客户功能要求和增强功能。 这些使我们的前台员工能够继续提供大规模的个性化服务。

When faced with this expectation many technology teams choose to pause technical innovation. Continuing trialed-and-tested ways of working can be perceived as faster and lower risk. We found ourselves on this path. The irony of not having the time to keep up with advances in industry that almost always enable cheaper and quicker delivery wasn’t lost on us.

面对这种期望时,许多技术团队选择暂停技术创新。 不断尝试和测试的工作方式可以被认为是更快,更低的风险。 我们发现自己走这条路。 具有讽刺意味的是,没有时间跟上行业发展的步伐(几乎总能实现更便宜,更快捷的交付)对我们来说并没有丢失。

我们对此的回答 (Our answer to this)

We introduced an ‘Innovation Day’. Every team member is encouraged to take one day of the (typically) two-week Sprint to focus on innovation and learning. On ‘Innovation Day’ they are not contributing to the sprint goal.

我们推出了“创新日”。 鼓励每个团队成员参加(通常)为期两周的Sprint中的一天,以专注于创新和学习。 在“创新日”,他们没有为冲刺目标做出贡献。

This may involve investigating a new approach or tool that could benefit our development process, or building a proof-of-concept for a feature the business may not appreciate the latest technology has made possible.

这可能涉及研究可能有益于我们开发过程的新方法或工具,或者为企业可能不欣赏最新技术所带来的功能建立概念验证。

To date, some example output from Innovation Days includes a mobile app, a Client facing ChatBot, significantly improved development efficiency, and an internal ChatOps tool.

迄今为止,Innovation Days的一些示例输出包括一个移动应用程序,一个面向ChatBot的客户端,显着提高的开发效率以及一个内部ChatOps工具。

It’s worth noting that this time isn’t used to tackle Tech Debt. Our PO’s understanding, and being able to qualify the value in clearing Tech Debt allows it to be ranked in the backlog alongside all other work items, and brought into a sprint.

值得注意的是,这次并没有用来解决技术债务。 我们的采购订单的理解,以及有资格结算技术债务的价值,使它可以与所有其他工作项目一起排入待办事项列表,并进入冲刺阶段。

是否需要额外的治理? (Is extra governance required?)

Responsibility for governing ‘how’ and ‘when’ a team member takes their Innovation day is left to the Product Teams themselves. Considerations include: incident response, Scrum events, campaign launches, and delivery cadence. We don’t ‘police’ how the day is spent from outside the team but do encourage sharing the output in our fortnightly ‘Tech-Talks’ or by writing a ‘Tech-Blog’.

产品团队自己负责管理团队成员“如何”以及“何时”参加创新日的责任。 考虑因素包括:事件响应,Scrum事件,活动启动和交付节奏。 我们不会“警告”团队外部如何度过一天,而是鼓励在每两周的“技术对话”中或通过编写“技术博客”来分享成果。

Some developers are happy to take their Innovation day in isolation. Others appreciate guidance from their peers or mentor.

一些开发人员很乐意将创新日孤立起来。 其他人则感谢同龄人或导师的指导。

Our most notable output has derived from team members investing their efforts in joint ventures. This has allowed team members to broaden their personal networks, and experience other team cultures and ways of working. It also allows team members to experience a role other than their own in a safe environment i.e. Developer as Scrum Master, Javascript Developer as Java Developer.

我们最引人注目的产出来自团队成员在合资企业中的投入。 这使团队成员可以扩大他们的个人网络,并体验其他团队文化和工作方式。 它还允许团队成员在安全的环境中体验除自己以外的其他角色,例如,开发人员为Scrum Master,Javascript开发人员为Java开发人员。

对团队的影响 (Impact on the team)

When initially discussing the concept with Stakeholders, it was clear there was some nervousness around diverting 10% of available effort away from the planned roadmap. However, we were confident that giving team members the freedom to innovate and find better ways of working would quickly restore any drop in velocity resulting from reducing the number of work-days in a sprint.

最初与利益相关者讨论此概念时,很明显有些紧张,无法将10%的可用精力从计划的路线图上挪开。 但是,我们有信心,使团队成员能够自由创新和找到更好的工作方式,可以Swift减少因冲刺减少工作日而导致的速度下降。

1 year on and this hypothesis seems to be correct. The impact this freedom has had on the team culture and motivation has been significant, and was something we hadn’t fully anticipated. Simply by offering the team more autonomy and the opportunity to work with the latest technology has been one of the most positive outcomes of this process.

1年后,这个假设似乎是正确的。 这种自由对团队文化和动力的影响是巨大的,这是我们没有完全预料到的。 仅通过为团队提供更大的自治权和使用最新技术的机会,就一直是此过程中最积极的成果之一。

结论 (In conclusion)

The Innovation Day has allowed us to ‘look up’ on a more frequent basis and ensure we work smarter, not harder.

创新日使我们能够更频繁地“查找”并确保我们更聪明而不是更努力地工作。

To stakeholders, we’ve found ‘1 day in every 10’ is very palatable when compared to the alternative of having large but infrequent ‘Technical Innovation Projects’ on the roadmap halting delivery for months.

对利益相关者而言,与路线图上有大型但不频繁的“技术创新项目”而将交付中断数月之久的备选方案相比,我们发现“十分之一日”非常可口。

If your situation is similar to ours, then do consider adopting this initiative. We’d love to hear about your experience or alternative approach. Other areas of our business such as Client Services are becoming increasingly savvy towards the benefits that Agile principles bring. We’re excited to see what innovation can be brought to their area too.

如果您的情况与我们的情况相似,那么请考虑采用此计划。 我们希望知道您的经历或替代方法。 客户服务等我们业务的其他领域对敏捷原则带来的好处越来越精明。 我们很高兴看到也可以在他们的领域带来什么创新。

Team feedback

团队反馈

“Having regular periods where I can focus on new technology & strengthen specific areas has been invaluable. I find it better than going on the odd course as I can go at my own pace and focus exactly on what I feel is most needed.” — Mark, Front-end developer.

“定期安排我可以专注于新技术并加强特定领域的工作非常宝贵。 我发现这比选择单调的方式更好,因为我可以按照自己的步调,完全专注于我认为最需要的东西。” Mark,前端开发人员。

“I love what our technical team has achieved and this is yet another advancement on top of ‘continuous deployment’ with a staggering level of releases. Crunch has always been an entrepreneurial environment where the team contributes their ideas, and the Innovation Day is that perfect freedom to deliver the ultimate ideas — whether they be big or small. The team always knows best”. — Darren, Founder CEO.

“我喜欢我们的技术团队所取得的成就,这是在'持续部署'之上的又一个进步,发布的版本令人震惊。 紧缩始终是一个企业环境,团队可以在其中贡献自己的想法,而创新日则是提供终极想法(无论大小)的完美自由。 团队总是最了解”。 达伦(Darren),创始人兼首席执行官。

Written by Jamie Hollis — Developer, turned Scrum Master, turned Development Manager.

杰米·霍利斯(Jamie Hollis)撰写-开发人员,后来成为Scrum Master,后来变成了开发经理。

Find out more about the Technology team at Crunch and our current opportunities here.

此处了解有关Crunch技术团队的更多信息以及我们当前的机会。

翻译自: https://www.freecodecamp.org/news/the-importance-of-time-to-think-f2ae19667937/

软件开发重要性

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

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

相关文章

自动登录360,百度

方便登录,写的小工具 1 import win.ui;2 import web.ui;3 /*DSG{{*/4 var winform ..win.form(text"AAuto Form";right599;bottom399)5 winform.add(6 button{cls"button";text"百度";left41;top25;right163;bottom59;z1};7 button2…

arm linux 开机电路_【技术角度看问题之一】ARM到底是个啥?

【小宅按】近期公司推出来基于ARM芯片的服务器,本文就一些基本概念,比如ARM, ARM64, ARMv8, ARM7,ARMv7, 64位等让人费解的概念进行了粗浅地分析,涉及的关键字已用粗体标出。文中观点仅仅是一家之言,拙劣之…

leetcode77. 组合(回溯)

给定两个整数 n 和 k&#xff0c;返回 1 … n 中所有可能的 k 个数的组合。 示例: 输入: n 4, k 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ] 代码 class Solution {List<List<Integer>> cListnew ArrayList<>();public List<List<I…

linux系统配置脚本,Linux系统配置脚本开机自启

在日常使用过程中&#xff0c;当有时候需要运行开机自启脚本&#xff0c;同时想看到输出结果的时候&#xff0c;不免就需要将系统配置为免密登录模式&#xff0c;本文主要介绍再init3模式(多用户命令行界面)&#xff0c;运行开机自启脚本及输出脚本指令运行数据结果。本文使用的…

WPF多线程UI更新

前言 在WPF中&#xff0c;在使用多线程在后台进行计算限制的异步操作的时候&#xff0c;如果在后台线程中对UI进行了修改&#xff0c;则会出现一个错误&#xff1a;&#xff08;调用线程无法访问此对象&#xff0c;因为另一个线程拥有该对象。&#xff09;这是很常见的一个错误…

iOS------App之间传递数据的几种方式

UIDocumentInteractionController UIActivityViewController Shared Keychain Access Custom URL Scheme Web Service iCloud API UIPasteboard 参考 http://enharmonichq.com/sharing-data-locally-between-ios-apps/http://stackoverflow.com/questions/9425706/share-data-b…

了解如何使用Vue.js CLI

Interested in learning Vue.js? Get my ebook at vuehandbook.com有兴趣学习Vue.js吗&#xff1f; 在vuehandbook.com上获取我的电子书 One of them is the Vue Command Line Interface (CLI).其中之一是Vue命令行界面(CLI)。 Note: There is a huge rework of the CLI goin…

rabbitmq学习——队列

public class Send { public static final String routingKey "wuqidi_task_durable"; /*工作队列 也叫任务队列 目的是将任务发送到队列中 由工作者进行处理 在后台的多个工作者中 任务是共享的*/ public static void main(String[] args) throws Exception{ Conne…

python 战舰_简单Python战舰

我最近开始学习python&#xff0c;并决定尝试制作我的第一个项目。我正在尝试做一个战舰游戏&#xff0c;随机放置两个3块长的船在一块板上。但效果不太好。我为2号飞船做了一个临时的循环&#xff0c;它应该检查一下旁边的两个空间是否空闲&#xff0c;然后在那里建立自己的空…

leetcode面试题 08.12. 八皇后(回溯)

设计一种算法&#xff0c;打印 N 皇后在 N N 棋盘上的各种摆法&#xff0c;其中每个皇后都不同行、不同列&#xff0c;也不在对角线上。这里的“对角线”指的是所有的对角线&#xff0c;不只是平分整个棋盘的那两条对角线。 注意&#xff1a;本题相对原题做了扩展 示例: 输…

linux 进入redis 数据库,Linux下Redis数据库的安装方法与自动启动脚本分享

安装Redis(1) 下载Rediswget http://redis.googlecode.com/files/redis-2.2.11.tar.gztar xzvf redis-2.2.11.tar.gz(2) 编译并安装Redismake && make install(3) 复制并修改配置文件cp redis.conf /etc/redis.confvi /etc/redis.conf注意修改以下几项&#xff1a;daem…

Flutter 36: 图解自定义 View 之 Canvas (三)

小菜继续学习 Canvas 的相关方法&#xff1a; drawVertices 绘制顶点 小菜上次没有整理 drawVertices 的绘制方法&#xff0c;这次补上&#xff1b;Vertice 即顶点&#xff0c;通过绘制多个顶点&#xff0c;在进行连线&#xff0c;多用于 3D 模型中&#xff1b; drawVertices 包…

sphinx 项目根目录_如何使用Sphinx工具记录Django项目

sphinx 项目根目录I recently visited a company where I had a nice talk with one of its employees. We talked about technology and programming. Then we touched the subject of project documentation. Specifically how React does it automatically but Django doesn…

程序员必知之浮点数运算原理详解

导读&#xff1a;浮点数运算是一个非常有技术含量的话题&#xff0c;不太容易掌握。许多程序员都不清楚使用操作符比较float/double类型的话到底出现什么问题。 许多人使用float/double进行货币计算时经常会犯错。这篇文章是这一系列中的精华&#xff0c;所有的软件开发人员都应…

axure选中后横线切换_3、开关状态切换 —— Axure实用交互

写在开头:开关的制作在几乎所有原型设计中都会用到&#xff0c;所以美观自然的交互开关可以给你的原型设计加分不少。本次开关设计主要用到的是逻辑为&#xff1a;选中状态的切换首先&#xff0c;来看一下演示动画开始原型设计一、创建元件首先需要打开Axure软件&#xff0c;并…

Django框架——模型(数据库操作)

-- models.py-- ORM(object-relation mapping) 实现数据模型与数据库的解耦&#xff1b;# 对象&#xff0c;关系&#xff0c;映射&#xff1b;1.根 据对象的类型生成表结构&#xff1b;2.将对象、列表的操作&#xff0c;转换为sql语句&#xff1b;3.将sql查询到的结果转换为对象…

leetcode140. 单词拆分 II(回溯+记忆化)

给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict&#xff0c;在字符串中增加空格来构建一个句子&#xff0c;使得句子中所有的单词都在词典中。返回所有这些可能的句子。 说明&#xff1a; 分隔时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 …

#loj 3058 [HNOI2019] 白兔之舞

单位根反演思博题 模数是乱给的记得整个任意模数ntt k为p-1的约数意味着一定存在k次单位根&#xff0c;设g是p的原根则\(w_{k}^{1}g^{\frac{k-1}{p}}\) 既然k次单位根存在自然考虑单位根反演了 设\(f(i)\)表示跳了i步并且停在了第二维为y的顶点的方案数 设\(st\)表示初始向量而…

标杆徐2018 Linux自动化运维实战,标杆徐2018 Linux自动化运维系列⑦: SaltStack自动化配置管理实战...

结合企业自动化集群场景讲解&#xff0c;轻松玩转SaltStack自动化配置管理工具第1章 SaltStack基础应用SaltStack安装SaltStack认证Saltstack远程执行SaltStack配置管理第2章 SaltStack数据系统SaltStack数据系统-Grains 客户端向服务端发送状态SaltStack数据系统-paiil 服务…

JS 对象引用问题

var a {n:1}; var b a; a {n:2}; a.x a ;console.log(a.x);console.log(b.x); var a {n:1}; var b a; a.x a {n:2}; console.log(a.x);console.log(b.x); 这两个问题主要理解两点就很简单了。 对象是引用类型&#xff0c;改变赋值只是改变指针的引用。运算符相当于改变…