{"id":1766,"date":"2013-04-28T08:13:00","date_gmt":"2013-04-28T07:13:00","guid":{"rendered":"http:\/\/silta.es\/juantatay\/2013\/04\/28\/coding-fast-and-slow-developers-and-the-psychology-of-overconfidence\/"},"modified":"2013-04-28T08:13:00","modified_gmt":"2013-04-28T07:13:00","slug":"coding-fast-and-slow-developers-and-the-psychology-of-overconfidence","status":"publish","type":"post","link":"https:\/\/silta.es\/juantatay\/coding-fast-and-slow-developers-and-the-psychology-of-overconfidence\/","title":{"rendered":"Coding, Fast and Slow: Developers and the Psychology of Overconfidence"},"content":{"rendered":"<p><i><span style=\"color: #2c2c2c;\">\u201cWe should just be more careful at the specification stage\u201d<\/span><\/i><\/p>\n<p><a href=\"http:\/\/blog.hut8labs.com\/coding-fast-and-slow.html\">Coding, Fast and Slow: Developers and the Psychology of Overconfidence<\/a><br \/><span style=\"font-family: inherit;\"><i><br \/><\/i><\/span> <span style=\"font-family: inherit;\"><i><span style=\"color: #2c2c2c;\">\u00ab\u2026 If you do \u201cfully understand\u201d something, you\u2019ve got a library or existing piece of software that&nbsp;<\/span><span style=\"color: #2c2c2c;\">does that thing<\/span><span style=\"color: #2c2c2c;\">, and you\u2019re not writing anything. Otherwise, there is uncertainty, and it will often blow up. And those blow ups can take anywhere from one day to one year to beyond the heat death of the universe to&nbsp;resolve.<\/span><\/i><\/span><br \/><span style=\"color: #2c2c2c; font-family: inherit;\"><i>\u2026<\/i><\/span><br \/><span style=\"font-family: inherit;\"><i><span style=\"color: #2c2c2c;\">When you first hit this pain, you think \u201cWe should just be more careful at the specification stage\u201d. But this turns out to fail, badly. Why? The core reason is that, as you can see from the examples above, if you were to write a specification in such detail that it would capture those issues, you\u2019d be&nbsp;<\/span><span style=\"color: #2c2c2c;\">writing the software<\/span><span style=\"color: #2c2c2c;\">. And there is really just no way around this. (if, as you read this, you\u2019re trying to bargain this one away, I have to tell you \u2014 there is really really really no way around this. Full specifications are a terrible economic idea. Some ways below I\u2019m going to lay out better economic&nbsp;choices)<\/span><\/i><\/span><br \/><span style=\"color: #2c2c2c;\"><span style=\"font-family: inherit;\"><i>\u2026<\/i><\/span><\/span><\/p>\n<div style=\"color: #2c2c2c;\"><span style=\"font-family: inherit;\"><i>In Thinking Fast and Slow, Kahneman explains a great deal of psychology as the interplay between two \u201csystems\u201d which govern our thoughts: System I and System&nbsp;<span>II<\/span>. My far-too-brief summary would be \u201cSystem&nbsp;<span>II<\/span>&nbsp;does careful, rational, analytical thinking, and System I does quick, heuristic, pattern matching&nbsp;thinking\u201d.<\/i><\/span><\/div>\n<div style=\"color: #2c2c2c;\"><span style=\"font-family: inherit;\"><i><br \/><\/i><\/span><\/div>\n<div style=\"color: #2c2c2c;\"><span style=\"font-family: inherit;\"><i>And, crucially, it\u2019s as if evolution designed the whole thing with a key goal of&nbsp;keeping System&nbsp;<span>II<\/span>&nbsp;from having to do too much. Which makes plenty of sense from an evolutionary perspective \u2014 System&nbsp;<span>II<\/span>&nbsp;is slow as molasses, and incredibly costly, it should only be deployed in very, very rare situations. But you see the problem, no doubt: without&nbsp;thinking, how does your mind know&nbsp;when to invoke System&nbsp;<span>II<\/span>? From this perspective, many of the various \u201ccognitive biases\u201d of psychology make sense as elegant engineering solutions to a brutal real-world problem: how to apportion attention in real&nbsp;time.<\/i><\/span><\/div>\n<div style=\"color: #2c2c2c;\"><span style=\"font-family: inherit;\"><i>\u2026<\/i><\/span><\/div>\n<div style=\"color: #2c2c2c;\"><\/div>\n<p><span style=\"font-family: inherit;\"><i>The real trouble here is the interplay between the two sources of estimation error: the human bias towards overconfidence,&nbsp;and&nbsp;the inherent uncertainty involved in any real software project. That uncertainty is severe enough that even the careful, rational System<span>II<\/span>&nbsp;is unable to come up with accurate&nbsp;predictions.<\/i><\/span><br \/><span style=\"font-family: inherit;\"><i>\u2026\u00bb<\/i><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u201cWe should just be more careful at the specification stage\u201d Coding, Fast and Slow: Developers and the Psychology of Overconfidence \u00ab\u2026 If you do \u201cfully understand\u201d something, you\u2019ve got a library or existing piece of software that&nbsp;does that thing, and you\u2019re not writing anything. Otherwise, there is uncertainty, and it will often blow up. And  [&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[53,26,45,42],"tags":[],"class_list":["post-1766","post","type-post","status-publish","format-standard","hentry","category-eficiencia","category-el-critico-como-artista","category-informatica","category-psicologia"],"jetpack_featured_media_url":"","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/silta.es\/juantatay\/wp-json\/wp\/v2\/posts\/1766","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/silta.es\/juantatay\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/silta.es\/juantatay\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/silta.es\/juantatay\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/silta.es\/juantatay\/wp-json\/wp\/v2\/comments?post=1766"}],"version-history":[{"count":0,"href":"https:\/\/silta.es\/juantatay\/wp-json\/wp\/v2\/posts\/1766\/revisions"}],"wp:attachment":[{"href":"https:\/\/silta.es\/juantatay\/wp-json\/wp\/v2\/media?parent=1766"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/silta.es\/juantatay\/wp-json\/wp\/v2\/categories?post=1766"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/silta.es\/juantatay\/wp-json\/wp\/v2\/tags?post=1766"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}