Solución de software para revisión de arquitectura y desarrollo
1. OBJETIVO: revisión de aspectos que rodean el desarrollo de una solución de software
Conocer con qué debemos articular esa sólida base matemática de soluciones a problemas de la vida
diaria.
1
3. Veamos el primer punto de prerrequisitos para la charla: La arquitectura de software.
ANALOGIA CON LA CONSTRUCCIÓN: (1) CASA PARA UN PERRITO (2) CASA DE LOS 3 CERDITOS (3)
RASCACIELOS …
Imaginemos por un momento lo que implica construir una casa:
• Estamos de acuerdo en que es diferente construir una casa por ejemplo, para un perrito, para una
familia de cerditos o un rascacielos.
• Estamos de acuerdo en que según la casa a construir, existen otros parámetros que debe soportar
la casa al ser construida (recordemos la fábula de los 3 cerditos cuando no construyeron con
ladrillo-brick, sino con pajas-straw o palitos de madera-sticks)
• Cuando compramos una casa, antes de construirla, vemos los planos de diferentes sistemas; con
ello tenemos una visión y una dirección de lo que se construirá
VERSUS CASO SOFTWARE: FUNCIONALES+NO-FUNCIONALES (BASE-SÓLIDA)
Para el caso software:
• La arquitectura de software nos permite proponer soluciones que cumplen los requisitos
técnicos y operativos a al vez que optimiza lo que se llaman los atributos de calidad comunes
como rendimiento, seguridad
• Como cualquier otra estructura, el software se debe construir sobre una base sólida. Si no se
consideran escenarios clave se pone en riesgo su aplicación.
EL ESFUERZO DE ESTA DISCIPLINA VARÍA SEGÚN LO QUE SE QUIERE CONSTRUIR
• Para el caso industrial, son varias las perspectivas a observar cuando llega una iniciativa de
inversión. En este caso un área llamada arquitectura empresarial (siguiente slide).
• Para esfuerzos pequeños, un buen diseño está bien para iniciar.
3
5. ARQUITECTURA EMPRESARIAL
Cuando el tamaño de los negocios es considerable, un área llamada arquitectura empresarial es un
colaborador interesante para abordar esta reallidad. No es lo mismo entender el sistema de
información de la panadería de la esquina, a la forma en la cual una empresa basada en tecnología
como uber, usa sus servicios tecnológicos para despacharnos un auto y cobrar.
Cuando el negocio comienza a crecer, necesitamos “trucos” para entenderlo.
La ARQUITECURA EMPRESARIAL, Es la alineación tecnológica basada en apoyar los objetivos de la
empresa, buscando mayor agilidad. Para ello,
• Debemos Entender las dinámicas de la empresa de hoy en día
• Tecnología como articulador de las necesidades del negocio actual
• Desde el punto de vista de lo que se llama Arquitectura de Software
4 EJES FUNDAMENTALES son trabajados por la arquitectura empresarial:
• El negocio y sus procesos (i)
• La Información y aplicaciones o sistemas (ii)
• La infraestructura base: redes y hardware (iii)
• La base estratégica sobre la cual el negocio evoluciona (iv)
4
6. TRUCO #0: ZACHMAN FRAMEWORK
A nivel horizontal, bajamos en detalle
A nivel vertical, cada columna nos indica una dimesión que exploramos
Busca dar estructura a un sistema mediante los componentes que lo constituyen
Por ejemplo,
• en la columna de motivación (por qué), iniciamos con unas metas estratégicas; luego las vamos
decantando hasta tener unos objetivos de negocio, unas reglas o políticas que guían la empresa
• En la columna de funciones, comenzamos con los procesos de negocio; pasamos por los diseños
de un sistema, y llegamos hasta las funciones y rutinas de nuestros algoritmos
5
7. DEL 4P+H y EL SOCIO (HISTORY CHANNEL).
Como hemos visto, uno de los puntos fundamentales para poder participar en la organización y
permitir que ella evolucione, es el entender cómo funciona ella. Necesitamos tener varias vistas o
perspectivas de la organización analizada.
Precisamente History Channel tiene un programa que se llama “El Socio”, en el cual un inversionista
observa el potencial de determinado negocio que se encuentra en problemas bajo 3 ejes
fundamentales:
El Producto que desarrolla la compañía (1)
El Proceso que les permite estandarizar la forma en la cual lo elaboran (2)
y sobre todo Las Personas que trabajan allí (3)
Para efectos de la presentación del día de hoy, se adicionan 2 puntos:
• Los Proyectos: o iniciativas que nos permiten transformar el negocio de hoy
• y las Herramientas: que nos permiten lograr mecanismos de automatización en las tareas que
elaboramos
CON UN EJEMPLO
Suponiendo que tenemos un negocio de venta de autos en SanFrancisco,
(1) El producto en este caso es la venta del auto
(2) El proceso de venta es uno de los más relevantes para la compañía (procesos misionales)
(3) Quienes venden y el apoyo de otras áreas para hacerlo posible son quienes orientan la dinámica
del capital en esta empresa.
6
8. Los 5 elementos en conjunto los denominan el 4P+T de la construcción de proyectos
de desarrollo de software
6
9. Precisamente en el punto C, se tiene la oportunidad para “Integrar el conocimiento abstracto
matemático y algorítmico a problemas teóricos y prácticos”.
Para ello debemos entender el negocio donde aplicamos la tecnología (B).
y lo vamos a realizar mediante el uso de los 5 elementos del socio (A)
EL MAGO Y SUS TRUCOS:
Alrededor de la charla vamos a revelar algunos trucos alrededor del negocio y la tecnología
7
11. LAS VERTICALES DE NEGOCIO,
Son soluciones focalizadas por sectores (sectores de actividad económica), que requieren tecnologías
específicas para sus necesidades:
• No es la misma manera en la que un retail atiende a un cliente que un banco o empresa de
transporte:
• Entender al cliente, su lenguaje y sus procesos
Normalmente tratan de especializar un esfuerzo inicialmente horizontal, con soluciones genéricas
que aplicaban a diferentes tipos de negocios (ejemplo, un CRM o un sistema de facturación POS).
9
12. TRUCO #1: BUSINESS MODEL CANVAS
Aunque llenando 9 cuadros no vamos a entender un negocio, el business model canvas es una
herramienta, que nos da una idea preliminar de la forma como se mueve el negoio que se quiere
estudiar, a muy gran escala.
Estas 9 perspectivas son:
• Clientes (Customer Segments): hacia los cuales orientamos nuestro producto o servicio
• propuesta de valor: que es lo que soluciona, y a lo cual le metimos trabajo (por qué la persona va
a comprarnos)
• Canal: forma de entrega de nuestra propuesta de valor
• Relación: fidelización
• Ingresos: venta directa, suscri´ción, freemium
• recursos clave: lo que vamos a consumir para prestar el servicio
• actividades clave: internas: producción, marketing; para con ello entregar la propuesta de valor
• Alianzas: complementan nuestras capacidades, reducen incertidumbre
• Costos: fijos y variables para diseñar un modelo óptimo
Ejemplo BMC (Busiless Model Canvas): venta de autos
REFERENCIAS
https://es.slideshare.net/jorgemanriquechavez/generacin-de-modelos-de-negocio-y-diseo-de-
planes-de-negocio
10
16. TRUCO #3: AGILE PRACTICES
En esto no me voy a detener, pues fue tema de una charla previa.
Básicamente es un tipo de practicas que nos permiten lograr la interacción de personas que
llamamos equipo autoorganizado, con colaboración del cliente, con el fin de crear un producto y
demostrable a lo largo de iteraciones llamadas sprints.
A lo largo del sprint hay que saber qué se debe construir (PLAN), que se organiza en un backlog
Hay que saber ESTIMAR lo que se va a realizar (PLANNING-POKER), y que el equipo quede medio
balanceado
Hay que realizar las actividades, donde cada quien tiene sus TODO’s (KANBAN)
Se construye o ejecuta ese plan, viendo pedazos de producto al final de la iteración.
EJEMPLO 2: JIRA AGILE
• YOUTUBE: https://youtu.be/BF5LzxaM_c4
Inactionsas.atlassian.net (proyecto: 0000_CXT)
14
18. ARQUITECTURA DE REFERENCIA PARA SOLUCIONES A NIVEL DE EMPRESA
Es un modelo de referencia aplicable de forma transversal a diferentes tipos de industria.
Varios tipos de negocio tienen:
UNA ZONA OPERATIVA (1):
Una plataforma para soportar su operación diaria a través de la cual generan información. Para
algunos negocios, que basan su construcción en servicios digitales, los canales por los cuales
atienden también son netamente digitales. Normalmente puede que no sean un solo sistema, sino
conjuntos de sistemas que mediante integraciones, colaboran entre sí. Integraciones a nivel de front,
a nivel de servicios o a nivel de datos permiten la operatividad del día a día de la empresa.
Desarrollo de aplicaciones web, mobile (SinglePageApplications), con unas tecnologías de backend, y
escribiendo a orígenes de datos Relacionales y NOSQL.
Algunas veces delegamos incluso la existencia de un backend y únicamente exponemos el algoritmo
(serverless computing).
Ejemplos de tecnologías: SPA (single-page-applications) con {front} angular, react y {back} spring
boot, asp.net core nodejs, scala. {storage} orígenes relacionales y nosql (mongo, neo4j),
Ejemplos de conocimientos: desarrollo de aplicaciones, functional programming / object oriented
programming, sistemas distribuidos, blockchain
UNA ZONA DE INGESTIÓN (2)
La Información que en tiempo real o a través de batches de información se transmite o enriquece a
medida que llega…
Ejemplos: Kafka, SSIS
UNA ZONA DE ALMACENAMIENTO (3)
…para algunas veces ser acumulada …
16
19. Ejemplos: Hadoop, Amazon AWS-S3,
UNA ZONA DE ANALYTICS (4)
…esos datos acumulados o que se obtienen en tiempo real, los podemos usar para
describir+diagnosticar lo que pasa con el negocio (muchas veces visualmente), o bien
para predecir+prescribir lo que puede pasar con él. Sacar los ”insights” o información
de valor que a simple vista puede que no veamos mediante el uso de técnicas
heredadas de InteligenciaArtificial+MachineLearning+DeepLearning para el
procesamiento de información estructurada y no estructurada. Usar esos insights
para mejorar la experiencia del cliente, retroalimentar los procesos del negocio,
entregar información para toma de decisiones basadas en datos.
Ejemplos: Tableau, PowerBI, jupyter, stacks/librerias sobre R o Python como
tensorflow, utilitarios como deeplearn.js o d3.js
LA ZONA DE INFRAESTRUCTURA (5),
… donde se hospedan los desarrollos a realizar o los servicios que se consumen, y que
dependen de lo que hayamos montado: IaaS (Infraestructure as a service), Platform
as a service (PaaS), Software as a service (SaaS).
Ejemplos: Plataformas Tipo Cloud como Microsoft Azure, Google Cloud Platform.
Ejemplos Plataformas basadas en contenedores: Docker + Kubernetes.
Ejemplos SaaS: Plataformas de correo (Google Docs, Gmail)
Ejemplos PaaS: Heroku
16
20. Antes se creaban los conceptos o técnicas, pero no se tenía el hardware necesario.
Actualmente existe un potencial a explotar en un mundo de sensores, donde técnicas
estadísticas+DataMining / InteligenciaArtificial+MachineLearning+DeepLearning se aplican en varios
campos, y con infraestructuras tipo cloud se puede realziar el entrenamiento de modelos.
Estas técnicas que tiempo atrás fueron creadas, hoy en día son implementables dado que:
(1) El costo de almacenamiento ha bajado, por lo cual podemos almacenar mayor cantidad de
información
(2) El poder de cómputo ha aumentado
Teniendo estos 2 insumos, no nos queda más que comenzar a enseñarle a este tipo de máquinas a
“aprender de la experiencia”.
Cuando aumenta el número de variables del probema y también la cantidad de datos y no
conocemos una fórmula o ecuación que a pueda modelar, podemos usar técnicas de machine
learnng como apoyo.
SUPERVISED: queremos obtener una variable de salida, mediante n-variables de entrada. Mediante
ejemplos queremos que la máquina haga la predicción. Podemos poner a clasificar a la máquina (es
decir, que la salida esperada debe pertenecer a m-grupos), o bien, queremos obtener un valor
numérico (regression)
UNSUPERVISED: queremos conocer la estructura innata de los datos, sin conocer dicha estructura.
Mediante algoritmos de clustering se agrupan datos mediante su similitud, o mediante algoritmos de
asociación, se trata de descubrir reglas frecuentes que aplican para ellos (ejemplo: si lleva leche y
cerveza, también llevará huevos)
17
21. Otros tipos de datos más complejos
• Audio (traducción automática)
• Video (tagging, inteerpretación)
• Texto (procesameinto de lenguaje natural / ocr)
Otros tipos de análisis:
• Filtering (collaborative/content-based): mejor experiencia para los clientes
• Outlier detection (detección de intrusos, corrupción)
17
22. y= f(x)
A partir de unas entradas, queremos predecir lo que hace esta función f, y mediante técnicas de
optimización obtenemos un modelo parametrizado que predice nuestra realidad.
Primero entrenamos un modelo;
Posteriormetne este modelo entrenado nos sierve para predecir un comportamiento, donde los
datos no han sido vistos por el modelo.
EJEMPLO 1: AZURE ML.
YOUTUBE: https://youtu.be/mfhFeDpDa9E
REFERENCIAS
• aka.ms/data-science-for-beginners
• aka.ms/CortanaIntelligenceGallery
18
24. AS-IS / TO-BE
Los proyectos son el mecanismo normal de división del trabajo en una empresa para cambiar un
estado actual AS-IS en un estado deseable (TO-BE). Mediante un análisis de esa brecha, identificamos
el problema o preocupación de un área de la empresa para poderlo materializar en un proyecto o
producto a realizar. Normalmente se observa no sólo el costo de hacer el proyecto sino lo que
implica el no-hacerlo.
20
26. Arquitectura Empresarial / Frameworks
Articular lo que hace la empresa con tecnología
Usamos un framework como estrategia para dilucudar bien el estado actual de la empresa (AS-IS) o
bien el estado al que queremos llegar (TO-BE)
En el slide 2 de las represetnaciones de framworks mas conocidos
• (TOGAF (1),
• Zachman (2)
Dichos frameworks nos sirven para derivar una ruta clara de evolución tecnológica para llegar a ese
estado actual acorde a la impleentación de varios proyectos de interés para el negocio.
22
28. ARQUITECTURA PERSONAL
Vista integral&armonica de la persona.
estrategico> (motivadores, principios)
Tactico> (objetivos)
Operaci[on> capacidades que tengo
Defino mi situación actual, la forma de alcanzar esta definición que quiero
24
29. FORMAS DE APRENDER
• POMODORO TECHNIQUE
• MOOC’s
SABERNOS VENDER:
No a mucha gente le gustan las ventas, pero cuando consigues un empleo o vas a hacer un negocio,
indirectamente te vendes a ti mismo.
A quien tienen en mente las personas: con quien hubo mayor empatía
25
30. Esperando que ésta experiencia haya sido de valor.
- - - - - - - - -
Todas las marcas en mención son propiedad de sus respectivos dueños.
26