{"id":1421,"date":"2011-11-21T18:21:45","date_gmt":"2011-11-22T01:21:45","guid":{"rendered":"https:\/\/simpleprogrammer.com\/?p=1421"},"modified":"2016-09-19T19:39:00","modified_gmt":"2016-09-19T23:39:00","slug":"understanding-the-vertical-slice","status":"publish","type":"post","link":"https:\/\/simpleprogrammer.com\/understanding-the-vertical-slice\/","title":{"rendered":"Understanding the Vertical Slice"},"content":{"rendered":"<p>One of the biggest challenges in breaking down backlogs is knowing how to split up the work from a backlog into right sized pieces.\\n\\nI\u2019ve already talked about the concept that <a href=\"https:\/\/simpleprogrammer.com\/2010\/07\/09\/why-small-is-better\/\">smaller is better<\/a>, but I we haven\u2019t really addressed the decision of how to actually divide a backlog up to make it smaller.\\n\\n<a href=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2011\/11\/slice.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-left: 0; padding-right: 0; display: inline; padding-top: 0; border: 0;\" title=\"slice\" src=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2011\/11\/slice_thumb.jpg\" alt=\"slice\" width=\"495\" height=\"495\" border=\"0\" \/><\/a>\\n\\n<\/p>\n<h2><\/h2>\n<p>\\n\\n<\/p>\n<h2><\/h2>\n<p>\\n\\n<\/p>\n<h2><\/h2>\n<p>\\n\\n<\/p>\n<h2>The default path<\/h2>\n<p>\\n\\nMost developers trying to break down a backlog into smaller chunks will automatically head down the path of using a \u201chorizontal slice.\u201d\\n\\n<a href=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2011\/11\/horizontal.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-left: 0; padding-right: 0; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0; border: 0;\" title=\"horizontal\" src=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2011\/11\/horizontal_thumb.jpg\" alt=\"horizontal\" width=\"285\" height=\"214\" border=\"0\" \/><\/a>\\n\\nThis is how we tend to think.\\n\\nWhat do I mean by a horizontal slice?\\n\\nA horizontal slice is basically a slice through the feature or backlog that horizontally divides up the architecture.\\n\\nMost things are built this way.\\n\\nIf you were to build a house, you would probably start by slicing up the project horizontally.\\n\\nYou would first pour the foundation.\u00a0 Then put up the walls.\u00a0 Then put on the roof and many more steps, leaving the finishing work for last.\\n\\nThis same thinking usually gets applied to breaking up backlogs in Agile development.\\n\\nIt would seem pretty silly to build a house where you finished one room completely at a time.\\n\\n<\/p>\n<h2><\/h2>\n<p>\\n\\n<\/p>\n<h2>Agile software development is different<\/h2>\n<p>\\n\\nThere is a distinct difference though, between developing software in an Agile way and building a house.\\n\\nThe big difference is that in Agile software development, true Agile development, you don\u2019t know exactly what you are going to build until you are done building it.\\n\\nWith a house this is rarely the case.\\n\\nWith a house, you have some blueprints that you have drawn up ahead of time.\u00a0 You know exactly where each wall will be and where each outlet will be.\u00a0 You may have even built houses before that are very similar.\\n\\nWhen building software, unless you are taking a waterfall approach and planning everything upfront, you don\u2019t know what you are really building until you are done.\\n\\nBefore you object to this statement, consider this:\\n\\n<strong>This is the point of Agile development.<\/strong>\\n\\nAgile means responding to change.\\n\\nBuilding a house, you do not expect the customer to say:\\n\\n\u201cHmm, yeah, I don\u2019t really like that wall there.\u201d\\n\\n\u201cActually, I am thinking we are going to need 5 bedrooms now.\u201d\\n\\nIn software development, you are expecting statements analogous to the above!\\n\\n<\/p>\n<h2>So what is vertical slicing?<\/h2>\n<p>\\n\\nSimply put, building one room at a time.\\n\\nBut it\u2019s not functional!\u00a0 Who wants a house one room at a time?!?\\n\\nCorrect! It is not functional as a house, but we can pour more foundation, change how we are going to do the rest of the rooms and even knock down the walls and start over without incurring a huge cost.\\n\\nThe point in building our software \u201cone room at a time,\u201d is that we are giving the customer a chance to see the product as it is being built in a way that matters to them and enables them to test it out.\\n\\nSure they aren\u2019t going to be able to live in it until it is all done.\u00a0 But, they will have the ability to step into a room and envision it with all their furniture in there.\\n\\nCustomers don\u2019t care about foundations and framed in walls.\u00a0 As a developer, you might be able to look at some foundation and framed in walls and envision what the house will look like, but the customer can\u2019t and worse yet, it can\u2019t be tested.\\n\\nVertical slicing in software development is taking a backlog that might have some database component, some business logic and a user interface and breaking it down into small stepwise progressions where each step cuts through every slice.\\n\\nThe idea is that instead of breaking a backlog up into the following:\\n\\n<\/p>\n<ul>\\n    <\/p>\n<li>Implement the database layer for A, B and C<\/li>\n<p>\\n    <\/p>\n<li>Implement the business logic layer for A, B and C<\/li>\n<p>\\n    <\/p>\n<li>Implement the user interface for A, B and C<\/li>\n<p>\\n<\/ul>\n<p>\\n\\nThe backlog is broken up into something like:\\n\\n<\/p>\n<ul>\\n    <\/p>\n<li>Implement A from end to end<\/li>\n<p>\\n    <\/p>\n<li>Implement B from end to end<\/li>\n<p>\\n    <\/p>\n<li>Implement C from end to end<\/li>\n<p>\\n<\/ul>\n<p>\\n\\n<\/p>\n<h2><\/h2>\n<p>\\n\\n<\/p>\n<h2>Sounds easy enough, why the debate?<\/h2>\n<p>\\n\\nBecause it is NOT easy.\\n\\nI\u2019m not going to lie to you.\u00a0 It is MUCH easier to slice up a backlog horizontally.\\n\\nAs developers we tend to think about the horizontal slicing when we plan out the implementation of a backlog.\\n\\nWe tend to want to implement things by building one layer at a time.\\n\\nThinking about how to break apart a backlog into vertical slices requires us to step outside the understanding of the code and implementation and instead think about the backlog in small pieces of working functionality.\\n\\nThere is almost always some progression of functionality that can be found for a large backlog.\\n\\nWhat I mean by this is that there are almost always smaller steps or evolutions in functionality that can be created in order to produce and end result in software development.\\n\\nSometimes the steps that are required to break up a backlog vertically are going to result in a bit of waste.\\n\\nSometimes you are going to purposely create a basic user interface that you know you are going to redo parts of as you implement more vertical slices.\\n\\nThis is OK!\\n\\nIt is better to plan small amounts of rework than to build up an entire feature one horizontal slice at a time and have to rework huge parts of the feature that weren\u2019t planned for.\\n\\n<\/p>\n<h2><\/h2>\n<p>\\n\\n<\/p>\n<h2>So what is the benefit?<\/h2>\n<p>\\n\\nYou might be thinking to yourself that this sounds like more work without much benefit.\u00a0 So why would I bother to break up a backlog vertically?\\n\\nIs it really that important?\\n\\nI\u2019ve already hinted at some of the benefits of slicing things vertically.\\n\\nThe true impetus behind vertical slicing is the very cornerstone of Agile methodology.\u00a0 It is about delivering working functionality as soon as possible.\\n\\nWe aren\u2019t going to cover the whole reasoning behind this idea in Agile development.\u00a0 I am assuming that you already subscribe to the idea that delivering working functionality as soon as possible is important and valuable.\\n\\nBased on that premise alone, you can see that horizontal slicing is in direct violation to one of Agile methodology\u2019s core tenants.\\n\\nIt is interesting to me how many people are huge proponents of breaking entire systems up into functional pieces that are delivered one piece at a time, but are so opposed to doing it at the micro scale when dealing with individual backlog items.\\n\\nIf you are opposed to what I am saying about vertical slicing, you really have to ask yourself whether or not you truly subscribe to the same idea applied at the larger level, because there really isn\u2019t a difference.\\n\\n<em>If you have the skills but you just aren&#8217;t seeing the success you deserve in your career, then do check out our Simple Programmer course <a href=\"https:\/\/simpleprogrammer.com\/store\/products\/how-to-market-yourself\/\">&#8220;How to Market Yourself as a Software Developer&#8221;.<\/a><\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of the biggest challenges in breaking down backlogs is knowing how to split up the work from a backlog into right sized pieces.\\n\\nI\u2019ve already talked about the concept that smaller is better, but I we haven\u2019t really addressed the decision of how to actually divide a backlog up to make it smaller.\\n\\n\\n\\n \\n\\n \\n\\n&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[11287,303624],"tags":[],"class_list":["post-1421","post","type-post","status-publish","format-standard","hentry","category-agile","category-user-stories"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Understanding the Vertical Slice - Simple Programmer<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/simpleprogrammer.com\/understanding-the-vertical-slice\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Understanding the Vertical Slice - Simple Programmer\" \/>\n<meta property=\"og:description\" content=\"One of the biggest challenges in breaking down backlogs is knowing how to split up the work from a backlog into right sized pieces.nnI\u2019ve already talked about the concept that smaller is better, but I we haven\u2019t really addressed the decision of how to actually divide a backlog up to make it smaller.nnnn nn nn...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/simpleprogrammer.com\/understanding-the-vertical-slice\/\" \/>\n<meta property=\"og:site_name\" content=\"Simple Programmer\" \/>\n<meta property=\"article:published_time\" content=\"2011-11-22T01:21:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-09-19T23:39:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2011\/11\/slice_thumb.jpg\" \/>\n<meta name=\"author\" content=\"John Sonmez\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"John Sonmez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/understanding-the-vertical-slice\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/understanding-the-vertical-slice\\\/\"},\"author\":{\"name\":\"John Sonmez\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#\\\/schema\\\/person\\\/1abc70edfb189184827740310672de67\"},\"headline\":\"Understanding the Vertical Slice\",\"datePublished\":\"2011-11-22T01:21:45+00:00\",\"dateModified\":\"2016-09-19T23:39:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/understanding-the-vertical-slice\\\/\"},\"wordCount\":1252,\"commentCount\":10,\"image\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/understanding-the-vertical-slice\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2011\\\/11\\\/slice_thumb.jpg\",\"articleSection\":[\"Agile\",\"User Stories\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/simpleprogrammer.com\\\/understanding-the-vertical-slice\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/understanding-the-vertical-slice\\\/\",\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/understanding-the-vertical-slice\\\/\",\"name\":\"Understanding the Vertical Slice - Simple Programmer\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/understanding-the-vertical-slice\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/understanding-the-vertical-slice\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2011\\\/11\\\/slice_thumb.jpg\",\"datePublished\":\"2011-11-22T01:21:45+00:00\",\"dateModified\":\"2016-09-19T23:39:00+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#\\\/schema\\\/person\\\/1abc70edfb189184827740310672de67\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/understanding-the-vertical-slice\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/simpleprogrammer.com\\\/understanding-the-vertical-slice\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/understanding-the-vertical-slice\\\/#primaryimage\",\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2011\\\/11\\\/slice_thumb.jpg\",\"contentUrl\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2011\\\/11\\\/slice_thumb.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/understanding-the-vertical-slice\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/simpleprogrammer.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Understanding the Vertical Slice\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#website\",\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/\",\"name\":\"Simple Programmer\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/simpleprogrammer.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#\\\/schema\\\/person\\\/1abc70edfb189184827740310672de67\",\"name\":\"John Sonmez\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dc2f18dfa76e017566ce607de002d7abe4acfd5ec19a6db82c180b00867b8d94?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dc2f18dfa76e017566ce607de002d7abe4acfd5ec19a6db82c180b00867b8d94?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dc2f18dfa76e017566ce607de002d7abe4acfd5ec19a6db82c180b00867b8d94?s=96&d=mm&r=g\",\"caption\":\"John Sonmez\"},\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/author\\\/jsonmez\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Understanding the Vertical Slice - Simple Programmer","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/simpleprogrammer.com\/understanding-the-vertical-slice\/","og_locale":"en_US","og_type":"article","og_title":"Understanding the Vertical Slice - Simple Programmer","og_description":"One of the biggest challenges in breaking down backlogs is knowing how to split up the work from a backlog into right sized pieces.nnI\u2019ve already talked about the concept that smaller is better, but I we haven\u2019t really addressed the decision of how to actually divide a backlog up to make it smaller.nnnn nn nn...","og_url":"https:\/\/simpleprogrammer.com\/understanding-the-vertical-slice\/","og_site_name":"Simple Programmer","article_published_time":"2011-11-22T01:21:45+00:00","article_modified_time":"2016-09-19T23:39:00+00:00","og_image":[{"url":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2011\/11\/slice_thumb.jpg","type":"","width":"","height":""}],"author":"John Sonmez","twitter_card":"summary_large_image","twitter_misc":{"Written by":"John Sonmez","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/simpleprogrammer.com\/understanding-the-vertical-slice\/#article","isPartOf":{"@id":"https:\/\/simpleprogrammer.com\/understanding-the-vertical-slice\/"},"author":{"name":"John Sonmez","@id":"https:\/\/simpleprogrammer.com\/#\/schema\/person\/1abc70edfb189184827740310672de67"},"headline":"Understanding the Vertical Slice","datePublished":"2011-11-22T01:21:45+00:00","dateModified":"2016-09-19T23:39:00+00:00","mainEntityOfPage":{"@id":"https:\/\/simpleprogrammer.com\/understanding-the-vertical-slice\/"},"wordCount":1252,"commentCount":10,"image":{"@id":"https:\/\/simpleprogrammer.com\/understanding-the-vertical-slice\/#primaryimage"},"thumbnailUrl":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2011\/11\/slice_thumb.jpg","articleSection":["Agile","User Stories"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/simpleprogrammer.com\/understanding-the-vertical-slice\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/simpleprogrammer.com\/understanding-the-vertical-slice\/","url":"https:\/\/simpleprogrammer.com\/understanding-the-vertical-slice\/","name":"Understanding the Vertical Slice - Simple Programmer","isPartOf":{"@id":"https:\/\/simpleprogrammer.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/simpleprogrammer.com\/understanding-the-vertical-slice\/#primaryimage"},"image":{"@id":"https:\/\/simpleprogrammer.com\/understanding-the-vertical-slice\/#primaryimage"},"thumbnailUrl":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2011\/11\/slice_thumb.jpg","datePublished":"2011-11-22T01:21:45+00:00","dateModified":"2016-09-19T23:39:00+00:00","author":{"@id":"https:\/\/simpleprogrammer.com\/#\/schema\/person\/1abc70edfb189184827740310672de67"},"breadcrumb":{"@id":"https:\/\/simpleprogrammer.com\/understanding-the-vertical-slice\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/simpleprogrammer.com\/understanding-the-vertical-slice\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/simpleprogrammer.com\/understanding-the-vertical-slice\/#primaryimage","url":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2011\/11\/slice_thumb.jpg","contentUrl":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2011\/11\/slice_thumb.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/simpleprogrammer.com\/understanding-the-vertical-slice\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/simpleprogrammer.com\/"},{"@type":"ListItem","position":2,"name":"Understanding the Vertical Slice"}]},{"@type":"WebSite","@id":"https:\/\/simpleprogrammer.com\/#website","url":"https:\/\/simpleprogrammer.com\/","name":"Simple Programmer","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/simpleprogrammer.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/simpleprogrammer.com\/#\/schema\/person\/1abc70edfb189184827740310672de67","name":"John Sonmez","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/dc2f18dfa76e017566ce607de002d7abe4acfd5ec19a6db82c180b00867b8d94?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/dc2f18dfa76e017566ce607de002d7abe4acfd5ec19a6db82c180b00867b8d94?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dc2f18dfa76e017566ce607de002d7abe4acfd5ec19a6db82c180b00867b8d94?s=96&d=mm&r=g","caption":"John Sonmez"},"url":"https:\/\/simpleprogrammer.com\/author\/jsonmez\/"}]}},"_links":{"self":[{"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/posts\/1421","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/comments?post=1421"}],"version-history":[{"count":0,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/posts\/1421\/revisions"}],"wp:attachment":[{"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/media?parent=1421"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/categories?post=1421"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/tags?post=1421"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}