{"id":64,"date":"2015-10-07T04:47:09","date_gmt":"2015-10-07T04:47:09","guid":{"rendered":"http:\/\/96.126.106.214\/?p=64"},"modified":"2023-11-26T01:01:03","modified_gmt":"2023-11-26T01:01:03","slug":"metrics-converted-to-goals-lose-their-focus","status":"publish","type":"post","link":"https:\/\/codingismycraft.blog\/index.php\/2015\/10\/07\/metrics-converted-to-goals-lose-their-focus\/","title":{"rendered":"Metrics converted to goals lose their focus"},"content":{"rendered":"<p>One of the common discussions I have had with my colleagues over the last years was about the creation of metrics to express the productivity and the quality of an individual developer. At first glance, the idea of expressing the ability of a programmer, with a small set of easy to digest figures, seems both attractive and feasible. After all, this approach appears to work nicely in sectors like the stock market, weather forecasting or customer satisfaction, so it is very logical to assume that we can accomplish something similar when it comes to software developers.<\/p>\n<p>Yet, I am reluctant to believe that it is possible to create an effective metric to measure the quality and effectiveness of a computer programmer. Although something similar, might be feasible for other kind of activities, mostly those involving very tangible production based on some kind of a repetitive routine, writing software presents a completely different paradigm, which is extremely difficult to quantify.<\/p>\n<p>Think for example of what kind of metric would have even be capable of comparing a poetry masterpiece, consisting of just a few words to a New York City telephone book!  Software development resembles more to a poem rather than a pedestrian document such as telephone book, which simply gathers similar information and presents it in a purely mechanical format.<\/p>\n<p>As a developer, I tend to view code as the means to express a model for a tangible problem to be solved. Given this definition, the ultimate \u201cmetric\u201d to measure a solution, has to be related to how well it approaches the real world, its ability to function for long periods of time without interruptions and finally its adaptability to future needs, that will allow it to evolve as time goes by.<\/p>\n<p>Another serious problem I can see when it comes to programmers\u2019 performance metrics, lies in the fact that once the latter are introduced to a team, each individual tends to adopt to them, essentially shifting his focus from developing quality software to an effort to maximize his metrics, since they will represent the most comprehensible way for his management to evaluate his performance.<\/p>\n<p>In other words, metrics will eventually be converted to goals causing the team to lose its focus, which of course is the delivery of a working solution and not the maximization of some arbitrary metric.<\/p>\n<p>I think that the best way to measure the abilities of a developer depends on how well his application can cover the needs of its users, given the cost and time constraints that had to be met while creating the solution. Successful developers should build systems that outlive their expectations; they should have the ability to easily adapt to future needs with minimal effort and at the same time allow for easy maintenance and bug fixing during the entire lifespan of the project.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of the common discussions I have had with my colleagues over the last years was about the creation of metrics to express the productivity&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"footnotes":""},"categories":[6],"tags":[],"class_list":["post-64","post","type-post","status-publish","format-standard","hentry","category-programming"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":174,"url":"https:\/\/codingismycraft.blog\/index.php\/2017\/09\/16\/talent-is-the-best-metric-to-measure-a-software-developer\/","url_meta":{"origin":64,"position":0},"title":"Talent is the best Metric to measure a Software Developer.","author":"john","date":"September 16, 2017","format":false,"excerpt":"Like in any other activity that requires expertise, software developers can be classified based on their productivity and ability to innovate and create new approaches and solutions to specific problems. The main dimensions that dictate the quality of a developer are knowledge, experience and talent and the ability to recognize\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/codingismycraft.blog\/index.php\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":337,"url":"https:\/\/codingismycraft.blog\/index.php\/2024\/11\/06\/unveiling-the-traits-of-a-master-programmer\/","url_meta":{"origin":64,"position":1},"title":"Unveiling the Traits of a Master Programmer","author":"john","date":"November 6, 2024","format":false,"excerpt":"Programming is a craft honed through both theoretical knowledge and practical application. This skill, cultivated through countless hours of coding and problem-solving, is essential for delivering high-quality software. To achieve mastery, programmers must possess not only a strong foundation in technical knowledge but also a wealth of practical experience. This\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/codingismycraft.blog\/index.php\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":66,"url":"https:\/\/codingismycraft.blog\/index.php\/2016\/03\/10\/the-three-dimensions-of-a-programmer\/","url_meta":{"origin":64,"position":2},"title":"The three dimensions of a programmer.","author":"john","date":"March 10, 2016","format":false,"excerpt":"\u00a0 It is my impression that the vast majority of new developers, tend to underestimate the importance of design and implementation details as they struggle to prove that they can deliver a solution very quickly and please their managers with very tight deadlines. A developer eager to prove his abilities,\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/codingismycraft.blog\/index.php\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":176,"url":"https:\/\/codingismycraft.blog\/index.php\/2017\/09\/27\/shipping-buggy-code-the-most-critical-skill-for-a-programmer\/","url_meta":{"origin":64,"position":3},"title":"Shipping buggy code: The most critical skill for a programmer","author":"john","date":"September 27, 2017","format":false,"excerpt":"NASA\u2019s Mars Climate Orbiter was launched on December 11 1998 with the ambitious mission of \u00a0studying Martian climate; the cost of the program was more than $300M and a good share of it was allocated to development of the necessary software. \u00a0Unfortunately, as the \u00a0Orbiter was approaching the red planet\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/codingismycraft.blog\/index.php\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":221,"url":"https:\/\/codingismycraft.blog\/index.php\/2014\/05\/13\/the-best-programmers-editor\/","url_meta":{"origin":64,"position":4},"title":"The best programmer&#8217;s editor","author":"john","date":"May 13, 2014","format":false,"excerpt":"As a professional programmer, I spend thousands of hours in front of a computer screen every year and without a doubt the two tools I use the most are the operating system command prompt and my editor of choice. Here I will talk about the later, which happens to be\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/codingismycraft.blog\/index.php\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":52,"url":"https:\/\/codingismycraft.blog\/index.php\/2014\/05\/28\/a-wrong-metaphor-about-software-development\/","url_meta":{"origin":64,"position":5},"title":"A wrong metaphor about software development","author":"john","date":"May 28, 2014","format":false,"excerpt":"A very common metaphor used when we talk about software development is to compare it with home building. Although there are some commonalities, software development differs from home building to the extend of considering the metaphor to be completely wrong! Terms like scaffolding, foundation, architecture any many similar, have become\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/codingismycraft.blog\/index.php\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/codingismycraft.blog\/index.php\/wp-json\/wp\/v2\/posts\/64","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/codingismycraft.blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codingismycraft.blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codingismycraft.blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/codingismycraft.blog\/index.php\/wp-json\/wp\/v2\/comments?post=64"}],"version-history":[{"count":1,"href":"https:\/\/codingismycraft.blog\/index.php\/wp-json\/wp\/v2\/posts\/64\/revisions"}],"predecessor-version":[{"id":65,"href":"https:\/\/codingismycraft.blog\/index.php\/wp-json\/wp\/v2\/posts\/64\/revisions\/65"}],"wp:attachment":[{"href":"https:\/\/codingismycraft.blog\/index.php\/wp-json\/wp\/v2\/media?parent=64"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codingismycraft.blog\/index.php\/wp-json\/wp\/v2\/categories?post=64"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codingismycraft.blog\/index.php\/wp-json\/wp\/v2\/tags?post=64"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}