Si bien las empresas pueden llegar ser muy diferentes entre sí, a nivel de software
es más lo que se parece que en los que se diferencia. En cualquier de los enfoques
anteriores, se dan dos constantes que hay tener en cuenta:
El software va a cambiar: Los cambios son necesarios para el negocio,
estos cambios se darán de forma cada vez más frecuente y debemos poder responder
a la necesidad de dicho cambio para que nuestra empresa siga vigente en el mercado
de la forma adecuada.
El software se parece entre sí: Casi todo el software empresarial
se parece entre sí, casi todas las empresas gestionan recursos de algún tipo (humanos,
económicos, etc.) y generan un producto (dinero, servicios, o bienes de alguna naturaleza).
Técnicamente hablando casi todas los sistemas software tienen características como
acceso a datos, seguridad, interacción con el usuario o trazabilidad.
En el escenario donde una misma empresa fabrica su propio software, se deseara que
este sea homogéneo entre los distintos sistemas que posee, para disminuir la curva
de aprendizaje entre sus usuario y fomentar la imagen corporativa unificada.
En las fábricas de software, se deseara reusar los máximos componentes posibles
entre desarrollos diversos, para optimizar el uso de recursos y reducir los costos
de producción.
En el caso de la empresa que vende un producto de software, esta querrá vendérsela
al máximo número de posibles clientes, con las mínimas y menos costosas personalizaciones
posibles.
En cualquier de estas opciones, se tiende a desarrollar componentes y elementos
software, que se reúsan en los diversos sistemas. Los sistemas a su vez, se parecen
a otros sistemas con los que comparten una funcionalidad semejante, o tienen elementos
técnicos semejantes como características y aspectos comunes. La parte que hace diferencia
a un software, aunque en el producto final es la que más destaca, en proporción
es la que menor código representa, con respecto a la parte de código que puede reciclarse.
Veamos una serie de ejemplos que muestren las constantes sobre el cambio y las semejanzas
del software.
Si existe un mercado que evidencie la necesidad rápida de cambio de un software
es el de la telefonía movil. En menos de 10 años se convirtieron en un elemento
imprescindible, tanto en lo laboral, como en lo personal. Actualmente viene dominado
por dos gigantes de la industria, Apple (con su teléfono iPhone) y Google (con Android),
ambos ofrecen sistemas de funcionalidades idénticas, y llevan años en una carrera
de cambios, que en el fondo son semejantes en lado y en el otro. La diferenciación
entre ambos no se da en los que hace sus sistemas, sino en que Apple ofrece una
experiencia ligada a su hardware y a un ecosistemas de productos completo, y Google
a se basa en una interconexión de multitud de servicios, independientes del hardware.
Anualmente estas compañías presentan cambios y novedades a sus sistemas, y siguen
vendiendo teléfonos manteniendo al mercado interesado.
En el lado contrario tememos a RiM, el creador de la BlackBerry. BlackBerry fue
el primero en entrar en el mercado de los teléfonos inteligentes con un gran éxito,
pero se conformaron con tener un nicho seguro dentro del mundo empresarial, y perdieron
de vista los cambios en la sociedad que solicitaba tener al alcance de su mano una
forma diferente de servicios y conectividad global. Cuando emergieron los IPhone
y los Android Phone, que si supieron entender las necesidades de cambio, se quedaron
estancados y terminaron por casi desaparecer del mercado.
Microsoft, en cambio fue el último en entrar en este mercado, si bien entendió las
necesidades, no lo hizo en el momento adecuado, sino en uno en que ya no podía competir
con los dos grandes ya establecidos. Motorola y Nokia se enfocaron en sacar un producto
para cada sector consumidor según sus estudios de mercado, pero no comprendieron
que si bien, una persona necesita un teléfono para trabajar, también lo va a necesitar
para otras actividades, así que hicieron muchos teléfonos mediocres en lugar de
pocos que resuelvan un amplio aspecto de necesidades. Estos fueron ejemplos de empresas
que no supieron adaptarse al cambio de una manera adecuada.
Si vemos a las empresas que tuvieron éxito, observamos las constantes que hemos
mencionado:
- El negocio cambia, cambia frecuentemente, y la vigencia del producto viene definido por el cambio, y este debe estar sostenido un sistema software.
- Los sistemas se parecen entre sí, el software tiene más semejanzas que diferencias.
Si obtenernos el porcentaje del código de un sistema que se asemeja a otro código,
en comparación al que es exclusivo de nuestra aplicación, descubriremos que el código
semejante es mucho mayor que el que no es.
El problema es que se invierte más tiempo y recursos en desarrollar las partes semejantes
(por su volumen) que en desarrollar las partes exclusivas de un sistema, sin embargo
las partes exclusivas de un sistema son las que le dan su identidad, con lo que
debieran ser en las que se dedique más recursos y tiempo.
Para poder invertir los mencionados recursos y tiempo en el lugar adecuados, necesitamos
una herramienta que nos ayude a generar las características comunes del sistema
con el mínimo esfuerzo. La herramienta nos debe permitir escoger dichas características
de un catálogo general común para una empresa, para un ámbito de negocio, o para
un aspecto de nuestro software en particular e implementarla de forma automática
en el sistema.
En base a esto se puede construir una línea de desarrollo de productos de software
con un enfoque generativo.
No hay comentarios:
Publicar un comentario