{"id":130,"date":"2024-04-11T18:37:00","date_gmt":"2024-04-11T18:37:00","guid":{"rendered":"https:\/\/permutationcity.co.uk\/bp\/?p=130"},"modified":"2024-04-28T12:04:10","modified_gmt":"2024-04-28T12:04:10","slug":"the-taste-test","status":"publish","type":"post","link":"https:\/\/permutationcity.co.uk\/bp\/2024\/04\/11\/the-taste-test\/","title":{"rendered":"The taste test"},"content":{"rendered":"\n<p>Imagine you&#8217;ve just been given a new cookbook.\nIt has a recipe for <a href=\"https:\/\/en.wikipedia.org\/wiki\/Oysters_Rockefeller\">Oysters Rockefeller<\/a>\nthat a friend recommended.\nReally it could be anything but oysters have been in my media for the last week so we&#8217;ll go with them.\nYou buy the ingredients, prepare them carefully, cook and serve.\nIt looks great, you take a picture.\nWhen you taste them they&#8217;re horrid, little metallic salty nubbins.<\/p>\n\n\n\n<p>What went wrong?<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The wrong ingredients &#8211; Do you need fresher oysters? Maybe different herbs?<\/li>\n\n\n\n<li>The wrong technique &#8211; Should the topping be cut finer? Was it cook too much or not enough?<\/li>\n\n\n\n<li>The wrong recipe &#8211; One from the book, or the internet, or the telly?<\/li>\n\n\n\n<li>It all went wrong &#8211; Maybe the bad taste isn&#8217;t a surprise after the nightmare cooking process.<\/li>\n\n\n\n<li>Maybe you just don&#8217;t like oysters &#8211; However you make it from some people just don&#8217;t like oysters.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"a-software-engineering-metaphor\">A software engineering metaphor<\/h2>\n\n\n\n<p>What am I trying to say here?\nIs the recipe an algorithm?\nWhy did your friend recommend oysters?<\/p>\n\n\n\n<p>The message here is sometimes you try something and, in the end, the final result isn&#8217;t what you want.\nIt may even <em>look<\/em> good but it might not <em>taste<\/em> good.\nYou need to be able to judge that final result and think <em>why<\/em> it hasn&#8217;t worked.\nYou might be able to fix it or you might not.\nIf you can&#8217;t untangle why then <em>you probably won&#8217;t be able to fix it<\/em>.\nIf you don&#8217;t like the taste then no one else gets to tell you your wrong, you like it or don&#8217;t.\nEqually, just because you didn&#8217;t like <em>these<\/em> oysters doesn&#8217;t mean you won&#8217;t like <em>any<\/em> oysters.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"who-gets-to-taste\">Who gets to taste<\/h2>\n\n\n\n<p>In this metaphor a lot of people get to taste the oysters but the oysters are a different thing in each case:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The customer &#8211; They want a finish product that works. They probably had some sort of specification but that&#8217;s just what they said they wanted. Does it do the job that they really needed it to?<\/li>\n\n\n\n<li>The users &#8211; They want a finished product that works for them. The users of the system may or may not have had any direct input into the specification. There is a difference between the idealised situations in the documentation and the actual situation on the ground.<\/li>\n\n\n\n<li>The managers &#8211; They ran the project and hope it all goes to plan and within the budget. Did they suddenly needed to grow the team or push the release back passed a deadline. They might also need to be able to change things as the specification is updated or resources change.<\/li>\n\n\n\n<li>The developers &#8211; They actually designed and build the project. They probably want reasonable hours without any <a href=\"https:\/\/en.wikipedia.org\/wiki\/Crunch_(video_games)\">crunch<\/a>. Having a codebase they can understand and that isn&#8217;t brittle under changes. Maybe they want to be able to try new tools and languages. Maybe they want to stay with what is familiar to them.<\/li>\n<\/ul>\n\n\n\n<p>Any of these people can separately not enjoy a project for a number of reasons.\nIf the customer doesn&#8217;t like it are they going to keep providing the money.\nIf the managers don&#8217;t like it then everything can get turned upside down next time.\nIf the developers don&#8217;t like it are they going to look for work elsewhere.\nIf the users don&#8217;t like it they may end up having to lump it.\nPity the poor users whose tools are forced on them from above.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-to-do-about-the-the-taste\">What to do about the the taste<\/h2>\n\n\n\n<p>I wrote about <a href=\"https:\/\/permutationcity.co.uk\/bp\/2024\/04\/02\/retrospective-1-26\/\">retrospectives<\/a> recently,\nthey give you a chance to discuss what happened and whether it was good or bad.\nTypically that&#8217;s fairly fine grained, was something good or bad in the last sprint.\nHere we&#8217;re thinking about a longer timescale.\nWhile this sort of discussion can go on in a retrospective it might benefit from a separate discussion.\nThis could be a project post-mortem but that can be a long time to wait to learn a lesson.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">In the end<\/h2>\n\n\n\n<p>As a kid I didn&#8217;t like mushrooms.\nAt home I would carefully separate them out from a dish.\nI remember going to a Chinese restaurant,\neating from the European menu and still not eating the mushrooms that came with the dish.\nEventually I decided to start eating my mushrooms at the restaurant.\nI carefully ate them with other things to taste them less.\nThat was many years ago and now I think mushrooms are great.\nReally great, different sorts of mushrooms cooked in different ways.<\/p>\n\n\n\n<p>At university function programming was a bit of an oddity.\nIt was used in research but I don&#8217;t know how much it was being used in real world projects.\nNow I&#8217;ve read books about function programming in C++ and C#.\nThey look at practical application of function programming and why it can be a good idea.\nIt&#8217;s definitely something I think about with new projects.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Imagine you&#8217;ve just been given a new cookbook. It has a recipe for Oysters Rockefeller that a friend recommended. Really it could be anything but oysters have been in my media for the last week so we&#8217;ll go with them. You buy the ingredients, prepare them carefully, cook and serve. It looks great, you take [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[11],"class_list":["post-130","post","type-post","status-publish","format-standard","hentry","category-general","tag-planning"],"_links":{"self":[{"href":"https:\/\/permutationcity.co.uk\/bp\/wp-json\/wp\/v2\/posts\/130","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/permutationcity.co.uk\/bp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/permutationcity.co.uk\/bp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/permutationcity.co.uk\/bp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/permutationcity.co.uk\/bp\/wp-json\/wp\/v2\/comments?post=130"}],"version-history":[{"count":4,"href":"https:\/\/permutationcity.co.uk\/bp\/wp-json\/wp\/v2\/posts\/130\/revisions"}],"predecessor-version":[{"id":206,"href":"https:\/\/permutationcity.co.uk\/bp\/wp-json\/wp\/v2\/posts\/130\/revisions\/206"}],"wp:attachment":[{"href":"https:\/\/permutationcity.co.uk\/bp\/wp-json\/wp\/v2\/media?parent=130"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/permutationcity.co.uk\/bp\/wp-json\/wp\/v2\/categories?post=130"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/permutationcity.co.uk\/bp\/wp-json\/wp\/v2\/tags?post=130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}