Industria del Software

Wesly Ariel Lazo Canales 20151001980

Introducción

La industria de la información alrededor del mundo está creciendo con rapidez y con el uso de la tecnología es necesario estimular, apoyar y guiar los esfuerzos en el desarrollo de los productos de alta calidad basados en software. En la actualidad, para que una compañía se encuentre entre las mejores de la industria de desarrollo de software, es necesario tomar en cuenta muchos aspectos, entre los cuales destacan las necesidades empresariales, las políticas de calidad, los recursos humanos, el diseño, el desarrollo de productos y el compromiso por parte de la administración. Por otro lado, entre las características que son más importantes para que un cliente elija a la empresa que desarrollará su sistema son: precio, seguridad, calidad y tiempo de desarrollo.

Por esto, es necesario encontrar la manera en que se cumplan ambos conjuntos de requerimientos: los de competencia empresarial y los de satisfacción de los clientes, estableciendo para ello dentro de las empresas, lineamientos que fortalezcan la calidad de sus productos, obteniendo certificados que avalen la misma, incrementando la capacidad de producción.

Desarrollo

El software de computadora es el producto que construyen los programadores profesionales y al que después le dan mantenimiento durante un largo tiempo. Incluye programas que se ejecutan en una computadora de cualquier tamaño y arquitectura, contenido que se presenta a medida que se ejecutan los programas de cómputo e información descriptiva tanto en una copia dura como en formatos virtuales que engloban virtualmente a cualesquiera medios electrónicos. La ingeniería de software está formada por un proceso, un conjunto de métodos (prácticas) y un arreglo de herramientas que permite a los profesionales elaborar software de cómputo de alta calidad.

La ingeniería de software

La ingeniería del software es una disciplina que implica el uso de estructuras, herramientas y técnicas para construir programas informáticos.

Así mismo, incluye el análisis previo de la situación, la redacción del proyecto, la creación del software y las pruebas necesarias para garantizar el correcto funcionamiento del software antes de poner el sistema en funcionamiento.

La ingeniería de software es una tecnología de varias capas las mismas que deben asegurar la calidad del producto, El fundamento para la ingeniería de software es la capa proceso. El proceso define una estructura que debe establecerse para la obtención eficaz de tecnología de ingeniería de software. El proceso de software forma la base para el control de la administración de proyectos de software, y establece el contexto en el que se aplican métodos técnicos, se generan productos del trabajo (modelos, documentos, datos, reportes, formatos, etc.), se establecen puntos de referencia, se asegura la calidad y se administra el cambio de manera apropiada. 

El ciclo de vida SDLC

El ciclo de vida del desarrollo de software (en inglés: SDLC – Systems Development Life Cycle) es la estructura que contiene los procesos, actividades y tareas relacionadas con el desarrollo y mantenimiento de un producto de software, abarcando la vida completa del sistema, desde la definición de los requisitos hasta la finalización de su uso. Entre esas fases tenemos

  • Comunicación
  • Planificación y análisis
  • Estudio de viabilidad
  • Análisis del sistema
  • Diseño
  • Codificación
  • Integración
  • Pruebas
  • Implementación
  • Formación
  • Mantenimiento y Funcionamiento

El proceso del software

Un proceso es un conjunto de actividades, acciones y tareas que se ejecutan cuando va a crearse algún producto del trabajo.

  • Una actividad busca lograr un objetivo amplio (por ejemplo, comunicación con los participantes) y se desarrolla sin importar el dominio de la aplicación, tamaño del proyecto, complejidad del esfuerzo o grado de rigor con el que se usará la ingeniería de software.
  • Una acción (diseño de la arquitectura) es un conjunto de tareas que producen un producto importante del trabajo (por ejemplo, un modelo del diseño de la arquitectura).
  • Una tarea se centra en un objetivo pequeño, pero bien definido (por ejemplo, realizar una prueba unitaria) que produce un resultado tangible.

Creciente competencia de los países en desarrollo por entrar al mundo del software

Si se acepta la complejidad global del mundo del software, es previsible que haya varias rutas para incorporarse a su dinámica, ya que es uno de los mercados con mayor crecimiento en la última década.

Los expertos en el tema argumentan que las tecnologías de la información (TI) son la última moda y que, por ende, no hay que dejarse llevar. Sin embargo, los líderes del mercado ponen como ejemplo los casos exitosos de la India, Israel e Irlanda, que han traducido su creciente éxito en las tecnologías de la información, en especial las exportaciones de software en generación de empleo, ganancias, divisas y crecimiento económico.

Varios observadores han dado una versión estilizada del crecimiento de esos tres países. Desde su perspectiva, la industria india vende servicios de programación a grandes clientes estadounidenses; los empresarios irlandeses dan el tinte local y ajustan el software del idioma inglés para el creciente mercado europeo, y los programadores de Israel diseñan y venden productos empacados de software, en particular aplicaciones de seguridad de datos que tienen sus orígenes en la enorme industria defensiva del país.

Además, hay que mencionar sobres los modelos de innovación, ya son los que permiten que la industria se especialice en servicios de software con una alta competencia con los países desarrollados.

México uno de los países interesados en el crecimiento del software, ve en esos tres países en especial en la India un modelo más que una motivación. Es un error afirmar que los países en desarrollo intenten replicar el caso de la India, ya que México tiene las bases para entrar de forma distinta y más remunerativa al mercado del software, que puede explotar y construir, más que abandonar, sobre el éxito y los fracasos de los modelos de desarrollo anteriores.

El camino para desarrollar un modelo propio de software

Las experiencias internacionales muestran que hay un proceso de desarrollo desigual en los países integrados al mercado global del software. En los casos de la India, Irlanda e Israel debe reconocerse que han logrado crear un nicho de mercado exitoso, pero la clave ha sido la diferenciación de sus productos; ninguno de los tres países ha intentado copiar lo que hace su competidor. De igual forma, los nuevos participantes en el mercado (Corea del Sur, Finlandia y China) han optado por nuevos nichos de mercado; de ninguna forma han tratado de copiar a los otros tres.

El software es una industria muy atractiva, ya que es intensiva en conocimiento y en mano de obra calificada. Sin embargo, requiere una fuerte disciplina de los países para contar con la fuerza laboral que exige la industria, por lo que para las economías emergentes como México el reto es ajustar la capacitación con el desarrollo de la industria.

Tipos de software

Software de aplicación

Contiene todos y cada uno de esos programas y utilidades que derivan de una programación de software y, que cumplen una tarea específica, en casi cualquier área de la vida diaria, que se usan a través de dispositivos móviles y computadores.

 Software de programación

A través de conocimiento lógico y de lenguaje de programación orientada a objetos, es posible diseñar utilidades digitales para que ejerzan diversas funciones, lo que hablamos en el punto anterior.

Software de sistema

Llegamos a la base donde se construyen los dos anteriores. Dentro de los tipos de software, el de sistema es el más importante. Es quién le permite al usuario usar la interfaz del sistema operativo que viene incorporado al dispositivo.

Este está compuesto por un conjunto de programas u aplicaciones nativas que tienen dos propósitos:

  • gestionar recursos físicos del aparato para coordinar tareas y administrar la memoria para el uso del mismo;
  • y, ofrecer una experiencia de uso para que se pueda controlar e interactuar con el sistema.

Tipos de licencia de software

  • Software libre: aplicaciones disponibles para ser utilizada, copiada, modificada y distribuida por cualquiera;
  • Copyleft: al igual que el software libre pueden ser utilizadas por cualquier pero no modificadas o redistribuidas;
  • GPL: dirigida a Linux y limita la distribución e integración de este software;
  • Debian: redistribución libre donde el código fuente debe ser incluido y poder ser redistribuido;
  • BSD: contiene pocas restricciones sobre el uso, alteración y redistribución de software;
  • Dominio público: software sin copyright;
  • Semi-libre: no es libre, pero permite ser usado por otros usuarios;
  • Freeware: usada para programas que pueden ser redistribuidos, pero no modificados;
  • Comercial: desarrollado por una empresa con el objetivo de generar ganancias;
  • Trial: versión de pago distribuida de manera gratuita por un tiempo.

Que le espera a la industria del software en el futuro

El futuro del trabajo va a ser muy diferente del trabajo que conocemos hoy en día y, por lo tanto, requerirá diferentes mentalidades y habilidades por parte de las personas para mejorar sus trayectorias. Que sea para bien o para mal, depende de todos nosotros a medida que evolucionamos en nuestro modo de pensar y de trabajar.

A medida que nos movemos hacia un mundo basado en datos, en el que analizamos características hasta en tiempo real, para averiguar cuánto valor aportan a los clientes, para aprender de ello y mejorar a partir de los resultados, es más importante que nunca que tengamos más gente en nuestro barco, que no tenga miedo de arremangarse y utilizar cualquier tecnología nueva o desconocida para hacer las cosas.

En el futuro, la capacidad de colaboración para los profesionales del desarrollo de software será aún más importante de lo que es ahora. Atrás quedaron los días en que se contrataba a un candidato debido a su impresionante calificación académica. Sino que lo realmente importa es contar con personas colaboradoras, con jugadores de equipo y no con aquellos que simplemente sobresalen en lo académico. La razón por la cual la habilidad de colaboración es una necesidad, en lugar de una buena idea, es porque no importa cuán bien educado seas, si no eres capaz de articular y argumentar bien tus ideas y no eres capaz de conseguir la aceptación de los demás, no serás capaz de progresar tan rápido como la otra persona que lo es. La rapidez será la clave para desbloquear la innovación en el trabajo futuro.

El usuario del futuro exigirá personalización y serán cada vez más capaces de personalizar el software por sí mismos. No solo hablamos de cambiar el color de un botón o la fuente de un texto. Hablamos de añadir nuevos campos a un formulario, validaciones, modificar o añadir nuevas reglas de direccionamiento de flujos de trabajo o incluso la integración con otras aplicaciones.

Sí en el futuro una aplicación no se puede personalizar, los usuarios buscarán otras alternativas o buscarán formas de piratear el software que pondrá en jaque la integridad y la seguridad de una aplicación que se ha diseñado para ser demasiado rígida.

Que nos depara como ingenieros en Sistemas

El panorama como ingenieros en sistemas supone una grandísima oportunidad para el desarrollo de nuevos entornos de desarrollo y herramientas que permitan a los desarrolladores de software incorporar fácilmente personalizaciones a sus aplicaciones. Las aplicaciones más exitosas del futuro serán aquellas que ofrezcan opciones de configuración y personalización vía programación a los propios usuarios. La industria del software no morirá por el hecho de que todo el mundo sepa programar. Muchas personas saben cocinar y no veo que la industria de la restauración vaya a desaparecer de aquí a mucho tiempo.

Lo que sucederá es que la siguiente generación de usuarios será la más exigente de la historia del software. Los usuarios comprenderán cómo se construyen las aplicaciones de software y exigirán una calidad alta en la experiencia de usuario, y posibilidades de personalización que nunca antes se habían demandado.

Importancia que tiene el software para las organizaciones

Los programas de gestión están cada vez más ligados a las administraciones de las principales compañías debido a la correcta optimización del tiempo, la mano de obra, y el presupuesto, factores en los que radica la importancia del software en una empresa y el por qué está siendo una moda en las direcciones de estas.

A día de hoy, la importancia del software en una empresa se ha recreado como un factor innegable sobre su correcto funcionamiento, y es que cada vez son más las compañías que lo han adaptado a sus departamentos de recursos humanos laborales, financieros, o contables.

La optimización de los recursos humanos y económicos lo han convertido en la opción perfecta para aquellos negocios que quieren empezar en el mercado o quieren digitalizar algunas de sus áreas; como hemos dicho, el factor tecnológico está cada vez más presente en estos conglomerados y ha tomado uno de los papeles con más importancia.

La evolución de las TIC no solo en la sociedad, sino en el sector empresarial, ha provocado un cambio radical de sus departamentos, personalizando, mejorando y agilizando muchos de los procesos administrativos para aportar un valor añadido al cliente de la misma.

Conclusiones

El software lo desarrollan los ingenieros para que personas lo utilicen en el entorno para el que este fue diseñado, para así poder sacar provecho de todas las funcionabilidades que le fueron incluidas al producto.

El software en la actualidad está presente en todos los ámbitos de nuestras vidas, ya que ha invadido el mercado, la cultura y las actividades que realizamos porque nos permite ejecutarlas de forma más rápida y dinámica.

El ciclo de vida del software inicia en el análisis para el posterior desarrollo del mismo, ya que tener claro lo que se va a desarrollar es la parte más importante, debido a que la mayoría de proyectos de software que han fracasado se debe a que no se tomó el tiempo necesario para analizar el problema.

Las nuevas tecnologías permiten desarrollar software a la medida, es por esto que los equipos de trabajo buscan mejorar sus productos de forma que se adapten a las nuevas tendencias de desarrollo, un ejemplo en la actualidad seria la computación en la nube donde el software como tal se encuentra alojado en un servidor  a varios kilómetros de la maquina en la que se está ejecutando dejando así los recursos tales como memoria procesador que se utilizarían en la instalación disponibles para otras actividades.

El desarrollo de software exige mucho tiempo y análisis independientemente del tipo de software que se esté realizando ya sea este un sistema de notas o un sistema transaccional en la web. Los ingenieros de software trabajan diariamente en diferentes proyectos y estos pueden ser nuevos o actualizaciones a aplicaciones ya existentes para que se adapten a las nuevas tecnologías.

Bibliografías

aplicacionesreunidas. (s.f.). Obtenido de https://www.aplicacionesreunidas.com/importancia-del-software-en-una-empresa/

Microsoft. (26 de 01 de 2021). Obtenido de https://news.microsoft.com/es-xl/desarrollo-de-software-en-2021-y-mas-alla/

PIORE, M. (09 de 2005). http://revistas.bancomext.gob.mx/. Obtenido de http://revistas.bancomext.gob.mx/rce/magazines/87/1/Ruiz-Schrank.pdf

rockcontent.com. (30 de 04 de 2019). Obtenido de https://rockcontent.com/es/blog/tipos-de-software/

ungoti. (14 de 08 de 2021). Obtenido de https://ungoti.com/es/soluciones/desarrollo-de-software/sdlc/

velneo. (18 de 02 de 2019). Obtenido de https://velneo.es/tendencias-futuro-desarrollo-software/