{"componentChunkName":"component---src-templates-blog-post-js","path":"/etapas-en-desarrollo-de-software/","result":{"data":{"site":{"siteMetadata":{"title":"El Blog de Nessy"}},"markdownRemark":{"id":"05c7a71f-2d5c-5d3e-be58-3499d0f32467","excerpt":"Continuemos con el ejemplo del post anterior: te hacen jefe de una unidad de informática en un centro de medicina, y tu primera medida es implementar un…","html":"<p>Continuemos con el ejemplo del <a href=\"/glosario-para-outsourcing/\">post anterior</a>: <em>te hacen jefe de una unidad de informática en un centro de medicina, y tu primera medida es implementar un software de gestión para el centro</em>.</p>\n<p>Finalmente <strong>decidiste contratar una empresa de desarrollo de software</strong>.</p>\n<p><em>¿Ahora qué?</em> te preguntas…</p>\n<p>En este <em>post</em>, veremos las etapas típicas de un proyecto de creación de software, de manera de que te enteres en qué consiste y qué responsabilidades tendrías tú como “cliente”.</p>\n<h2>Etapas en un proyecto de desarrollo de software</h2>\n<p>Un <strong>proyecto de desarrollo de software</strong> es parecido a otros tipos de proyectos. La diferencia central es que el resultado del proyecto es un software o programa.</p>\n<p>Este tipo de proyectos se realizan bajo un <strong>proceso</strong>, el cual define la forma en la cual se llevará a cabo el proyecto.</p>\n<p><strong>Es importante que el proceso que utilice la empresa que contrates te involucre a ti y a los usuarios finales</strong>. Si no es así, ¡tu proyecto está destinado a fallar!</p>\n<h3>¿Cómo saber sí la empresa de software me involucrará a mí y a los usuarios finales?</h3>\n<p>La forma fácil es preguntar <em>“¿Cuándo podremos tener una versión inicial?”</em></p>\n<p>Si te dicen que en 1 año más, lo más probable es que utilicen un proceso en <a href=\"https://es.wikipedia.org/wiki/Desarrollo_en_cascada\"><em>cascada</em></a>, donde se intenta definir TODO el proyecto en un principio, parecido a la construcción de un edificio.</p>\n<p>El problema es que al comienzo uno no tiene muy claro lo que quiere ni las características que debe tener el software para que sea fácil de usar por los usuarios. A lo más puedes tener ideas (hipótesis) de una posible solución. Incluso cuando todos los involucrados (proveedor, cliente y usuarios) consideren que una solución “en papel” es perfecta, la única manera de saberlo con seguridad es utilizando el software. Así que mientras antes lo probemos, mejor.</p>\n<p>Idealmente, la empresa que contrates utilizará una “metodología ágil”. Recordando <a href=\"/glosario-para-outsourcing\">el post anterior</a>, este tipo de metodología busca entregar software que te ayude lo más rápido posible de manera que en un par de semanas ya veas y uses la primera versión. Las siguientes versiones se hacen paso a pasito (cada 2 ó 6 semanas). El plus de estas metodologías es que buscan involucrar al cliente y los usuarios finales a lo largo de todo el proyecto.</p>\n<p>Aquí hay una imagen que revela el “paso a pasito” que es ideal en proyectos de software:</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 630px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 66.45569620253164%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAIAAAAmMtkJAAAACXBIWXMAAAsSAAALEgHS3X78AAABxUlEQVQoz41SW0/qQBDmDxtj/APGaHz0RdQXk5NjNCZG490HEw4YhACCWMK1rQ3UAgdtKYVuu93u6rRb8PKik15mJvPNzPdlYm9TY4z9xmeMzsIYvJRSz/M+1fzWArDv+4ahq3KVeBhCNLH6zxIf6BNvoMkEO7z6tafofYUvwcHBD7uOLCTtiQX+2Bw81dIc7LlOs5JCzoSDS8mLQup6xiXGs4SQ1G2ahPYvmSqVyoX7IuSr+7uF7XhmbeVVbPUy6avFhcv5ufrBHhcgAgNtwzBgfwCrqmqaJoSMUk2Wu6KoSSJGSO92JeFR77T77fYXzo7jwCYgG/F93itYx6d0qqIHRTTSmTLmh2UBGDBDw7DHw5C8jUIHQp5BtmUNXzhsPNKHL9qH2pw6yFjJHIPz3Co+CQlwelK+rwS0O1JZamR5tSILrUbuu2AQIIRAeNd1tJBSMZvN53LYdTuieLf7Vyk/kJE5qAj1sxNLEiPBeI//qvqYSFijkVR+aOTz9WZzZyP+Z3urVq2tr66ebsZvL85b15c3y0t3ayuVo0M+L5rsYewiBG1cZL8xijEGCaN7nN0mSBt+2ecL+8GCc6ZBE/6A5tOG7xl521C+goPFAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Paso a pasito\"\n        title=\"Paso a pasito\"\n        src=\"/static/4de8eb80a452f230780de77eb3df0783/f058b/mvp.png\"\n        srcset=\"/static/4de8eb80a452f230780de77eb3df0783/c26ae/mvp.png 158w,\n/static/4de8eb80a452f230780de77eb3df0783/6bdcf/mvp.png 315w,\n/static/4de8eb80a452f230780de77eb3df0783/f058b/mvp.png 630w,\n/static/4de8eb80a452f230780de77eb3df0783/40601/mvp.png 945w,\n/static/4de8eb80a452f230780de77eb3df0783/78612/mvp.png 1260w,\n/static/4de8eb80a452f230780de77eb3df0783/eb645/mvp.png 2500w\"\n        sizes=\"(max-width: 630px) 100vw, 630px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<center>Imagen extraida de <a href=\"https://medium.com/idealo-tech-blog/what-is-minimum-viable-data-product-49269e338d85\">\"What is Minimum Viable (Data) Product?\"</a></center>\n<h2>¿Cuáles son las etapas en un proyecto de software?</h2>\n<p>Independiente del proceso que la empresa utilice, existen actividades claves que son transversales y comunes. Las voy a definir como etapas secuenciales porque así es más fácil entender. Sin embargo, en la práctica son actividades que se realizan a lo largo de todo el proyecto.</p>\n<p>Las actividades base son las siguientes:</p>\n<ol>\n<li><strong>Etapa de concepción</strong>: descubrir el objetivo principal del proyecto y riesgos asociados.</li>\n<li><strong>Etapa de elaboración</strong>: definir un software mínimo que cumpla con el objetivo del proyecto.</li>\n<li><strong>Etapa de construcción</strong>: construir el software mínimo rápido y manteniendo la calidad. El objetivo es tener un software usable.</li>\n<li><strong>Etapa de estabilización</strong>: el software está instalado y los usuarios ya lo están usando. Existen algunas observaciones que requieren ser atendidas (por ejemplo: errores o problemas de uso). Puede haber una fase de transición, donde el proveedor capacita a los usuarios, y una fase de garantía, donde el proveedor se asegura que el sistema no tenga problemas ni bugs.</li>\n</ol>\n<h3>Etapa 1: Concepción</h3>\n<p>Tú como cliente tienes un problema que requiere solución. Así que tu labor es tener más o menos una idea de cuáles son los problemas que quieres que el software te ayude a solucionar.</p>\n<p>Es normal que no tengas conocimientos para definir una solución ni que tengas total claridad del problema de fondo.</p>\n<p>Un buen proveedor te ayudará a descubrirlo en un proceso que los informáticos llaman “levantamiento de requisitos”.</p>\n<p>En el levantamiento de requisitos las empresas <strong>evalúan la situación actual</strong>, <strong>te ayudan a descubrir una situación deseada (meta)</strong> y comienzan a pensar sobre <strong>posibles caminos que te permiten llegar a la meta</strong>. Puede darse el caso de que el camino NO SEA construir un software a la medida (lo que quieres), sino que sea utilizar uno ya existente (lo que realmente necesitas).</p>\n<p>Algunas empresas cobran por esto, parecido a una consulta médica. Hay otras que lo hacen gratis como parte de su estrategia de ventas.</p>\n<p>Al final de esta etapa, <strong>tú y el proveedor tendrán una idea si el proyecto es factible, considerando costos, plazos y el objetivo del proyecto</strong>.</p>\n<p>¿Cómo se ve esto en la práctica? Tienes una o varias reuniones con el equipo del proveedor, donde con un <em>screening</em> te van haciendo preguntas para descubrir que es lo que realmente necesitas (la meta). Luego, es posible que te llegue una <em>propuesta</em> de trabajo que indique el paso a paso, plazos y cuánto va a costar. Esta propuesta puede involucrar crear el software o ser un ante proyecto para definir mejor el software a construir. Luego tu opción es aceptar la propuesta o rechazarla.</p>\n<h3>Etapa 2: Elaboración</h3>\n<p>La etapa de concepción es el <em>por qué</em>, mientras que la de elaboración es el <em>cómo</em>.</p>\n<p>En esta etapa, tú y tu equipo junto a el proveedor trabajan en <em>definir</em> un producto mínimo viable (MVP): un producto bien chiquito que cumpla con el objetivo más importante del proyecto.</p>\n<p>Es importante que en esta etapa se involucren todos los interesados: tú, los usuarios finales y el equipo proveedor. Muchas veces el proveedor no sabe nada sobre tu contexto, y si ellos diseñan el sistema sin tu ayuda, es probable que el resultado sea un software para informáticos y no para clínicos (¿suena familiar?).</p>\n<p>El resultado de esta etapa puede ser bocetos, diseños o mockups del sistema. <strong>El nivel de involucramiento de los participantes de tu lado debe ser al menos de dar feedback</strong> sobre los bocetos.</p>\n<p>Es posible que esta etapa considere solo una parte de todo el sistema, dejando para “más adelante” la definición del resto. Recuerda que estas etapas pueden irse repitiendo a lo largo del proyecto, es normal y deseable hacerlo “paso a paso” en vez de definir todo de un golpe.</p>\n<p><em>Nota: Muchas veces esta etapa de “Elaboración” es lo que algunas empresas venden como “ante proyecto”.</em></p>\n<p>Una vez ya están validados los bocetos, pasamos a…</p>\n<h3>Etapa 3: Construcción</h3>\n<p>En construcción el proveedor hará su “magia” y luego de un tiempo razonable (2 a 6 semanas) te entregarán un software funcional.</p>\n<p>El software que construyan va en línea con el <em>por qué</em> (concepción) y con el <em>cómo</em> (elaboración). Pueden haber diferencias, y es posible que algo que visualizaron en un inicio no funcione muy bien en la práctica.</p>\n<p>Durante la construcción, el equipo podrá preguntarte cosas o darte alternativas para ciertos escenarios.</p>\n<h3>Etapa 4: Estabilización</h3>\n<p>La estabilización es la etapa en la cual el software ya está instalado y los usuarios finales lo están usando.</p>\n<p>Es posible que existan errores o fallas. Lo importante es que la empresa que construyó el software te ofrezca un periodo de garantía donde se comprometa a solucionar los problemas que surjan con el uso. Existen 2 grandes clases de problemas:</p>\n<ol>\n<li><strong>Bug</strong>: existe un error o un defecto que hace que el programa no funcione correctamente. Generalmente ocurren por secuencia de pasos que el programador no consideró (casos bordes) pero que el usuario ejecutó.</li>\n<li><strong>Problema de usabilidad</strong>: es cuando existe una acción que es difícil de realizar en el sistema.</li>\n</ol>\n<p>La gracia de pasar por un proceso de “elaboración” donde involucre a los usuarios finales y además de construir el software en iteraciones, es que estos problemas aparecen antes.</p>\n<h2>Palabras finales</h2>\n<p>Espero que este post te haya sido de ayuda para entender cuáles son las etapas de un proyecto de software y para que te hagas una idea de cuál es tu nivel de involucramiento.</p>\n<p>La verdad es que <strong>los proyectos de software son colaborativos</strong>. Y como tal, no es algo que mandas a construir y luego te olvidas. Es importante que tú y tu equipo tengan una colaboración activa en el proceso de construcción, así que tienes que considerar esto como parte de la inversión de recursos.</p>\n<p>En futuras publicaciones continuaremos explicando términos utilizados en el ambiente de la informática, para seguir creando puentes entre ambos mundos.</p>","fields":{"tags":[{"name":"Tecnología","slug":"tecnologia"}]},"frontmatter":{"title":"Informática para no informáticos #2","date":"22 de  enero, 2021","description":"Aquí te explicamos las etapas de un desarrollo de software para no informáticos.","author":{"slug":"nico","avatar":{"childImageSharp":{"fixed":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEqUlEQVQ4y22T2XMUVRSH58kHtRDIOpnp7pnuniXbJJMdshEyIQnZYFgCRCKEJJCwC0mUFMpigEBYEtawhCAJBgEt1iqg1BIpKUuLguJBLV98sKzywb/h83SHzdKHU32r77nf/f3OPceRYMzCini9VL5lOP2VuFLqUNKiqBlLUcLNqFkr0SRUWSuhxbK3QHIacAaqSDBn22cnz8/C8RImG0nBGtySrGYuQ8teiTeniUC4iuRwBWaoEm84ije/E092i52jpC/ElVxLoq/8FfAlTDaU9EV4spaj5XUQyKkjMiOTmSGDUMCL36tieD2YGRGBtkuskdz3UEONorZeoJEXCstE2dznsGb0gnUYuUuIFGbRUJhCrplId1MthekBprz9DlPeegO3kYlR3PVc7cpJqKVUhDmsmrmlXprUR89fjV7cQ1p+PeVhnfLsIHvWr+Dvn+7y682z9K9vJqC5mD49BqNoI0ZJj5zpsJVa9pMC1ThcyXV28b25begzN2KW78aXs5gsbwxb3m3g6/Fh/vjhPs9ujzO27wM6Fs8hLjYWvbRHcnehF72PN281WmYT7tQGHJY66wbbqtzoqzyAUtTNqmiE7y4c4kTPOp5eO8mnOzbQ29JEX+ciQkGdpMIu/FUHMUo/FCEbbOuWSofVBp6cVvTCzZhlH+GbewSlbDe961r5/avLPL1+kd9ujPDZzg08GBng3qmdVBZlo5Rux1dzFHP2DrG/RRy2i9MlOGy7Itko3opPLHirBglFhzm9byd/PrrDXw9v8WB0kMObWngydoibxz5maSSbUN1B9JoTmJFPbGdeqaUWbhKg9JPVAkZJt2z2YcwdIjD/Agf6h3l8a4SHE2d4NHGRKwf3MLJ7CwPdzTRE2whGL2DUHMes2Dtpu2CtAJf/F2jWDKHXj5Kx9DIT54d5cuM0T66Mc3toP6N9a9nUuYLUxs8x549J7rH/Ab5m2Xpho/oI/nln0edfob1riHuXDvP07jVujwzS3VZLdbSF5MYv8TWcs93Yrl63bD2K97VHMSr346s/hdpwmc6uo5wb2Mq2zR00L6yhqthPbW09/uglzPqzGFUDrx4lr91uP7tttBdtU9qLOadfXvoQrpJe2lat4fGd0/Rva6dlUTndrdUsq5uJK7dF7A5K7gGMWdv/3TZ2Y0tT6nmtGAVtApcRTC1FDeYRidSI3XF+vHWeqyd3cfV4Lw3VFUyNV1ED+eKsEWOGDER+mz1p7tR51uhVoKXORgsWyIyGUMx0NH8WeuoMFH8eo4N7eXZ/gu+/OMPYUB/eQJgkPR3Vl4HLE8Stp0leLkqwREYvIkBDmtQUkC9TvhK+bNxmGE8wB5cklkdq+eWb6/z87R2qqqPEa2kCScepJZOgBCSC9jpR9RPrCuBIVFNw+7JEYQ5aIIckb7oNtEIVpdOcfjpXtbFkQSNvTnWR5EnB6Uklzu0nQRWQliKwZOLdAaYnaDhinSZOgShyWBGw6s+24YovbK9VuSTG5Ze6eXCJMivHLXsuI0OshwRowXwC8zAtXoAxiTpxcsACTKp6DhT7L1RbSj3B3EmY/LfCJfV2etJs27FJBlPj3EyLU/gHBhzbgqfkxlYAAAAASUVORK5CYII=","width":70,"height":70,"src":"/static/c454b7eddf2624b2e434eb2b68050446/31406/nico.png","srcSet":"/static/c454b7eddf2624b2e434eb2b68050446/31406/nico.png 1x,\n/static/c454b7eddf2624b2e434eb2b68050446/1edbf/nico.png 1.5x,\n/static/c454b7eddf2624b2e434eb2b68050446/b3779/nico.png 2x"}}},"bio":"Ingeniero Civil en Computación PUC.","github":"muZk","linkedin":"codewithnico","name":"Nicolás Gómez","twitter":"codewithnico"},"image":{"childImageSharp":{"resize":{"src":"/static/81c11e5c1158d3632dd1250c8ff0acad/f3583/preview.png","height":627,"width":1200}}}}},"previous":{"fields":{"slug":"/iniciando-una-carrera-tech-desde-enfermeria/"},"frontmatter":{"title":"Iniciando una carrera Tech desde Enfermería"}},"next":{"fields":{"slug":"/glosario-tecnologias/"},"frontmatter":{"title":"Informática para no informáticos #3"}}},"pageContext":{"id":"05c7a71f-2d5c-5d3e-be58-3499d0f32467","previousPostId":"34b91c55-9795-5106-80a5-f94b35f5e8c6","nextPostId":"29165cad-8f7a-5547-997d-937afb5bed1c"}},"staticQueryHashes":["3832538981"]}