{"id":28,"date":"2011-01-24T10:02:46","date_gmt":"2011-01-24T09:02:46","guid":{"rendered":"http:\/\/dev.qualilogy.com\/es\/?p=28"},"modified":"2013-01-04T10:03:24","modified_gmt":"2013-01-04T09:03:24","slug":"medir-y-controlar","status":"publish","type":"post","link":"http:\/\/qualilogy.com\/es\/medir-y-controlar\/","title":{"rendered":"Medir y controlar"},"content":{"rendered":"<p><a href=\"http:\/\/vicken.deviantart.com\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-91\" title=\"QualMeasCon2t\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/11\/QualMeasCon2t.jpg\" alt=\"Measure and Control\" width=\"148\" height=\"247\" \/><\/a>\u00ab You can\u2019t control what you can\u2019t measure \u00bb (Tom de Marco)<\/p>\n<p>Explicaba en el post anterior <a title=\"Los 3 costes\" href=\"http:\/\/qualilogy.com\/es\/los-3-costes\" target=\"_blank\">Los 3 costes<\/a> que las herramientas de an\u00e1lisis de c\u00f3digo nos entregaban un gran n\u00famero de informaciones cualitativas mientras que las m\u00e9tricas cuantitativas eran menos numerosas, pero muy \u00fatiles. Esta opini\u00f3n no es siempre compartida.<\/p>\n<p>Las m\u00e9tricas cuantitativas o &#8216;raw metrics&#8217; en ingl\u00e9s (que se podr\u00eda traducir por &#8216;datos brutos&#8217;) son unas medidas bastante f\u00e1ciles a conseguir con la gran mayor\u00eda de las herramientas de an\u00e1lisis de c\u00f3digo. Generalmente, este tipo de software presenta primero una nota global de calidad que agrega diferentes reglas de conformidad a buenas pr\u00e1cticas de programaci\u00f3n, de dise\u00f1o, de documentaci\u00f3n, etc.<br \/>\nEsta nota global da una visi\u00f3n general de la calidad de la aplicaci\u00f3n, pero se revela de hecho bastante subjetiva: depende mucho de la herramienta. <!--more--><\/p>\n<p>Las buenas pr\u00e1cticas son bastante bien estandardizadas y deber\u00edamos encontrar los mismos conjuntos de reglas en cada herramienta. De hecho, es poco el caso. Unos softwares son especializados sobre un lenguaje \u00fanico para el cual proponen el m\u00e1ximo de reglas posibles. Otros son multitecnolog\u00edas y apuntan a equilibrar o a menudo a normalizar las reglas entre los diferentes lenguajes, y no \u00e1 soportar el m\u00e1s posible de estandares.<\/p>\n<p>Un factor m\u00e1s subjetivo todav\u00eda es la criticidad affectada a una regla, su peso en el modelo de calidad. Realizando un estudio comparativo entre dos softwares de an\u00e1lisis de c\u00f3digo, descubr\u00ed que, en una escala de 1 a 10:<\/p>\n<ul>\n<li>La primera herramienta dispon\u00eda de 15 diagn\u00f3sticos con un peso de 6 \u00e1 10, en un total de 73 reglas, es decir el 20 % de \u00e9stas.<\/li>\n<li>La segunda herramienta dispon\u00eda de 58 diagn\u00f3sticos de un total de 102, con un peso superior \u00e1 6, es decir m\u00e1s de la mitad del n\u00famero total de r\u00e9glas.<\/li>\n<\/ul>\n<p>A veces, bajar o subir la criticidad de una regla basta para modificar dr\u00e1sticamente la nota global de calidad. M\u00e1s grave todav\u00eda, una herramienta se puede equivocar en la medida de una regla, o sea porque produce un gran n\u00famero de falso-positivos, o sea simplemente de la culpa de un defecto (bug).<\/p>\n<p>Me acuerdo as\u00ed de un software de an\u00e1lisis de c\u00f3digo que no encontraba todos los enlaces hacia la p\u00e1gina de error de la aplicaci\u00f3n y conclu\u00eda que hab\u00eda un defecto grave para la seguridad. Imaginate la estupefacci\u00f3n cuando el equipo de proyecto y sus gerentes &#8211; y a menudo un CIO &#8211; descubren que su aplicaci\u00f3n super-critica presente un riesgo superior para la seguridad. Gran momento de soledad para el consultor Calidad que presenta esta conclusi\u00f3n sin haber verificado previamente la exactitud de esta medida cualitativa.<\/p>\n<p>Es parad\u00f3jico que la calidad de tu aplicaci\u00f3n depende de la calidad del software que evalua la calidad de tu aplicaci\u00f3n.<\/p>\n<p>Si dos herramientas distintas no alcanzan a la misma medida cuando a los datos cualitativos, las medidas cuantitativas son m\u00e1s a menudos semejantes y exactas.<\/p>\n<p>Oigo muy a menudo decir: \u00ab esta aplicaci\u00f3n es compleja \u00bb pero si pregunto por qu\u00e9 es compleja, las respuestas no son precisas. Me basta con examinar el n\u00famero de l\u00edneas de c\u00f3digo y ya tendr\u00e9 una indicaci\u00f3n. \u00bfLa talla de esta aplicaci\u00f3n es o por encima de la media para esta tecnolog\u00eda? Luego, la Complejidad Ciclom\u00e1tica me entrega una segunda informaci\u00f3n: \u00bfesta aplicaci\u00f3n incorpora un gran n\u00famero de reglas? \u00bfSu nivel de complejidad la hace f\u00e1cilmente mantenable?<\/p>\n<p>\u00bfSi sabes que una persona pese 60 kg, esto basta para decir si es delgada? Claro que no. Pero si conoces su talla, entonces puedes decir si est\u00e1 o no en exceso ponderal.<br \/>\nOtras medidas complementarias tales como el porcentage de comentarios o de c\u00f3digo duplicado permiten reconstituir el perfil de la aplicaci\u00f3n. Por supuesto, los datos cuantitativos son limitados. Algunos me dir\u00e1n que es una herej\u00eda de utilizar el n\u00famero de l\u00edneas de c\u00f3digo (LOC), otros van s\u00f3lo a por los puntos de funci\u00f3n. Todas estas opiniones presentan inter\u00e9s, pero los &#8216;raw metrics&#8217; presentan ciertas ventajas innegables:<\/p>\n<ul>\n<li>Est\u00e1n f\u00e1cilmente disponibles.<\/li>\n<li>Son generalmente exactas.<\/li>\n<li>Son f\u00e1cilmente comprensibles para los directivos.<\/li>\n<\/ul>\n<p>Constituyen pues una base s\u00f3lida para evaluar la calidad de una aplicaci\u00f3n y si ella es costosa a mantener. El examen de las m\u00e9tricas cualitativas permite luego precisar nuestra evaluaci\u00f3n y el &#8216;por qu\u00e9&#8217; de este coste: porque es poco legible, porque presenta defectos para su fiabilidad, porque las buenas pr\u00e1cticas en materia de realizaci\u00f3n o en materia de optimizaci\u00f3n no son aplicadas, etc.<\/p>\n<p>Las m\u00e9tricas cualitativas permiten afinar un diagn\u00f3stico, construir un plan de rem\u00e9diaciones, poner en ejecuci\u00f3n un proceso de mejoramiento continuo de la calidad. Son preciosas para los equipos de proyecto.<br \/>\nCuando se trata de responder a la cuesti\u00f3n leg\u00edtima de los ejecutivos y de los usuarios:        \u00bfcu\u00e1nto me cuesta esta aplicaci\u00f3n? los datos cuantitativos son m\u00e1s simples, m\u00e1s precisos y m\u00e1s f\u00e1ciles de utilizar.<\/p>\n<p>Empezamos por medir lo que podemos controlar.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00ab You can\u2019t control what you can\u2019t measure \u00bb (Tom de Marco) Explicaba en el post anterior Los 3 costes que las herramientas de an\u00e1lisis de c\u00f3digo nos entregaban un gran n\u00famero de informaciones cualitativas mientras que las m\u00e9tricas cuantitativas eran menos numerosas, pero muy \u00fatiles. Esta opini\u00f3n no es siempre compartida. Las m\u00e9tricas cuantitativas [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-28","post","type-post","status-publish","format-standard","hentry","category-calidad-de-aplicaciones"],"_links":{"self":[{"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts\/28"}],"collection":[{"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/comments?post=28"}],"version-history":[{"count":1,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts\/28\/revisions"}],"predecessor-version":[{"id":29,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts\/28\/revisions\/29"}],"wp:attachment":[{"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/media?parent=28"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/categories?post=28"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/tags?post=28"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}