{"id":673,"date":"2020-02-11T20:42:39","date_gmt":"2020-02-11T20:42:39","guid":{"rendered":"https:\/\/www.danieledavi.com\/blog\/?p=673"},"modified":"2021-02-10T21:31:49","modified_gmt":"2021-02-10T21:31:49","slug":"spikes-102","status":"publish","type":"post","link":"https:\/\/www.danieledavi.com\/blog\/2020\/02\/spikes-102\/","title":{"rendered":"Spikes 102"},"content":{"rendered":"\n<p class=\"has-text-align-justify\">In my previous article &#8220;<a href=\"https:\/\/www.danieledavi.com\/blog\/2020\/02\/spikes-101\/\" target=\"_blank\" rel=\"noreferrer noopener\">Spike 101<\/a>&#8221; I introduced the concept of Spike and it&#8217;s general use in Agile. In that article we saw that:<\/p>\n\n\n\n<ol><li>Spikes are investigation activities -e.g: research, design, investigation, exploration, prototyping- to gain the knowledge to solve a problem.\u00a0<\/li><li>As Scrum doesn\u2019t prescribe any particular type for Backlog Items, it is up to the team to decide wether they Spikes useful or not.<\/li><li>Spikes shall have ACs, are time-boxed and should be estimable, demonstrable, and acceptable.<\/li><\/ol>\n\n\n\n<p class=\"has-text-align-justify\">In this article I will provide further details and suggestions to make the best use of this practice and avoid pitfalls. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"m_3933771390064351887gmail-Type-of-Spikes\">Different type of spikes<\/h3>\n\n\n\n<p>Often Spikes comes in these 2 forms: functional and technical. <\/p>\n\n\n\n<p><strong>Functional spikes<\/strong> are used to analyse overall solution behaviour and determine:<\/p>\n\n\n\n<ul><li>How to break it down<\/li><li>How to organize the work<\/li><li>Where risk and complexity exist<\/li><li>How to use insights to influence implementation decisions<\/li><\/ul>\n\n\n\n<p><strong>Technical spikes<\/strong> are used to research various approaches in the solution domain and aim to:<\/p>\n\n\n\n<ul><li>Determine a build-versus-buy decision<\/li><li>Evaluate the potential performance or load impact of a new user story<\/li><li>Evaluate specific technical implementation approaches<\/li><li>Develop confidence about the desired solution path<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">What is the difference between Spikes and Tasks?<\/h3>\n\n\n\n<p><strong>(Engineering)&nbsp;Task<\/strong> or &#8220;<em><u>Dev Stories<\/u><\/em>&#8221; (in a pre-Jira project) &#8211; represents a set of engineering work that is&nbsp;not directly related to a user story. The team should try to anticipate &#8220;<em>Dev Stories<\/em>&#8221; and add them to the backlog sooner than later so the PO can plan milestones.<\/p>\n\n\n\n<p>Examples of engineering\u00a0tasks are:<\/p>\n\n\n\n<ul><li>Setup Github project repo.<\/li><li>Setup Cloud account, containers, and services. There might be sub-tasks for these too<\/li><li>Setup Jenkins CI pipeline.<\/li><li>Design overall high-level system architecture.<\/li><li>Research and decide on unit test and mocking framework.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"m_3933771390064351887gmail-The-Exception,-Not-the-Rule\">Spikes are the Exception, Not the Rule<\/h3>\n\n\n\n<p class=\"has-text-align-justify\"><strong>Every user story has uncertainty and risk; that\u2019s the nature of Agile development.<\/strong> The team discovers the right solution through discussion, collaboration, experimentation, and negotiation. <strong>Thus, in one sense, every user story contains spike-like activities to identify the technical and functional risks. <\/strong>The goal of an Agile team is to learn how to address uncertainty in each iteration. Spikes are critical when high uncertainty exists, or there are many unknowns.<\/p>\n\n\n\n<p class=\"has-text-align-justify\">If you are using Jira to manage your product backlog, you may not have by default the &#8220;Spike&#8221; issue type. <a href=\"https:\/\/confluence.atlassian.com\/adminjiracloud\/adding-editing-and-deleting-an-issue-type-844500747.html\" target=\"_blank\" rel=\"noreferrer noopener\">Here a guide on how to add new types.<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"m_3933771390064351887gmail-?-Tips-and-tricks\">Spikes at glance! How to get them right?<\/h3>\n\n\n\n<ul><li>The <strong>time and energy<\/strong> invested in the Spike are intentionally <strong>limited<\/strong> so that the work can be completed within the Sprint while other User Stories are minimally impacted.<\/li><li>You may consider a <strong>spike as an investment for a\u00a0Product Owner<\/strong>\u00a0to figure out what needs to be built and how the team is going to build it.<\/li><li>The output of a Spike should be an <strong>answer to the question<\/strong> being posed. If the experiment is more difficult than anticipated, then maybe the answer is negative. That&#8217;s why the Spike should be limited in time.<\/li><li>Since spikes do not directly deliver user value, use them sparingly.<\/li><li>Since they represent\u00a0uncertainty in one or more potential stories, planning for both the spike and the resulting stories in the same iteration is sometimes risky. However, if it\u2019s small and straightforward, and a quick solution is likely to be found, then it can be quite efficient to do both in the same iteration.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-pullquote is-style-default\"><blockquote><p>If we knew what we were doing, it wouldn\u2019t be called research. <\/p><cite>Albert Einstein<\/cite><\/blockquote><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Other benefits of Spikes<\/h3>\n\n\n\n<p>Spikes encourage break down problems in small batches separating the unknown-unknown part of the problem from the rest.<\/p>\n\n\n\n<p>Spikes explicitly support innovation, research, experimentation while<br \/>time-boxing allow this in transparent, safe, time-costly controlled way.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Would you like to know more about Spikes? <\/h3>\n\n\n\n<p>Here some useful resources:<\/p>\n\n\n\n<ul><li>Mountain Goat Software\u00a0<a href=\"https:\/\/www.mountaingoatsoftware.com\/blog\/spikes\">Spikes<\/a><\/li><li>Scrum.org Forum\u00a0<a href=\"https:\/\/www.scrum.org\/forum\/scrum-forum\/5512\/how-integrate-spike-scrum\">How to Integrate a Spike<\/a><\/li><li>Scrum Alliance\u00a0<a href=\"https:\/\/www.scrumalliance.org\/community\/articles\/2013\/march\/spikes-and-the-effort-to-grief-ratio\">Spikes and Effort-to-Grief Ratio<\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>In my previous article &#8220;Spike 101&#8221; I introduced the concept of Spike and it&#8217;s general use in Agile. In that article we saw that: Spikes are investigation activities -e.g: research, design, investigation, exploration, prototyping- to gain the knowledge to solve a problem.\u00a0 As Scrum doesn\u2019t prescribe any particular type for Backlog Items, it is up [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[263],"tags":[252,290,291,253,289,288],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p90hsv-aR","jetpack-related-posts":[{"id":671,"url":"https:\/\/www.danieledavi.com\/blog\/2020\/02\/spikes-101\/","url_meta":{"origin":673,"position":0},"title":"Spikes 101","author":"Daniele Dav\u00ec","date":"February 10, 2020","format":false,"excerpt":"Scrum is often described as a very prescriptive framework despite this is not the case. Take for example the various type of backlog items that we are used to deal with in our favourite backlog visualisation tool. Some work with Epics and User Stories only, others use a mix of\u2026","rel":"","context":"In &quot;Agile&quot;","block_context":{"text":"Agile","link":"https:\/\/www.danieledavi.com\/blog\/category\/agile-2\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":734,"url":"https:\/\/www.danieledavi.com\/blog\/2021\/10\/no-time-for-agile-meetings\/","url_meta":{"origin":673,"position":1},"title":"No time for agile meetings","author":"Daniele Dav\u00ec","date":"October 23, 2021","format":false,"excerpt":"One of the most recurring topics in many organizations is time spent on meetings.\u00a0If you are a Scrum Master, you may find yourself rolling your eyes like in a Robert Downey Jr meme and you wish you would get a euro for every time you hear someone saying in agile\u2026","rel":"","context":"In &quot;Agile&quot;","block_context":{"text":"Agile","link":"https:\/\/www.danieledavi.com\/blog\/category\/agile-2\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.danieledavi.com\/blog\/wp-content\/uploads\/2021\/03\/Again.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":504,"url":"https:\/\/www.danieledavi.com\/blog\/2019\/12\/update-yourself\/","url_meta":{"origin":673,"position":2},"title":"Update yourself","author":"Daniele Dav\u00ec","date":"December 18, 2019","format":false,"excerpt":"A manifesto for Scrum adoption in your life. By Johanna Pung made this for Wikimedia Deutschland - Wikimedia Deutschland, CC BY-SA 3.0, https:\/\/commons.wikimedia.org\/w\/index.php?curid=19189236 Assuming you already heard about Agile, Scrum, Sprints and Retrospectives. As in any scrum team, the iterative and incremental process culminate in a retrospective, where members receive\u2026","rel":"","context":"In &quot;Agile&quot;","block_context":{"text":"Agile","link":"https:\/\/www.danieledavi.com\/blog\/category\/agile-2\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.danieledavi.com\/blog\/wp-content\/uploads\/2019\/12\/Evolution-des-wissens.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.danieledavi.com\/blog\/wp-content\/uploads\/2019\/12\/Evolution-des-wissens.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.danieledavi.com\/blog\/wp-content\/uploads\/2019\/12\/Evolution-des-wissens.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.danieledavi.com\/blog\/wp-content\/uploads\/2019\/12\/Evolution-des-wissens.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/www.danieledavi.com\/blog\/wp-content\/uploads\/2019\/12\/Evolution-des-wissens.jpg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/www.danieledavi.com\/blog\/wp-content\/uploads\/2019\/12\/Evolution-des-wissens.jpg?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":555,"url":"https:\/\/www.danieledavi.com\/blog\/2020\/07\/is-your-team-doing-scrum\/","url_meta":{"origin":673,"position":3},"title":"Is your team doing Scrum?","author":"Daniele Dav\u00ec","date":"July 26, 2020","format":false,"excerpt":"There many tools and checklists to verify wether your team is doing Scrum and how good (or or bad or ugly) is implementing it. If you are a Scrum Master, self-assessing the following statements from 1 (strongly disagree) to 5 (strongly agree) can help you to make a reality check\u2026","rel":"","context":"In &quot;Agile&quot;","block_context":{"text":"Agile","link":"https:\/\/www.danieledavi.com\/blog\/category\/agile-2\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":462,"url":"https:\/\/www.danieledavi.com\/blog\/2020\/02\/run-daily-scrum-like-a-pro\/","url_meta":{"origin":673,"position":4},"title":"Run daily Scrum like a pro","author":"Daniele Dav\u00ec","date":"February 13, 2020","format":false,"excerpt":"The daily scrum is the heartbeat of a scrum team.As Scrum is a compression algorithm for organizational and engineering best practices, this meeting is not a Scrum invention but it is considered an Agile best practice independently from the adopted framework. It is also known as StandUpMeeting (1993 Jim Coplien),\u2026","rel":"","context":"In &quot;Agile&quot;","block_context":{"text":"Agile","link":"https:\/\/www.danieledavi.com\/blog\/category\/agile-2\/"},"img":{"alt_text":"daily plank","src":"https:\/\/i0.wp.com\/www.danieledavi.com\/blog\/wp-content\/uploads\/2021\/03\/daily_plank.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.danieledavi.com\/blog\/wp-content\/uploads\/2021\/03\/daily_plank.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.danieledavi.com\/blog\/wp-content\/uploads\/2021\/03\/daily_plank.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":946,"url":"https:\/\/www.danieledavi.com\/blog\/2022\/03\/does-agile-work-and-who-should-answer-the-question\/","url_meta":{"origin":673,"position":5},"title":"Does Agile work? And who should answer the question?","author":"Daniele Dav\u00ec","date":"March 29, 2022","format":false,"excerpt":"Before revealing the answer to these million dollar questions, in this article I will try to clean up some misconceptions and cover some basis on the role of an Agile coach (Scrum Master). As explained by Lyssa Adkins (co-author of the Agile coaching competency framework) there is no hierarchy or\u2026","rel":"","context":"In &quot;Agile&quot;","block_context":{"text":"Agile","link":"https:\/\/www.danieledavi.com\/blog\/category\/agile-2\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"amp_validity":null,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.danieledavi.com\/blog\/wp-json\/wp\/v2\/posts\/673"}],"collection":[{"href":"https:\/\/www.danieledavi.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.danieledavi.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.danieledavi.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.danieledavi.com\/blog\/wp-json\/wp\/v2\/comments?post=673"}],"version-history":[{"count":1,"href":"https:\/\/www.danieledavi.com\/blog\/wp-json\/wp\/v2\/posts\/673\/revisions"}],"predecessor-version":[{"id":675,"href":"https:\/\/www.danieledavi.com\/blog\/wp-json\/wp\/v2\/posts\/673\/revisions\/675"}],"wp:attachment":[{"href":"https:\/\/www.danieledavi.com\/blog\/wp-json\/wp\/v2\/media?parent=673"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.danieledavi.com\/blog\/wp-json\/wp\/v2\/categories?post=673"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.danieledavi.com\/blog\/wp-json\/wp\/v2\/tags?post=673"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}