当前位置: 首页 > 编程日记 > 正文

迷宫出路代码_如何在软件开发的迷宫中找到自己的出路

迷宫出路代码

by Tim Kleier

蒂姆·克莱尔(Tim Kleier)

如何在软件开发的迷宫中找到自己的出路 (How to find your way through the corn maze of software development)

The corn maze is one of my favorite challenges to tackle. It’s an unnerving experience, especially when you don’t have map and you’re doing it with small children. There’s only so much time before someone freaks out because “we’re lost” or loses it because they’re tired and have to pee. And it wouldn’t be any fun if we had a map or GPS to guide the way. The thrill is in trying to figure it out on your own, in discovering every dead end on your way to the maze’s exit.

玉米迷宫是我最喜欢解决的挑战之一。 这是一种令人不安的体验,尤其是当您没有地图并且正在带小孩的时候。 某人因为“我们迷路了”而筋疲力尽或因为他们累了而不得不尿尿而迷失了只有那么多时间。 如果我们有地图或GPS来指引路,那就没什么好玩的了。 激动的是尝试自行解决,发现通往迷宫出口的所有死角。

Software development in an Agile context is very much like navigating your way through a corn maze. Even if you have an expert product and engineering team, you’ve never built this product with this engineering team before. It’s a newly designed corn maze that you’re navigating with your team for the first time.

在敏捷环境中进行软件开发非常类似于在玉米迷宫中导航。 即使您拥有专业的产品和工程团队,也从未与该工程团队一起构建过此产品。 这是您第一次与团队合作的新型设计的玉米迷宫。

What approach do you take? How do you avoid getting lost in all that corn (or code)? (I’m tempted to plant a corny joke right here, but I’m sure I would cease to a-maze you.)

你采取什么方法? 您如何避免迷失所有玉米(或代码)? (我很想在这里种个恶作剧,但我敢肯定我不会再迷糊了你。)

How can you ensure that in both the corn maze and the software development project, they end in triumph rather than tantrums?

您如何确保在玉米迷宫和软件开发项目中,它们以胜利而不是发脾气结束?

玉米迷宫 (The Corn Maze)

Let’s start with the corn maze. Navigating them can be quite difficult, especially if the designer was being cheeky while cutting it. It only took me a few mild (ahem) complaints from my kids before I resolved to develop a killer strategy. I’ll be generous and share it with you, as I doubt you can patent corn maze strategies anyway.

让我们从玉米迷宫开始。 导航它们可能非常困难,尤其是如果设计师在裁切时很厚脸皮的话。 在我决定制定一项杀手级策略之前,我只收到了孩子们的一些温和(抱怨)的抱怨。 我会很慷慨并与您分享,因为我怀疑您仍然可以申请玉米迷宫策略。

At a high level, a corn maze is about making a series of small discoveries and decisions that lead you either deeper into the maze or to the end of it. Each time you come to a fork in the corn maze, you face a decision to which path to take. Take the right path on a consistent basis and… victory!

总体而言,玉米迷宫是关于做出一系列小发现和决策的,它们会导致您深入迷宫或迷宫的尽头。 每次您来到玉米迷宫中的叉子时,都会面临选择走哪条路的决定。 始终如一地走正确的道路,然后……胜利!

Sounds easy, right? But when you’re stuck inside an endless labyrinth of possible routes, it feels anything but easy. The key to keeping your sanity in a corn maze is to follow a simple, methodical strategy.

听起来很简单,对吧? 但是,当您陷入无限可能的路线迷宫中时,这感觉并不轻松。 在玉米迷宫中保持理智的关键是遵循简单,系统的策略。

As you walk the corn maze together and come to a fork in the road, split up and explore the various paths before you. In the very moment, when a group member discovers a dead end or more possible routes on their path, they must immediately return to the rendezvous point. There they will share their findings with the group so it can be factored into the decision of how to proceed. The group can then deduce that if, for example, two paths lead to a dead end, the third path must be the way forward. Then they all proceed together on that path and repeat the same process.

当您一起走过玉米迷宫,来到马路上的叉子时,分手并探索各种路径。 在此刻,当组成员在其路径上发现死胡同或更多可能的路线时,必须立即返回集合点。 在那里,他们将与小组分享他们的发现,以便可以将其纳入如何进行决策中。 然后,该小组可以得出结论,例如,如果两条路径导致死胡同,则第三条路径必定是前进的道路。 然后他们全都沿着这条道路前进,并重复相同的过程。

Continuing this strategy throughout the maze will set up your team for a successful journey through the maze. Even in the most difficult of mazes, a team can work together to effectively deduce the correct way through the maze.

在整个迷宫中继续执行此策略将使您的团队成功完成迷宫之旅。 即使在最困难的迷宫中,一个团队也可以一起工作,以有效地推断出正确的迷宫穿越方式。

We can sum up this strategy with a simple three-step process. As you walk the maze together, any time you come to a crossroads, you split up and do the following:

我们可以通过一个简单的三步过程来总结这种策略。 当您一起走迷宫时,每次遇到十字路口时,您都会分裂并执行以下操作:

  • Reconnaissance — Which routes are dead ends and which lead to other paths?

    侦察 -哪条路线是死胡同,哪些通往其他路线?

  • Report — Share your findings at your rendezvous point

    报告 -在会合点分享您的发现

  • Resolve — Determine which way to proceed

    解决 -确定继续进行的方式

This forms a reliable strategy that transforms an uncertain impasse into a reliable means to discern the way forward. It harnesses the power of a team in a way that engages each member and yet preserves collective progress.

这形成了一种可靠的策略,将不确定的僵局转变为识别前进道路的可靠手段。 它以一种使每个成员都参与但仍保持集体进步的方式来利用团队的力量。

What is critical to the success of this approach is for the group to agree to do it this way. Otherwise you end up with people shouting from all different places in the maze because they can’t find each other or the correct path through the maze. Or perhaps you all stay together, navigating every twist and turn as a team only to find yourself in an argument about which way to proceed.

该方法成功的关键是该小组同意以这种方式进行。 否则,人们最终会在迷宫中的所有不同地方大喊大叫,因为他们找不到彼此,或者找不到穿过迷宫的正确路径。 或者,也许大家都在一起,以团队为单位的每一个转折,都发现自己在争论前进的方向。

玉米迷宫般的软件开发 (Software Development as a Corn Maze)

Okay, so I’ve told you my brilliant strategy to solving corn mazes, but how can we apply this to software development on teams?

好的,我已经告诉您解决玉米迷宫的出色策略,但是我们如何将其应用于团队的软件开发呢?

侦察 (Reconnaissance)

When working on a product feature, the “dead end” path represents a known outcome or finite task. Like a feature that you’ve done before or one you can complete with minimal effort. The path that leads to more paths is the feature that, once the work commences, seems to balloon in scope or becomes hairier than expected.

当使用产品功能时,“死角”路径表示已知结果或有限任务。 就像您之前完成的一项功能一样,您可以轻松完成。 导致更多路径的路径是一项功能,一旦开始工作,它的作用范围似乎就会膨胀或变得比预期的要毛茸茸。

Once each developer discovers whether a feature has a known end or requires further exploration, this phase is complete. It’s important that team members commit to reporting back or that a member of the team reels them in. No going rogue to try to save the day and find the enlightened path. This leads to developers getting lost in code beyond the current scope. Or the team having to wait around all day until Rogue One returns so they can move forward.

一旦每个开发人员发现某个功能是否具有已知目的或需要进一步探索,此阶段便完成。 重要的是团队成员必须做出报告或让团队成员参与进来。不要无赖地试图挽救这一天并找到开明的道路。 这导致开发人员迷失了当前范围之外的代码。 否则,团队必须整天等到Rogue One返回,这样他们才能前进。

报告 (Report)

When a developer determines the scope of the feature they are assigned to, it’s time to report back. They need to return back to the group and report their findings. A technical lead, story owner, or project management software would capture those findings.

当开发人员确定分配给他们的功能范围时,就该报告了。 他们需要返回小组并报告他们的发现。 技术负责人,故事所有者或项目管理软件将捕获这些发现。

The reporting process can take many forms. But the critical element is to provide a clear status update. Did they hit a snag or discover extra items to address? The stand-up in Scrum serves this purpose, but sometimes you need mini-standups or huddles. Especially when approaching a deadline or when features need further dissecting before you can make progress.

报告过程可以采用多种形式。 但是关键要素是提供清晰的状态更新。 他们遇到障碍或发现其他要解决的物品了吗? Scrum中的站立式支持此目的,但有时您需要迷你站立式或up缩。 特别是在临近截止日期或需要进一步剖析功能才能取得进展时。

解决 (Resolve)

The reporting step gives the team insight into how best to navigate the maze of work ahead. It allows for quick pivots and true agility in creating software, as the team can gauge successes or bottlenecks and adjust their efforts. In other words, they can easily resolve what is the best path forward.

报告步骤使团队可以洞悉如何最好地应对未来的工作难题。 由于团队可以评估成功或瓶颈并调整他们的工作,因此可以快速创建软件,并实现真正的敏捷性。 换句话说,他们可以轻松地解决前进的最佳途径。

It’s then the job of a technical lead, the story owner, or a product manager/owner or scrum master to help the team navigate these issues. They need to maintain a priority focus on what’s needed in the short-term while facilitating long-term success as well.

然后由技术负责人,故事所有者或产品经理/所有者或Scrum主管来帮助团队解决这些问题。 他们需要优先关注短期需求,同时也要促进长期成功。

结论 (Conclusion)

If the team commits to this approach in navigating the maze-like nature of software development, it will enhance their agility and velocity. It will allow them to produce more features that are of business value.

如果团队在导航迷宫般的软件开发本质时采用这种方法,它将提高他们的敏捷性和速度。 这将使他们能够生产更多具有商业价值的功能。

I trust the strategy I’ve outlined will lead to the most efficient means by which you can escape both the corn maze and screaming, tired children. As well as screaming, tired developers.

我相信我所概述的策略将带来最有效的方法,使您可以摆脱玉米迷宫和尖叫,疲倦的孩子。 以及尖叫,疲倦的开发人员。

翻译自: https://www.freecodecamp.org/news/finding-your-way-through-the-corn-maze-of-software-development-7bf69c0e7fee/

迷宫出路代码

相关文章:

打包 React 项目并在服务器运行。

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 1.找到项目根目录的package.json文件:如图: 2.打开cmd执行:npm run build 3.生成DIST文件夹。 4.把DIST文件放到服务器phpStudty根目录,访问index.html。…

一些有用的Python问题

1. 修改IDLE工作路径,在命令交互模式下输入如下指令: >>> import os >>> os.getcwd() #查看当前的工作路径 >>> os.chdir(E:\\Python\\Demo) #修改当前的工作路径 2.Python中 ImportError: cannot import name NUMPY_MKL 的…

Python核心编程笔记---- print

在仅用变量名时,输出的字符串是用单引号括起来的。这个是为了让非字符串对象也可能以字符的形式显示在屏幕上。 而print 函数打印出来的是变量的值。 print 调用的是str()方法。而仅用变量名时调用的是repr()方法。 证明:------------------------------…

latex 插图解释_大O符号-只需插图和视频即可解释

latex 插图解释Big O notation is used to communicate how fast an algorithm is. This can be important when evaluating other people’s algorithms, and when evaluating your own! In this article, I’ll explain what Big O notation is and give you a list of the m…

[YTU]_2002(C语言实验——单词统计)

Description 从键盘输入一行字符,统计其中单词的个数,各单词以空格分隔,且空格数可以是多个。Input 输入只有一行句子。仅有空格和英文字母构成。 Output 单词的个数。 Sample Input stable marriage problem Consists of Matching memb…

资本中国人物-金融

一、二、三、店、五、土地、七、八、玖、拾起、白、千、一万、一亿、元(圆)、角、支、零、整个。这是上图中我们经常要填写。问:什么是它用数词?想必很多人都不是很清楚! 请看下面的两个相关的表数词: 1、数字化和大、小写数字对照…

Ant Design Pro 网络请求流程

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 在 Ant Design Pro 中,一个完整的前端 UI 交互到服务端处理流程是这样的: UI 组件交互操作; 调用 model 的 effect; 调用统一管理的 service 请求函数&a…

在Google Cloud Platform上持续部署Node.js

by Gautam Arora由Gautam Arora 在Google Cloud Platform上持续部署Node.js (Continuous Deployment for Node.js on the Google Cloud Platform) Google Cloud Platform (GCP) provides a host of options for Node developers to easily deploy our apps. Want a managed ho…

hdu-1108 最小公倍数

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid1108 题目类型: 数论 题意概括: 求两个数的最小公倍数 解题思路: 模拟 题目: 最小公倍数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/O…

sql-schema与catalog

schema: 指的是说当偶create database caiceclb时,caiceclb就是一个schema catalog: 指的是所有的database目录,就像上图显示的那样,将MySQL原来的(mysql,infomation_schema)及后来新建的的data…

这是如何更好地利用JavaScript数组的方法

by pacdiv由pacdiv 这是如何更好地利用JavaScript数组的方法 (Here’s how you can make better use of JavaScript arrays) Quick read, I promise. Over the last few months, I noticed that the exact same four mistakes kept coming back through the pull requests I c…

07、C语言——函数

函数 1、函数定义 函数返回值类型 函数名(形式参数列表)      {         函数体;      } 注意: 定义有参函数时,形参的定义可以采用传统方式或现代方式两种 1)传统方式: int …

This is probably not a problem with npm. There is likely additional logging output above

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 E:\weii_objct\invoice-manage-web-view>npm start > ant-design-pro@2.1.0 start E:\weii_objct\invoice-manage-web-view > cross-env APP_TYPE=site umi dev cross-env 不是内部或外部命令…

parcel react_如何使用Parcel捆绑React.js应用程序

parcel reactby Michael Ozoemena迈克尔奥索埃梅纳(Michael Ozoemena) 如何使用Parcel捆绑React.js应用程序 (How to use Parcel to bundle your React.js application) 什么是包裹? (What’s Parcel?) Parcel is a web application bundler which offers a blazi…

SparkSQL 与 Spark Core的关系

不多说,直接上干货! SparkSQL 与 Spark Core的关系 Spark SQL构建在Spark Core之上,专门用来处理结构化数据(不仅仅是SQL)。 Spark SQL在Spark Core的基础上针对结构化数据处理进行很多优化和改进, 简单来讲: Spark SQ…

linux操作系统-设置静态ip

在使用linux虚拟机的时候因为经常有关机的需求,然后重新开机后可能面临这上一次获取的ip被改变,在这里我分享一下在linux 下设置静态ip的经验 1.查看路由状态 [rootlocalhost ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Met…

判断数组里面的下标是否等于一个字符串

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 使用includes() 1、判断字符串里面是否包含一个字符串 示例: var a aaaaaaaavconsole.log(a.includes(v)); //truevar a aaaaaaaavconsole.log(a.includes(c)); //falsevar a aa…

如何获得更多的自由开发者客户

by Jad Joubran通过贾德乔布兰(Jad Joubran) 如何获得更多的自由开发者客户 (How to get more clients as a freelance developer) 我希望几年前知道的实用技巧 (Practical tips I wish I knew a few years ago) Whenever a conversation about freelancing kicks off with fe…

2017.6.4 入门组 NO.2——睡眠

其实这题就是将第二个时间-第一个时间,小于0的补全就A了代码如下: var x,y,k:string;l1,l2,x1,x2,x3,y1,y2,y3:longint; beginreadln(x);readln(y);l1:pos(:,x);l2:pos(:,y);k:copy(x,1,2); val(k,x1);k:copy(x,l11,2); val(k,y1);k:copy(y,1,2); val(k…

微信小程序获取用户收货地址 完整代码

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 获取用户收货地址需要用户点击授权,所以有两种情况,确认授权、取消授权。 情况一,用户第一次访问用户地址授权,并且点击确定授权。 情况二,用…

easyui的combobox下拉框初始化默认值以及保持该值一直显示的方法

easyui的combobox下拉框默认初始值是空,下面是实现从远程加载数据之后初始化默认值,以及让该值一直排在下拉框的最顶部的方式。 目前的需求是需要在初始化的时候添加"全部数据库"字段,并且在下拉的时候,"全部数据库"一直排在最顶部。 初始化效果…

关系数据库非关系数据库_如何与关系数据库最佳配合

关系数据库非关系数据库Relational databases handle data smoothly, whether working with small volumes or processing millions of rows. We will be looking at how we can use relational databases according to our needs, and get the most out of them.关系数据库无论…

看过的bootstrap书籍(附下载地址)

http://yun.baidu.com/share/link?shareid3820784617&uk1008683945 以下书籍下载地址。 《BootStrap入门教程》 就是网上的常规教程,过了一遍,不是很重要。 《Bootstrap实战_第一章》 没找到其余的章节,不过这本书不如直接看网上的boots…

Sql的连接表补充

连接条件可在FROM或WHERE子句中指定&#xff0c;建议在FROM子句中指定连接条件。WHERE和HAVING子句也可以包含搜索条件&#xff0c;以进一步筛选连接条件所选的行。 连接可分为以下几类&#xff1a; 内连接。&#xff08;典型的连接运算&#xff0c;使用像 或 <…

js正则验证身份证号是否正确

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 封装js公共方法 //验证身份证格式 const IdentityCodeValid sId > {const aCity { 11: "北京", 12: "天津", 13: "河北", 14: "山西", 15: "内蒙古…

jupyter笔记本_如何为Jupyter笔记本电脑设置PySpark

jupyter笔记本by Tirthajyoti Sarkar由Tirthajyoti Sarkar 如何为Jupyter笔记本电脑设置PySpark (How to set up PySpark for your Jupyter notebook) Apache Spark is one of the hottest frameworks in data science. It realizes the potential of bringing together both …

php 判断是否有相同的ID,如果有就修改数据库字段,没有就插入数据库字段

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 php代码 <?phpheader("Content-Type:text/html;charsetutf8"); header("Access-Control-Allow-Origin: *"); //解决跨域header(Access-Control-Allow-Methods:POST);// 响应类…

MySql存储引擎特性对比

下表显示了各种存储引擎的特性&#xff1a; 其中最常见的两种存储引擎是MyISAM和InnoDB 刚接触MySQL的时候可能会有些惊讶&#xff0c;竟然有不支持事务的存储引擎&#xff0c;学过关系型数据库理论的人都知道&#xff0c;事务是关系型数据库的核心。但是在现实应用中&#xff…

如何使用React提前三天计划

by Mohit Jain由Mohit Jain 如何使用React提前三天计划 (How you can plan three days ahead with React) Today we’ll be making a ‘to-do’ website… with some different features.今天&#xff0c;我们将建立一个具有一些不同功能的“待办事项”网站。 You can check …

ajax 基础

ajax基础模式 url : "Handler.ashx", -- 提交到哪个服务端 data: { "uname": s }, -- 提交的数据&#xff0c;以键值对的方式传字符串&#xff0c;只能是字符串&#xff0c;可以传多个。 type: "post", …