{"id":20835,"date":"2017-12-05T12:45:00","date_gmt":"2017-12-05T11:45:00","guid":{"rendered":"https:\/\/www.teldat.com\/sin-categorizar\/20835\/el-software-como-producto-de-la-actividad-intelectual\/"},"modified":"2023-02-22T12:30:36","modified_gmt":"2023-02-22T11:30:36","slug":"el-software-como-producto-de-la-actividad-intelectual","status":"publish","type":"post","link":"https:\/\/www.teldat.com\/es\/blog\/el-software-como-producto-de-la-actividad-intelectual\/","title":{"rendered":"El software como producto de la actividad intelectual"},"content":{"rendered":"<p><strong><img decoding=\"async\" class=\"alignleft wp-image-5057\" src=\"https:\/\/www.teldat.com\/wp-content\/uploads\/2022\/06\/Javier-Marchan-Post-Diciembre-2017-300x226.jpg\" alt=\"Software development\" width=\"350\" height=\"263\" data-wp-editing=\"1\" title=\"\">Crear software no es solo la simple producci\u00f3n de c\u00f3digo.<\/strong> Va m\u00e1s all\u00e1 del hecho de escribir ciertas instrucciones conociendo una sintaxis y una gram\u00e1tica determinada. Entonces, <em>\u00bfqu\u00e9 es el software? \u00bfC\u00f3mo se hace?<\/em><\/p>\n<p><!--more--><\/p>\n<p>Uno de los que mejor ha tratado el tema de la actividad de programar es <a href=\"https:\/\/es.wikipedia.org\/wiki\/Peter_Naur\" target=\"_blank\" rel=\"noopener\">Peter Naur<\/a>, creador de la notaci\u00f3n BNF y ganador de un <strong>premio Turing (2005),<\/strong> en su art\u00edculo \u201cProgramming as Theory Building\u201d. Vamos a resumir en qu\u00e9 consiste su idea.<\/p>\n<p>En primer lugar, Naur parte de la noci\u00f3n de<em> Teor\u00eda de Ryle. En The concept of Mind<\/em>, un trabajo cl\u00e1sico de filosof\u00eda sobre la naturaleza de lo mental y el comportamiento humano, Ryle desarrolla su noci\u00f3n de teor\u00eda como parte de su <strong>an\u00e1lisis de la actividad intelectual<\/strong> y la manera en la que esta difiere de una actividad simplemente inteligente.<\/p>\n<p>Lo que caracteriza a la primera frente a la segunda es que para llevar a cabo alg\u00fan tipo de ejercicio intelectual, una persona ha construido una teor\u00eda, entendida como el conocimiento que debe tener, no solo para hacer algo de forma inteligente y hacerlo bien seg\u00fan un cierto criterio, sino tambi\u00e9n para tener la<em> capacidad de explicar, responder preguntas, argumentar o justificar la actividad que la concierne.<\/em> La teor\u00eda le permite detectar y corregir fallos, aprender de ejemplos, etc.<\/p>\n<p>Se puede apreciar que la noci\u00f3n de teor\u00eda no descansa en la idea de que un comportamiento inteligente depende de la adhesi\u00f3n a reglas o m\u00e9todos. Por ejemplo, para comprender la teor\u00eda de la mec\u00e1nica newtoniana no es suficiente saber que la fuerza es igual a la masa por la aceleraci\u00f3n, sino que se debe tener una comprensi\u00f3n de la manera en que las leyes de Newton se aplican a aspectos de la realidad, y de esta forma reconocerla y aplicarla a otros fen\u00f3menos similares.<\/p>\n<p>A partir de aqu\u00ed, Naur toma prestada esta noci\u00f3n y establece que el programador debe construir una teor\u00eda sobre c\u00f3mo ciertos aspectos del mundo van a ser modelados, representados y manejados por un <strong>sistema de software<\/strong>. Esta persona ser\u00e1 capaz de responder a las demandas de modificaci\u00f3n o adaptaci\u00f3n a cualquier cambio de requisitos.<\/p>\n<h2>Implicaciones en la \u201cmantenibilidad\u201d del software<\/h2>\n<p><strong>La vida de un software despu\u00e9s de su entrega<\/strong> (es decir, su mantenimiento, que es lo que ocupa la mayor parte del ciclo de vida), depender\u00e1 de que las personas encargadas tengan esta teor\u00eda. Si el equipo que la posee se disuelve, con ellos se <strong>pierde la comprensi\u00f3n<\/strong> profunda de esa materializaci\u00f3n en forma de c\u00f3digo de un problema real, y se produce la muerte del software. Puede seguir ejecut\u00e1ndose, pero el resultado ser\u00e1 cada vez m\u00e1s costoso de modificar o a\u00f1adir funcionalidades, lo que incrementar\u00eda la deuda t\u00e9cnica.<\/p>\n<p>La teor\u00eda es una propiedad colectiva que comparte el equipo original. Como sostiene Naur, lo que se requiere para que una nueva generaci\u00f3n de programadores puedan seguir extendiendo la vida del software, no es que se familiaricen con el c\u00f3digo y la documentaci\u00f3n, algo que sin duda puede ayudar; sino que tengan la oportunidad de trabajar en contacto con estas personas, y conozcan el funcionamiento del software. Que aprendan c\u00f3mo sus respuestas inesperadas o sus modificaciones pueden entenderse bajo el paraguas de la teor\u00eda. El <strong>factor humano y la comunicaci\u00f3n<\/strong> se convierten en una parte muy importante en el desarrollo del software.<\/p>\n<p>Una de las consecuencias m\u00e1s importantes seg\u00fan este punto de vista es que <strong>la reconstrucci\u00f3n de la teor\u00eda de un software a partir de la documentaci\u00f3n es imposible.<\/strong> O la ya cl\u00e1sica<em> Ley de Brooks<\/em>, que muestra c\u00f3mo a\u00f1adir m\u00e1s efectivos a un proyecto de software en retraso lo atrasar\u00e1 todav\u00eda m\u00e1s.<\/p>\n<h3>Conclusiones acerca de la \u201cteor\u00eda\u201d<\/h3>\n<p>El hecho de que una parte considerable del tiempo de desarrollo se dedique a entender el c\u00f3digo es un problema intr\u00ednseco al software. De este modo, aunque no sepamos nada de la <em>Theory Building<\/em> de Naur, ni de Ryle, lo que estamos haciendo, sin saberlo, es intentar reconstruir la teor\u00eda; crearnos esa visi\u00f3n mental.<\/p>\n<p>Y es que <strong>el software pertenece al \u00e1mbito de la actividad intelectual, y no meramente al productivo<\/strong>. Por tanto, no deja de ser un caso particular del problema tradicional de la creaci\u00f3n art\u00edstica o intelectual.<\/p>\n<p>Un ingeniero experimentado, con una comprensi\u00f3n profunda del dominio del problema, podr\u00e1 resolver cuestiones relacionadas con la teor\u00eda. Y por suerte, en <strong>Teldat<\/strong> contamos con ingenieros de este tipo. \u00bfPor qu\u00e9 les surgen m\u00e1s ideas, mejores y m\u00e1s r\u00e1pido?<\/p>\n<p>El escritor austr\u00edaco Stefan Zweig, que se sinti\u00f3 atra\u00eddo durante toda su vida por el misterio de la creaci\u00f3n, no del software sino art\u00edstica, dijo que \u201c<em>de todos los misterios del universo, ninguno m\u00e1s profundo que el de la creaci\u00f3n [\u2026] \u00bfy qui\u00e9n pudiera decir de d\u00f3nde proceden las ideas?\u201d.<\/em> En el caso del software, al menos, podemos decir que proceden en, parte, de la teor\u00eda.<\/p>\n<p>Referencias:<\/p>\n<p>&#8211; Peter Naur, Programming as Theory Building<br \/>\n&#8211; Ryle, G. The Concept of Mind<br \/>\n&#8211; https:\/\/www.javiergarzas.com\/2017\/05\/comprendiendo-que-es-crear-software-y-como-no-es-una-actividad-de-produccion.html<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Crear software no es solo la simple producci\u00f3n de c\u00f3digo. Va m\u00e1s all\u00e1 del hecho de escribir ciertas instrucciones conociendo una sintaxis y una gram\u00e1tica determinada. Entonces, \u00bfqu\u00e9 es el software? \u00bfC\u00f3mo se hace?<\/p>\n","protected":false},"author":159,"featured_media":19167,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[1154],"tags":[1119],"class_list":["post-20835","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-seguridad-tic-it","tag-tendencias-soluciones-tic"],"acf":[],"wpml_current_locale":"es_ES","wpml_translations":[{"locale":"en_US","id":19164,"slug":"software-as-a-product-of-intellectual-activity-reflections-on-software-development","post_title":"Software as a product of intellectual activity - Reflections on software development","href":"https:\/\/www.teldat.com\/software-as-a-product-of-intellectual-activity-reflections-on-software-development\/"}],"_links":{"self":[{"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/posts\/20835","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/users\/159"}],"replies":[{"embeddable":true,"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/comments?post=20835"}],"version-history":[{"count":0,"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/posts\/20835\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/media\/19167"}],"wp:attachment":[{"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/media?parent=20835"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/categories?post=20835"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.teldat.com\/es\/wp-json\/wp\/v2\/tags?post=20835"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}