{"id":3343,"date":"2017-02-03T19:24:00","date_gmt":"2017-02-04T00:24:00","guid":{"rendered":"http:\/\/itsoftware.com.co\/content\/?p=3343"},"modified":"2022-12-05T10:49:39","modified_gmt":"2022-12-05T15:49:39","slug":"mantenimiento-software-empresas-de-desarrollo","status":"publish","type":"post","link":"https:\/\/itsoftware.com.co\/content\/mantenimiento-software-empresas-de-desarrollo\/","title":{"rendered":"Mantenimiento de software: Un desaf\u00edo para las empresas de desarrollo"},"content":{"rendered":"<figure id=\"attachment_3440\" aria-describedby=\"caption-attachment-3440\" style=\"width: 295px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2017\/02\/mantenimiento-de-software.jpg\"><img fetchpriority=\"high\" decoding=\"async\" class=\" wp-image-3440\" src=\"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2017\/02\/mantenimiento-de-software-300x200.jpg\" alt=\"Mantenimiento de software\" width=\"295\" height=\"196\" \/><\/a><figcaption id=\"caption-attachment-3440\" class=\"wp-caption-text\">Mantenimiento de software<\/figcaption><\/figure>\n<p>En inform\u00e1tica los sistemas no son est\u00e1ticos, van cambiando con el tiempo de acuerdo a las condiciones cambiantes de los mercados, a los clientes,a las normativas del sector, a los procesos de las empresas, y en fin a una serie variable de circunstancias, que hacen que se tenga que hacer mantenimiento de software de una u otra manera para adaptarse a estos cambios.<!--more--><\/p>\n<p>Es aqu\u00ed don de el mantenimiento de software se vuelve una necesidad imperativa para las empresas, pues ya han hecho una inversi\u00f3n en un sistema, tienen mucha informaci\u00f3n sobre \u00e9l, y gran parte de sus procesos de negocio se soportan sobre esos programas; resultando menos costoso, en teor\u00eda,\u00a0 hacerle modificaciones al software actual, que hacer un sistema nuevo.<\/p>\n<p>Ese mantenimiento de software puede ser un asunto complicado de manejar, tanto para las empresas propietarias de los sistemas, como para las empresas de desarrollo de software bajo las siguientes circunstancias:<\/p>\n<ul>\n<li><em><em>El desarrollador del sistema es el \u00fanico que conoce el software, y es el \u00fanico que le hace modificaciones sobre \u00e9l. Esta dependencia del fabricante original, es un riesgo bastante grande, porque si el fabricante deja de funcionar, o tiene alguna desavenencia\u00a0con nosotros, no tenemos entonces qui\u00e9n le haga cambios a las plataformas.<\/em><\/em><br \/>\n<hr \/>\n<\/li>\n<\/ul>\n<ul>\n<li><em><em>Los derechos patrimoniales de la aplicaci\u00f3n no est\u00e1n correctamente radicados y legalizados en la agencia de Derechos de Autor nacional.<\/em><\/em><br \/>\n<hr \/>\n<\/li>\n<\/ul>\n<ul>\n<li><em><em>El software base, como sistemas operativos, servidores web, motores de bases de datos, y otros componentes del sistema se han vuelto obsoletos, y ya no son soportados por el hardware de nueva generaci\u00f3n.<\/em><\/em><br \/>\n<hr \/>\n<\/li>\n<\/ul>\n<ul>\n<li><em><em>Carecemos del c\u00f3digo fuente de la aplicaci\u00f3n para hacer las modificaciones respectivas y volverlo a compilar.<\/em><\/em><br \/>\n<hr \/>\n<p><em>\u00a0<\/em><\/li>\n<\/ul>\n<ul>\n<li><em><em>No existe una documentaci\u00f3n t\u00e9cnica del sistema, que nos indique c\u00f3mo est\u00e1 constituido desde sus arquiectura general, los m\u00f3dulos que lo componen, el software base que usa, las restricciones que tiene, el lenguaje de programaci\u00f3n con el que fue creado, el modelo de la base de datos, las clases que maneja, c\u00f3mo intercambia informaci\u00f3n con otros sistemas, el framework de programaci\u00f3n que se manej\u00f3, comentarios sobre el c\u00f3digo, diccionario de base de datos, modelo E-R, etc.<\/em><\/em><br \/>\n<hr \/>\n<\/li>\n<\/ul>\n<ul>\n<li><em><em>No se tiene el control del impacto que puede causar un cambio en el sistema, porque no se conoce en su totalidad la arquitectura, siendo un riesgo que se corre cuando el desarrollador es nuevo con el sistema.<\/em><\/em><br \/>\n<hr \/>\n<\/li>\n<\/ul>\n<ul>\n<li><em><em>Si el desarrollador que va a efectuar el mantenimiento de software es nuevo con la plataforma, necesita de un tiempo variable para estudiar en detalle el c\u00f3digo fuente, la base de datos, el intercambio de informaci\u00f3n, los protocolos usados en el intercambio de datos, y la interacci\u00f3n de los diferentes actores con el sistema.<\/em><\/em><br \/>\n<hr \/>\n<\/li>\n<\/ul>\n<ul>\n<li><em><em>No se lleva una trazabilidad de los cambios realizados en el sistema, c\u00f3mo afectaron a los requerimientos originales, o c\u00f3mo afecataron a otras partes del software.<\/em><\/em><br \/>\n<hr \/>\n<\/li>\n<\/ul>\n<ul>\n<li><em>No se tiene un historial de las principales fallas del sistema, como las solicitudes que hicieron los usuarios en el tiempo, para considerar tambi\u00e9n las posibles fallas preexistentes de la plataforma.<\/em><\/li>\n<\/ul>\n<p>Sabiendo entonces que tarde o temprano vamos a necesitar hacerle mantenimiento a nuestros sistemas, debemos considerar desde un principio los siguientes aspectos, para no depender al 100% del fabricante original:<\/p>\n<ul>\n<li><em>Planear una documentaci\u00f3n t\u00e9cnica b\u00e1sica del sistema que se va a desarrollar, incluyendo:<\/em>\n<ul>\n<li><em>las historias de usuario originales,<\/em><\/li>\n<li><em>el control de cambios sobre las historias de usuario,<\/em><\/li>\n<li><em>la arquitectura general,<\/em><\/li>\n<li><em>el diagrama modular del sistema,<\/em><\/li>\n<li><em>el sistema operativo, motor de base de datos, web server, lenguaje de programaci\u00f3n y frameworks usados;<\/em><\/li>\n<li><em>las clases y funciones dise\u00f1adas en el sistema,<\/em><\/li>\n<li><em>modelo entidad relaci\u00f3n y diccionario de la base de datos,<\/em><\/li>\n<li><em>flujo de intercambio de datos, incluyendo protocolos entre sistemas, sus salidas y entradas,<br \/>\n<\/em><\/li>\n<li><em>limitaciones y restricciones del sistema original,<\/em><\/li>\n<li><em>control de versiones de c\u00f3digo y de base de datos,<\/em><\/li>\n<li><em>comentarios en archivos y funciones principales del c\u00f3digo,<\/em><\/li>\n<li><em>manuales de usuario y administrador.<\/em><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p style=\"padding-left: 60px;\"><em>Toda esta informaci\u00f3n le va a permitir al desarrollador tomar menos tiempo en el estudio y entendimiento del sistema, evaluar los riesgos e impactos que los cambios tienen sobre la plataforma, para as\u00ed poder empezar a planear la estrategia de cambios sobre el software.<\/em><\/p>\n<hr \/>\n<ul>\n<li><em><em>Legalizar los derechos morales y patrimoniales del software, con lo que tendremos a disposici\u00f3n el c\u00f3digo fuente para ser modificado, distribuido y comercializado.<\/em><\/em><br \/>\n<hr \/>\n<\/li>\n<\/ul>\n<ul>\n<li><em><em>Llevar un control de cambios adecuado durante el proceso de desarrollo, como en su fase de producci\u00f3n, para conocer las diferentes modificaciones que se le han realizado al sistema, c\u00f3mo cambiaron los requerimientos originales y c\u00f3mo afectaron a otros componentes.<\/em><\/em><br \/>\n<hr \/>\n<\/li>\n<\/ul>\n<ul>\n<li><em><em>Registrar todas las peticiones o reportes de fallas de los clientes en un sistema de mesa de ayuda, para poder conocer las principales fallas o peticiones de los usuarios; para poder conocer las principales fallas o restricciones que tiene el sistema.<\/em><\/em><br \/>\n<hr \/>\n<\/li>\n<\/ul>\n<ul>\n<li><em>Considerar actualizaciones de sistemas operativos y dem\u00e1s software base del sistema, para que no se vayan a quedar obsoletos en poco tiempo con el avance del hardware. Si definitivamente el software termina amarrado con un hardware obsoleto, se debe pensar en hacer una migraci\u00f3n del sistema a plataformas actualizadas, o en su caso m\u00e1s grave, a\u00a0 desarrollarlo nuevamente, o migrar a un software comercial existente.<\/em><\/li>\n<\/ul>\n<p>En algunos casos se puede estar usando <a href=\"https:\/\/itsoftware.com.co\/content\/software-open-source-codigo-abierto\/\">software open source<\/a>, por eso es bueno conocer hasta qu\u00e9 punto se pueden realizar modificaciones sobr\u00e9 \u00e9l.<\/p>\n<p>Muy pocas empresas se atreven a hacerle <a href=\"http:\/\/itsoftware.com.co\">mantenimiento a software existente<\/a>, y m\u00e1s si es un desarrollo a la medida, porque es alta la incertidumbre y desconocimiento del sistema, y m\u00e1s aun si no se cuenta con documentaci\u00f3n t\u00e9cnica adecuada del sistema desarrollado, para poder as\u00ed cuantificar a ciencia cierta el esfuerzo y el tiempo que se le debe dedicar para estudiar, aprender, planificar y finalmente modificar las plataformas existentes.<\/p>\n<div id=\"metaslider-id-7943\" style=\"width: 100%;\" class=\"ml-slider-3-109-0 metaslider metaslider-flex metaslider-7943 ml-slider has-dots-nav has-carousel-mode ms-theme-simply-dark\" role=\"region\" aria-label=\"Desarrollo de Software\" data-height=\"250\" data-width=\"250\">\n    <div id=\"metaslider_container_7943\">\n        <div id=\"metaslider_7943\">\n            <ul class='slides'>\n                <li style=\"display: none; width: 100%;\" class=\"slide-8052 ms-image \" aria-roledescription=\"slide\" data-date=\"2019-05-15 11:02:48\" data-filename=\"Xpress-IoT-Cloud-Platform-V3-scaled-250x250.png\" data-slide-type=\"image\"><a href=\"https:\/\/itsoftware.com.co\/content\/presentando-a-xpress-iot-cloud-platform\/\" target=\"_blank\" aria-label=\"Ver detalles de la diapositiva\" class=\"metaslider_image_link\"><img decoding=\"async\" src=\"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2019\/04\/Xpress-IoT-Cloud-Platform-V3-scaled-250x250.png\" height=\"250\" width=\"250\" alt=\"Desarrollo de software pare IoT\" class=\"slider-7943 slide-8052 msDefaultImage\" title=\"Desarrollo de software pare IoT\" \/><\/a><div class=\"caption-wrap\"><div class=\"caption\">Desarrollo de software pare IoT<\/div><\/div><\/li>\n                <li style=\"display: none; width: 100%;\" class=\"slide-8051 ms-image \" aria-roledescription=\"slide\" data-date=\"2019-05-15 11:01:48\" data-filename=\"Integraci\u00f3n-NeoFace-Veastytor-GCG-250x250.png\" data-slide-type=\"image\"><a href=\"https:\/\/itsoftware.com.co\/content\/face-recognition-access-control-integration\/\" target=\"_blank\" aria-label=\"Ver detalles de la diapositiva\" class=\"metaslider_image_link\"><img decoding=\"async\" src=\"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2019\/04\/Integraci\u00f3n-NeoFace-Veastytor-GCG-250x250.png\" height=\"250\" width=\"250\" alt=\"Desarrollo de software integraciones\" class=\"slider-7943 slide-8051 msDefaultImage\" title=\"Desarrollo de software integraciones\" \/><\/a><div class=\"caption-wrap\"><div class=\"caption\">Integraci\u00f3n de aplicaciones existentes<\/div><\/div><\/li>\n                <li style=\"display: none; width: 100%;\" class=\"slide-8050 ms-image \" aria-roledescription=\"slide\" data-date=\"2019-05-15 11:00:49\" data-filename=\"Cuesta-desarrollar-una-app-Colombia-250x250.jpg\" data-slide-type=\"image\"><a href=\"https:\/\/itsoftware.com.co\/empresas-desarrollo-aplicaciones-moviles\/\" target=\"_blank\" aria-label=\"Ver detalles de la diapositiva\" class=\"metaslider_image_link\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2019\/05\/Cuesta-desarrollar-una-app-Colombia-250x250.jpg\" height=\"250\" width=\"250\" alt=\"Desarrollo de aplicaciones m\u00f3viles\" class=\"slider-7943 slide-8050 msDefaultImage\" title=\"Desarrollo de aplicaciones m\u00f3viles\" \/><\/a><div class=\"caption-wrap\"><div class=\"caption\">Desarrollo de aplicaciones m\u00f3viles<\/div><\/div><\/li>\n                <li style=\"display: none; width: 100%;\" class=\"slide-8053 ms-image \" aria-roledescription=\"slide\" data-date=\"2019-05-15 11:03:58\" data-filename=\"pantallas-tactiles-Vendiendo-250x250.jpg\" data-slide-type=\"image\"><a href=\"https:\/\/itsoftware.com.co\/content\/software-pos-gestion-comercial\/\" target=\"_blank\" aria-label=\"Ver detalles de la diapositiva\" class=\"metaslider_image_link\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2019\/04\/pantallas-tactiles-Vendiendo-250x250.jpg\" height=\"250\" width=\"250\" alt=\"Desarrollo de software en la nube\" class=\"slider-7943 slide-8053 msDefaultImage\" title=\"Desarrollo de software en la nube\" \/><\/a><div class=\"caption-wrap\"><div class=\"caption\">Desarrollo de software en la nube<\/div><\/div><\/li>\n            <\/ul>\n        <\/div>\n        \n    <\/div>\n<\/div>\n<h3>Si te ha gustado este art\u00edculo, por favor no te olvides de compartirlo en las redes sociales.\u00a0 Thks\u00a0 \ud83d\ude42<\/h3>\n","protected":false},"excerpt":{"rendered":"<p>En inform\u00e1tica los sistemas no son est\u00e1ticos, van cambiando con el tiempo de acuerdo a las condiciones cambiantes de los mercados, a los clientes,a las normativas del sector, a los[&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":8631,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1070],"tags":[261,1121,1120],"class_list":["post-3343","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desarrollo-de-software","tag-desarrollo-de-software","tag-empresas-desarrolladoras-de-software","tag-mantenimiento-de-software"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2017\/02\/mantenimiento-de-software-1.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/posts\/3343","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/comments?post=3343"}],"version-history":[{"count":0,"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/posts\/3343\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/media\/8631"}],"wp:attachment":[{"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/media?parent=3343"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/categories?post=3343"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/tags?post=3343"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}