{"id":176,"date":"2009-11-27T19:57:07","date_gmt":"2009-11-27T06:57:07","guid":{"rendered":"http:\/\/www.paradicesoftware.com\/blog\/?p=176"},"modified":"2009-11-27T19:57:07","modified_gmt":"2009-11-27T06:57:07","slug":"development-speed-effort-complexity-quality","status":"publish","type":"post","link":"http:\/\/www.paradicesoftware.com\/blog\/2009\/11\/development-speed-effort-complexity-quality\/","title":{"rendered":"Development Speed = Effort \/ (Complexity * Quality)"},"content":{"rendered":"<p>I took a few days&#8217; break from Icefall to develop a quickfire helper application for myself (a simple media-centre type program to organise, search and filter the various videos and music I have lurking around, with a few handy unique features like automatic IMDB-Lookup for descriptions, saves me typing them off the DVD cover).<\/p>\n<p>After working on Icefall for so long, I was amazed at how quickly I was developing the code for the new program! When writing Icefall, I might create a single new source file in a night&#8217;s work, or maybe make 4 or 5 moderate improvements to existing code. On the media app, I was churning out half a dozen new source files at a time, and I had the entire application virtually finished in about three days.<\/p>\n<p>Thinking about my observations of the difference, I eventually came up with the following formula:<\/p>\n<h3>Development Speed = Effort \/ (Complexity * Quality)<\/h3>\n<p>For a given amount of effort, I can get a lot more done on the media app, because A: it&#8217;s far less complex, and B: I care much less about the quality of the code. Multiply those factors together and you can see why Icefall development is approximately an order of magnitude slower: it&#8217;s a complex system, all the code has to be correct, robust, speedy, and extensible.<\/p>\n<p>I&#8217;m convinced this is part of the reason why so many &#8220;we&#8217;re going to create the perfect application, that does everything and is open source&#8221; projects never reach version 1.0. With all the effort in the world, they&#8217;re just throwing huge numbers on the wrong side of the divisor. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>I took a few days&#8217; break from Icefall to develop a quickfire helper application for myself (a simple media-centre type program to organise, search and filter the various videos and music I have lurking around, with a few handy unique features like automatic IMDB-Lookup for descriptions, saves me typing them off the DVD cover). After<\/p>\n","protected":false},"author":2722,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-176","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/www.paradicesoftware.com\/blog\/wp-json\/wp\/v2\/posts\/176","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.paradicesoftware.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.paradicesoftware.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.paradicesoftware.com\/blog\/wp-json\/wp\/v2\/users\/2722"}],"replies":[{"embeddable":true,"href":"http:\/\/www.paradicesoftware.com\/blog\/wp-json\/wp\/v2\/comments?post=176"}],"version-history":[{"count":1,"href":"http:\/\/www.paradicesoftware.com\/blog\/wp-json\/wp\/v2\/posts\/176\/revisions"}],"predecessor-version":[{"id":177,"href":"http:\/\/www.paradicesoftware.com\/blog\/wp-json\/wp\/v2\/posts\/176\/revisions\/177"}],"wp:attachment":[{"href":"http:\/\/www.paradicesoftware.com\/blog\/wp-json\/wp\/v2\/media?parent=176"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.paradicesoftware.com\/blog\/wp-json\/wp\/v2\/categories?post=176"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.paradicesoftware.com\/blog\/wp-json\/wp\/v2\/tags?post=176"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}