PageSourceSearch

https://davesabine.com/component---gatsby-theme-blog-src-templates…pe-this-pitfall-mdx-fe35985038e207332b18.js

js davesabine.com collected 2026-10-02 13:53:10 UTC 12,807 bytes, 2 lines download raw bytes

1"use strict";(self.webpackChunkcore=self.webpackChunkcore||[]).push([[2942],{1964:function(e,t,a){a.d(t,{A:function(){return o}});var n=a(3696),l=a.p+"static/phoenix-book-paperback-cover-2023-05-10-2f9d66a11f9298192419928cb942ed24.jpg",r=a(2079);var o=()=>{const e=(0,n.useRef)();return(0,n.useEffect)((()=>{e.current.addEventListener("animationend",(()=>{e.current.addEventListener("click",(()=>{e.current.style.transform="rotateY(180deg)",setTimeout((()=>{e.current.style.transform="rotateY(35deg)"}),3e3)}))}))}),[]),(0,r.Y)("div",{className:"book-3d"},(0,r.Y)("div",{className:"book-3d-body",ref:e},(0,r.Y)("div",{className:"book-3d-page-edge"}),(0,r.Y)("img",{alt:"Phoenix book cover",className:"book-3d-cover",src:l})))}},3023:function(e,t,a){a.d(t,{R:function(){return o}});var n=a(3696);const l={},r=n.createContext(l);function o(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}},3235:function(e,t,a){a.d(t,{A:function(){return d}});var n=a(3696),l=a(1964),r=a(2079);var o=()=>(0,r.Y)("div",{className:"box"},(0,r.Y)("div",{className:"book-ad-cover"},(0,r.Y)(l.A,null)),(0,r.Y)("h2",null,"Get the book"),(0,r.Y)("a",{className:"button primary small",href:"/phoenix"},"Buy Now"),(0,r.Y)("p",null,"$4.2 billion has been spent. The project began in 2007 ",(0,r.Y)("em",null,"and the system still doesn’t work!")),(0,r.Y)("p",null,"How could this happen? Who is to blame? Was it preventable? Get answers to all these questions.")),i=a.p+"static/David-Portrait-(WSJ)-circle-5594919bc65c6ed5a801d54dcdab313b.png";var s=()=>{const e="David Sabine";return(0,r.Y)("div",{className:"space-after blog-bio"},(0,r.Y)("img",{alt:e,className:"blog-bio-photo",src:i}),(0,r.Y)("div",{className:"blog-bio-copy"},(0,r.Y)("strong",null,e),(0,r.Y)("br",null),"Professional Scrum Trainer",(0,r.Y)("br",null),"Professional Kanban Trainer"))},c=a(6885);var m=e=>{let{pageContext:t}=e;const{next:a,previous:l}=t;return(0,r.Y)(n.Fragment,null,(a||l)&&(0,r.Y)("ul",{className:"pagination"},(0,r.Y)("li",null,l&&(0,r.Y)(c.N_,{title:l.title,to:`${l.path}`,rel:"prev"},(0,r.Y)("span",{className:"button small"},"← Previous Article"))),(0,r.Y)("li",null,a&&(0,r.Y)(c.N_,{title:a.title,to:`${a.path}`,rel:"next"},(0,r.Y)("span",{className:"button small"},"Next Article →")))))};var u=e=>{let{pageContext:t}=e;const{tags:a}=t.frontmatter;return(0,r.Y)("div",{className:"box"},(0,r.Y)("h2",null,"Connect with me"),(0,r.Y)("p",null,"Please ",(0,r.Y)("a",{href:"/contact/"},"let me know")," if you’d like more articles on this topic in future."),(0,r.Y)("p",null,"And be sure to check out related articles:"),(0,r.Y)("ul",{className:"actions"},Object.keys(a).map((e=>(0,r.Y)("li",{key:e},(0,r.Y)(c.N_,{"aria-label":`Read more on topic: ${a[e]}`,className:"button xxsmall tag",to:`/articles?tags=${encodeURI(a[e])}`},a[e]))))))};var d=e=>{let{children:t,pageContext:a}=e;return(0,r.Y)("footer",null,(0,r.Y)("div",{className:"grid article-footer-grid"},(0,r.Y)(u,{pageContext:a}),(0,r.Y)(o,null)),(0,r.Y)(s,null),(0,r.Y)(m,{pageContext:a}),t)}},4079:function(e,t,a){var n=a(8898),l=(a(3696),a(2079));t.A=e=>{let{pageContext:t}=e;const{frontmatter:a,gatsbyImageData:r}=t;return(0,l.Y)("header",{className:r?"article-hero article-hero-has-image":"article-hero",style:{"--hero-title-len":`${a.title.length}`,"--hero-bg-image":r?`url('${r.images.fallback.src}')`:"none","--hero-bg-color":null==r?void 0:r.backgroundColor}},(0,l.Y)("div",null,(0,l.Y)("div",null,(0,l.Y)("h1",{className:"contains-highlight-heading"},(0,l.Y)("span",{className:"highlight-heading"},a.title))),(0,l.Y)("div",null,(0,l.Y)("p",null,"Published:"," ",(0,l.Y)("time",{dateTime:a.date},(0,n.GP)(new Date(a.date),"yyyy-MMM-dd"))))))}},4415:function(e,t,a){a(3696);var n=a(2079);t.A=e=>{let{label:t="Listen to this Article",src:a}=e;return(0,n.Y)("div",{className:"readalong"},(0,n.Y)("span",{"aria-hidden":!0},t),(0,n.Y)("audio",{"aria-label":t,controls:!0,preload:"metadata"},(0,n.Y)("source",{src:a,type:"audio/mpeg"})))}},4600:function(e,t,a){a(3696);var n=a(2079);t.A=e=>{let{children:t}=e;return(0,n.Y)("section",null,t)}},5522:function(e,t,a){a.r(t),a.d(t,{Head:function(){return g},default:function(){return b}});var n=a(3023),l=a(3696),r=a.p+"static/velocity-escape-this-pitfall-98817a2110246c800894d6153ad976e3.mp3",o=a(4415);function i(e){const t=Object.assign({p:"p",span:"span",h2:"h2",strong:"strong",ul:"ul",li:"li",em:"em",hr:"hr",a:"a"},(0,n.R)(),e.components);return l.createElement(l.Fragment,null,l.createElement(o.A,{src:r}),"\n",l.createElement(t.p,null,"The map below illustrates a classic problem with the common use of 'velocity' as a metric."),"\n",l.createElement("golden-width",null,l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<span\n      class="gatsby-resp-image-wrapper"\n      style="position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 1030px; "\n    >\n      <a\n    class="gatsby-resp-image-link"\n    href="/static/c95ad73f082d1463440b152941a2d9ce/d61c2/Velocity_Problems_0.png"\n    style="display: block"\n    target="_blank"\n    rel="noopener"\n  >\n    <span\n    class="gatsby-resp-image-background-image"\n    style="padding-bottom: 73.25581395348837%; position: relative; bottom: 0; left: 0; background-image: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAIAAABr+ngCAAAACXBIWXMAAAsTAAALEwEAmpwYAAACUElEQVR42k1Tu47USBT1/38AC2IIiImIkDZjhcRIBAiSGWZhutvucbfreZ9V5R5ptbfcBJQqsMs+Pq/r4WZar/vNtL4cL+9naUVKaVpscbkuZRHsJ0q1cK2VOTPh8Ae4vZie//a6FlIVVUZwqqhKItlu7ShlAMiQY4gx5/gb/GZsN0//3fzI97up1Y5U4fPyhGRURYW0y6hIHLxjyiJKV+bX0/rX4fLqKX4af91+n42oVYNUYTCl1VyomNSIlDAF9tKdVFM3mNq3x/Zh0a9xX1bdhcv9XLsrNR4JwYXsSY1JgAAxnDhk5bolMbw7SqDk3PwwHl0MouXznpA1U0sgh+n4eDwQR1E0fMdsFgypBn6A8lwxpez84hK43D4+RuRswRZFU5CxGK8BRDe1guZC7aKUwVxEf76sqxY2c8Dl+1RZasB6bYmkQm+nbIwWptVGnVl5YLEb1rKaqtZq5vV232j7kocemyE8KCkcOZnUZk/IO3cCDIOyk7694hHgnNzj3e7xdqeQ/ek0R6xJ2pjyLu6BHQlaw8iQ8xlhGpiSSUPwkBciCP6U/Lxz+G0kJDNtEc+jP/3z435ZHjIF7w+Is71vuocthia22ObB2ius2hrPLv10fp/zz92vLw/nw+IKz0qhyxawSSCmQTdXtehWQrUB6OH0qbLLOEa+W57/nRfBubRLyg
1kwW0zc4y+DhWYwhHj2MzBdE7IPMLow3gk4yq7SUy1YamPtY/+7tVIH+2M6C0GEIL1D3iYAbTbjcsjZQZqYE0DycSHOJBDjmQVU8X8+wUUZ0VAKBAAAAABJRU5ErkJggg==\'); background-size: cover; display: block;"\n  ></span>\n  <img\n        class="gatsby-resp-image-image"\n        alt="Map showing 3 routes. One direct, short, with low average velocity along rural roads. Another much longer, not direct, but with much higher average velocity on a multi-lane primary highway."\n        title=""\n        src="/static/c95ad73f082d1463440b152941a2d9ce/7a1fb/Velocity_Problems_0.png"\n        srcset="/static/c95ad73f082d1463440b152941a2d9ce/d9489/Velocity_Problems_0.png 258w,\n/static/c95ad73f082d1463440b152941a2d9ce/fbdcb/Velocity_Problems_0.png 515w,\n/static/c95ad73f082d1463440b152941a2d9ce/7a1fb/Velocity_Problems_0.png 1030w,\n/static/c95ad73f082d1463440b152941a2d9ce/280a1/Velocity_Problems_0.png 1545w,\n/static/c95ad73f082d1463440b152941a2d9ce/d61c2/Velocity_Problems_0.png 1800w"\n        sizes="(max-width: 1030px) 100vw, 1030px"\n        style="width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;"\n        loading="lazy"\n        decoding="async"\n      />\n  </a>\n    </span>'}})),"\n",l.createElement(t.h2,{id:"scenario"},"Scenario"),"\n",l.createElement(t.p,null,"Your family travels each weekend to a nearby lake. You have identified at least these 3 possible routes. ",l.createElement(t.strong,null,"Which route is fastest?")),"\n",l.createElement(t.p,null,"That question is a trick."),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,"The ",l.createElement(t.strong,null,"shortest")," route is 67 kilometers and will take 68 minutes along secondary and rural roads."),"\n",l.createElement(t.li,null,"The ",l.createElement(t.strong,null,"longest")," route is 91 kilometers and will take 90 minutes on a primary highway. ",l.createElement(t.strong,null,"This route has the highest velocity!")),"\n"),"\n",l.createElement(t.p,null,"It is obvious the shortest route is the best. It's the most direct and we'll arrive at our destination sooner. ",l.createElement(t.strong,null,"The trouble is, we'll have go a little slower.")),"\n",l.createElement(t.p,null,"If a manager is with us looking at the same map, if they understand the terrain the same way we do, when they can see the options before them I'm (almost) certain they'd agree to take the route with the lowest velocity. It is the most direct route. But if that manager does not understand the terrain, they are apt to demand the route with the highest velocity. ",l.createElement(t.em,null,"After all, they want the team to go as fast as possible!")),"\n",l.createElement(t.h2,{id:"please-use-this-example-when"},"Please use this example when:"),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,"You are explaining to stakeholders why TDD appears to be slower but is in fact more direct."),"\n",l.createElement(t.li,null,"You find yourself trying to justify building quality in."),"\n",l.createElement(t.li,null,"Your stakeholders are confused why technical debt needs to be repaid as soon as possible."),"\n"),"\n",l.createElement(t.p,null,"(Please share your own examples. I'd love to hear your stories about how velocity is misused and how this article has helped you.)"),"\n",l.createElement(t.h2,{id:"important-end-note"},"Important End Note"),"\n",l.createElement(t.p,null,"Do make sure however that you are always focused on the most direct route. To use this example to justify any sort of gold-plating or pre-optimization is inappropriate."),"\n",l.createElement(t.hr),"\n",l.createElement(t.p,null,"This article also appears at:"),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"//linkedin.com/pulse/velocity-escape-pitfall-david-sabine/"},"LinkedIn")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"//scrum.org/resources/blog/velocity-escape-pitfall"},"Scrum.org")),"\n"))}var s=function(e){void 0===e&&(e={});const{wrapper:t}=Object.assign({},(0,n.R)(),e.components);return t?l.createElement(t,e,l.createElement(i,e)):i(e)},c=a(4600),m=a(3235),u=a(4079),d=a(7058),p=a(8457);const h=e=>{let{children:t,pageContext:a}=e;return l.createElement(d.A,{className:"post"},l.createElement("article",null,l.createElement(u.A,{pageContext:a}),l.createElement(c.A,null,t)),l.createElement("article",{className:"alternatecolor"},l.createElement(m.A,{pageContext:a})))},g=e=>{let{location:t,pageContext:a}=e;return l.createElement(p.A,{location:t,pageContext:a})};function b(e){return l.createElement(h,e,l.createElement(s,e))}},7058:function(e,t,a){a(3696);var n=a(6260),l=a(2079);t.A=e=>{let{children:t}=e;return(0,l.Y)(n.A,{className:"article"},t)}},8457:function(e,t,a){var n=a(3696),l=a(2079);t.A=e=>{let{location:t,pageContext:a}=e;const{creator:r,description:o,locale:i,siteUrl:s,twitterCreator:c}=a.siteMetadata,{excerpt:m,favicon:u,frontmatter:d,gatsbyImageData:p}=a,h={canonicalUrl:`${s}
1${(null==t?void 0:t.pathname)||""}`,description:m||o,keywords:d.tags.join(", "),iconPath:u,imagePath:p.images.fallback.src,title:d.title};return(0,l.Y)(n.Fragment,null,(0,l.Y)("link",{rel:"canonical",href:h.canonicalUrl}),(0,l.Y)("link",{rel:"shortcut icon",href:`${h.iconPath}`}),(0,l.Y)("meta",{name:"author",content:r}),(0,l.Y)("meta",{name:"description",content:h.description}),(0,l.Y)("meta",{name:"keywords",content:h.keywords}),(0,l.Y)("meta",{name:"image",content:`${s}${h.imagePath}`}),(0,l.Y)("meta",{itemProp:"description",content:h.description}),(0,l.Y)("meta",{itemProp:"image",content:`${s}${h.imagePath}`}),(0,l.Y)("meta",{itemProp:"name",content:h.title}),(0,l.Y)("meta",{name:"twitter:card",content:"summary"}),(0,l.Y)("meta",{name:"twitter:creator",content:c}),(0,l.Y)("meta",{name:"twitter:description",content:h.description}),(0,l.Y)("meta",{name:"twitter:image",content:`${s}${h.imagePath}`}),(0,l.Y)("meta",{name:"twitter:image:alt",content:h.title}),(0,l.Y)("meta",{name:"twitter:site",content:c}),(0,l.Y)("meta",{name:"twitter:title",content:h.title}),(0,l.Y)("meta",{property:"og:description",content:h.description}),(0,l.Y)("meta",{property:"og:image",content:`${s}${h.imagePath}`}),(0,l.Y)("meta",{property:"og:image:alt",content:h.title}),(0,l.Y)("meta",{property:"og:locale",content:i}),(0,l.Y)("meta",{property:"og:site_name",content:h.title}),(0,l.Y)("meta",{property:"og:title",content:h.title}),(0,l.Y)("meta",{property:"og:type",content:"website"}),(0,l.Y)("meta",{property:"og:url",content:h.canonicalUrl}),(0,l.Y)("title",null,h.title," — ",r))}}}]);
2//# sourceMappingURL=component---gatsby-theme-blog-src-templates-post-js-content-file-path-src-articles-2019-06-velocity-escape-this-pitfall-mdx-fe35985038e207332b18.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.