{"id":929,"date":"2010-06-14T07:05:26","date_gmt":"2010-06-14T14:05:26","guid":{"rendered":"https:\/\/simpleprogrammer.com\/?p=929"},"modified":"2018-04-13T12:17:20","modified_gmt":"2018-04-13T16:17:20","slug":"release-management-features-or-time","status":"publish","type":"post","link":"https:\/\/simpleprogrammer.com\/release-management-features-or-time\/","title":{"rendered":"Release Management, Features or Time"},"content":{"rendered":"<p>There is an interesting constraint in release management that is pretty often ignored.\\n\\nI think it is worth talking about because not too many people on Agile projects really realize the implications of this simple constraint.\\n\\n<\/p>\n<blockquote><p>You can either release based on a number of features or a date in time, but not both.<\/p><\/blockquote>\n<p>\\n\\n<\/p>\n<h2>Translation please?<\/h2>\n<p>\\n\\nWhat do I mean by this?\\n\\nSimple.\u00a0 Let&#8217;s say that you are doing a software release in an Agile project.\u00a0 (In any project really, this constraint happens to be one of the reasons waterfall projects often fail\u2026 death-march anyone?)\u00a0 How do you decide when to release?\u00a0 What is your release cadence so to speak?\\n\\nThink about this for a second.\u00a0 If you answered &#8220;on this date, when these feature are done,&#8221;\u00a0 you are wrong.\u00a0 You can\u2019t choose both.\\n\\nI am saying that you can either say, \u201cI will release when X number of features are complete,\u201d or you can say, \u201cI will release every 2 weeks,\u201d but you can\u2019t say both.\\n\\n<\/p>\n<h2>A running metaphor<\/h2>\n<p>\\n\\nLet us translate this problem to a different paradigm for a second to see if it becomes more clear.\u00a0 Many people right off will understand this concept, but others will be confused.\\n\\nThink about running.\\n\\nHave you ever done a running work-out or did some running training?\u00a0 Ran a race perhaps?\u00a0 Biking and similar sports apply here.\\n\\nThink about the training programs or workouts you have done.\\n\\n<\/p>\n<ul>\\n    <\/p>\n<li>You might have a workout that is \u201crun for 20 minutes.\u201d<\/li>\n<p>\\n    <\/p>\n<li>You might have a workout that is \u201crun for 3.1 miles.\u201d<\/li>\n<p>\\n<\/ul>\n<p>\\n\\nHave you ever had a running program that instructed you to run for 3 miles and do it in exactly 25 minutes?\u00a0 Pretty doubtful.\\n\\nI\u2019m not saying it can\u2019t be done.\u00a0 But, it would be pretty difficult to run for exactly 25 minutes and travel exactly 3 miles.\u00a0 Most likely you would miss one of those marks.\\n\\nThe same with software development.\u00a0 Features or time, but not both.\u00a0 Both is kind of silly.\\n\\n<\/p>\n<h2>But we do it successfully right now<\/h2>\n<p>\\n\\nNo you don\u2019t.\u00a0 It is called padding.\\n\\nBack to the running metaphor.\u00a0 So there is a way to achieve both time and distance.\u00a0 If you really think about it hard, you\u2019ll figure it out.\u00a0 If someone was going to pay you a huge amount of money to cross a finish line at a particular distance within 5 seconds of a set time, how would you do it?\\n\\nI\u2019ll give you a second to think about it.\\n\\n<a href=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/06\/homer_running.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"display: inline; border: 0;\" title=\"homer_running\" alt=\"homer_running\" src=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/06\/homer_running_thumb.jpg\" width=\"492\" height=\"362\" border=\"0\" \/><\/a>\\n\\nWell, the strategy I would employ would be to run really fast as hard as I could and come right up to the finish line, but not cross it.\u00a0 Then I would sit and wait for the remaining time to tick down and cross the finish line, right on the money.\\n\\nIn software development, we call this \u201cpadding.\u201d\u00a0 Padding is a bad word.\u00a0 Padding will take a productive development team and turn them into lazy sloths.\u00a0 Once you start padding it is extremely hard to stop.\u00a0 It becomes the norm.\\n\\nThat is why I say that if you think you are releasing software on a set date with set features, you are wrong.\u00a0 What you are doing is padding.\u00a0 Stop it!\u00a0 Stop wasting your resources and choose one.\u00a0 Features or time?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>There is an interesting constraint in release management that is pretty often ignored.\\n\\nI think it is worth talking about because not too many people on Agile projects really realize the implications of this simple constraint.\\n\\n You can either release based on a number of features or a date in time, but not both. \\n\\n Translation&#8230;<\/p>\n","protected":false},"author":2,"featured_media":927,"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,126441],"tags":[],"class_list":["post-929","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-agile","category-release-management"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Release Management, Features or Time<\/title>\n<meta name=\"description\" content=\"An explanation of why you can&#039;t release software with both feature and date requirements- unless you are padding your projects.\" \/>\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\/products\/careerguide\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Release Management, Features or Time\" \/>\n<meta property=\"og:description\" content=\"An explanation of why you can&#039;t release software with both feature and date requirements- unless you are padding your projects.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/simpleprogrammer.com\/products\/careerguide\" \/>\n<meta property=\"og:site_name\" content=\"Simple Programmer\" \/>\n<meta property=\"article:published_time\" content=\"2010-06-14T14:05:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-04-13T16:17:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/06\/homer_running.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"450\" \/>\n\t<meta property=\"og:image:height\" content=\"330\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\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=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/release-management-features-or-time\\\/\"},\"author\":{\"name\":\"John Sonmez\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#\\\/schema\\\/person\\\/1abc70edfb189184827740310672de67\"},\"headline\":\"Release Management, Features or Time\",\"datePublished\":\"2010-06-14T14:05:26+00:00\",\"dateModified\":\"2018-04-13T16:17:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/release-management-features-or-time\\\/\"},\"wordCount\":580,\"commentCount\":7,\"image\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2010\\\/06\\\/homer_running.jpg\",\"articleSection\":[\"Agile\",\"Release Management\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/release-management-features-or-time\\\/\",\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide\",\"name\":\"Release Management, Features or Time\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2010\\\/06\\\/homer_running.jpg\",\"datePublished\":\"2010-06-14T14:05:26+00:00\",\"dateModified\":\"2018-04-13T16:17:20+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#\\\/schema\\\/person\\\/1abc70edfb189184827740310672de67\"},\"description\":\"An explanation of why you can't release software with both feature and date requirements- unless you are padding your projects.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#primaryimage\",\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2010\\\/06\\\/homer_running.jpg\",\"contentUrl\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2010\\\/06\\\/homer_running.jpg\",\"width\":450,\"height\":330},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/products\\\/careerguide#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/simpleprogrammer.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Release Management, Features or Time\"}]},{\"@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":"Release Management, Features or Time","description":"An explanation of why you can't release software with both feature and date requirements- unless you are padding your projects.","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\/products\/careerguide","og_locale":"en_US","og_type":"article","og_title":"Release Management, Features or Time","og_description":"An explanation of why you can't release software with both feature and date requirements- unless you are padding your projects.","og_url":"https:\/\/simpleprogrammer.com\/products\/careerguide","og_site_name":"Simple Programmer","article_published_time":"2010-06-14T14:05:26+00:00","article_modified_time":"2018-04-13T16:17:20+00:00","og_image":[{"width":450,"height":330,"url":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/06\/homer_running.jpg","type":"image\/jpeg"}],"author":"John Sonmez","twitter_card":"summary_large_image","twitter_misc":{"Written by":"John Sonmez","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/simpleprogrammer.com\/products\/careerguide#article","isPartOf":{"@id":"https:\/\/simpleprogrammer.com\/release-management-features-or-time\/"},"author":{"name":"John Sonmez","@id":"https:\/\/simpleprogrammer.com\/#\/schema\/person\/1abc70edfb189184827740310672de67"},"headline":"Release Management, Features or Time","datePublished":"2010-06-14T14:05:26+00:00","dateModified":"2018-04-13T16:17:20+00:00","mainEntityOfPage":{"@id":"https:\/\/simpleprogrammer.com\/release-management-features-or-time\/"},"wordCount":580,"commentCount":7,"image":{"@id":"https:\/\/simpleprogrammer.com\/products\/careerguide#primaryimage"},"thumbnailUrl":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/06\/homer_running.jpg","articleSection":["Agile","Release Management"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/simpleprogrammer.com\/products\/careerguide#respond"]}]},{"@type":"WebPage","@id":"https:\/\/simpleprogrammer.com\/release-management-features-or-time\/","url":"https:\/\/simpleprogrammer.com\/products\/careerguide","name":"Release Management, Features or Time","isPartOf":{"@id":"https:\/\/simpleprogrammer.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/simpleprogrammer.com\/products\/careerguide#primaryimage"},"image":{"@id":"https:\/\/simpleprogrammer.com\/products\/careerguide#primaryimage"},"thumbnailUrl":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/06\/homer_running.jpg","datePublished":"2010-06-14T14:05:26+00:00","dateModified":"2018-04-13T16:17:20+00:00","author":{"@id":"https:\/\/simpleprogrammer.com\/#\/schema\/person\/1abc70edfb189184827740310672de67"},"description":"An explanation of why you can't release software with both feature and date requirements- unless you are padding your projects.","breadcrumb":{"@id":"https:\/\/simpleprogrammer.com\/products\/careerguide#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/simpleprogrammer.com\/products\/careerguide"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/simpleprogrammer.com\/products\/careerguide#primaryimage","url":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/06\/homer_running.jpg","contentUrl":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/06\/homer_running.jpg","width":450,"height":330},{"@type":"BreadcrumbList","@id":"https:\/\/simpleprogrammer.com\/products\/careerguide#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/simpleprogrammer.com\/"},{"@type":"ListItem","position":2,"name":"Release Management, Features or Time"}]},{"@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\/929","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=929"}],"version-history":[{"count":0,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/posts\/929\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/media\/927"}],"wp:attachment":[{"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/media?parent=929"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/categories?post=929"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/tags?post=929"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}