Informática para no informáticos #1

07 de enero, 2021

Imagina que el día de mañana te hacen jefe de una unidad de informática en un centro de medicina, y que tu primera medida es implementar un software de gestión para el centro.

Digamos que viste todos los sistemas informáticos existentes y que ninguno te convenció. ¿Qué hacer ahora?

Una de tus opciones es contratar a una empresa para que cree un sistema informático que se ajuste a lo que tu centro requiere.

Así que comienzas a buscar empresas que se encarguen de esto. Pero luego de una búsqueda en Google y de ver muchas páginas de empresas de informática, quedas en blanco.

¿Qué pasó?

Pasa que la mayoría de este tipo de empresas utilizan un lenguaje poco amigable para decirte qué es lo que hacen y cómo te pueden ayudar. Abundan los “entregamos las mejores soluciones a tus necesidades”, “soluciones a medida”, “metodologías ágiles”, y mi favorito: “usamos las últimas tecnologías”.

Dicho esto, la idea de este post es ayudarte a entender lo que quieren decir los proveedores de software con su jerga.

Nota: Cada pregunta está basada en lo que dicen páginas reales de proveedores 🙈

¿Qué es el “desarrollo de software”?

El desarrollo de software es la acción de construir un software. “Estoy desarrollando un sistema” es como decir “estoy construyendo un sistema”.

¿Qué es “outsourcing”?

Outsourcing es lo que hace una empresa cuando contrata a un tercero para solucionar una problemática interna.

En el ejemplo, al contratar una empresa externa, estás haciendo “outsourcing”.

Lo contrario es hacer un “desarrollo propio” que significa contratar tus propios ingenieros y que ellos creen el software.

¿Qué es el “desarrollo a la medida”?

Piensa que quieres comprarte ropa. Una de tus opciones es ir al Mall y comenzar a probar distintas prendas hasta que encuentras una que te guste y te quede bien.

Si no hay nada que te quede, otra opción es mandar a hacer ropa. En este caso, vas con un sastre, quien te toma distintas medidas y crea una prenda perfecta para ti.

Cuando hablamos de “desarrollo a la medida”, nos referimos a este último caso. La empresa proveedora es el “sastre” y la vestimenta es el software.

¿Qué significa “levantamiento de requisitos”?

Continuando con la analogía, el proceso de “tomar distintas medidas” en el software es conocido como “levantamiento de requisitos”. Aquí los proveedores se encargan de averiguar cuáles son los problemas que quieres solucionar con el sistema.

¿A qué se refieren con “entregar solución a tus necesidades”?

Cuando los informáticos hablan de “necesidad”, se refieren a algo que tú necesitas que el software haga. Por ejemplo, podrías necesitar que el sistema te ayude a gestionar los turnos de tu personal.

Cuando los informáticos hablan de “soluciones”, se refieren al resultado del proyecto: el sistema informático.

Así que “entregar solución a tus necesidades” es como decir “construimos sistemas informáticos que hagan lo que tú necesitas que haga”.

¿Qué son las “metodologías ágiles”?

Nada de raro es que aparezca en la página de una empresa “trabajamos con metodologías ágiles”. ¿A qué se refieren con esto? ¿Salen a trotar mientras trabajan?

Una “metodología ágil” es un proceso particular para la construcción de software que se basa en “principios ágiles”.

No voy a entrar en el detalle filosófico, ya que para ti como cliente te importa lo práctico. Y lo práctico es que la metodología busca entregar software que te ayude lo más rápido posible: en vez de esperar años o meses para ver tu software, en un par de semanas podrás ver la primera versión.

Las siguientes versiones te las van a ir entregando a lo Luis Fonsi, paso a pasito. En cada paso (cada 2 ó 6 semanas aprox.) verás a tu sistema incorporar nuevos cambios. Y no solo eso: tanto el cliente (tú) como los usuarios participarán en el proceso, deberán involucrarse probando las funcionalidades y proporcionando retroalimentación.

La gracia es que cada versión realmente funciona y puedes usarla.

Así que cuando dicen “metodología ágil”, piensa en que te van a ir entregando el software de a poquito y que tú y los usuarios finales deben tener tiempo para participar del proceso de pruebas y entregar retroalimentación.

¿Y por qué no mandar a hacer el software y olvidarse? Bueno… En los inicios del desarrollo de software se intentó hacer esto. Definir muy bien los requisitos al comienzo, y luego simplemente programarlos. Esta metodología se llama “Cascada” y no funcionó:

  • La tasa de éxito es baja (10%)
  • Estimaciones de tiempo y costos varían hasta un 400%.

¿Cuáles son las “últimas tecnologías”?

En la práctica no te va a importar mucho las tecnologías que la empresa use. Como cliente, te importa que solucionen la problemática y listo, independiente de las herramientas.

Cuando una empresa dice que utiliza las “últimas tecnologías”, es como cuando una empresa de construcción dice “usamos el último modelo de taladro”.

¿A qué se refieren con “soluciones escalables”?

Ya hablamos que “solución” se refieren al sistema que te van a construir.

Cuando hablamos de “escalable”, nos referimos a un sistema que funcione bien independiente de la cantidad de usuarios que lo estén usando.

Por ejemplo, cuando una página deja de funcionar en un Cybermonday (por el alto tráfico), decimos que la página no es escalable.

La verdad es que escalable es una propiedad sobrevalorada. No todos los sistemas deben ser infinítamente escalables. Deben funcionar bien bajo límites razonables, los cuales se identifican en base al uso que le quieres dar.

Por ejemplo, si tu sistema lo usarán sólo las enfermeras, y tienes 200 enfermeras, no necesitas un sistema que soporte millones de usuarios.

Palabras finales

Espero que esta mini guía sobre la jerga que utilizan las empresas de desarrollo de software te sea útil como primer acercamiento.

En futuras publicaciones continuaremos explicando términos utilizados en el ambiente de la informática, para seguir creando puentes entre ambos mundos.



Hecho por Codeness con ❤️
© 2024 Codeness