Mostrando entradas con la etiqueta software. Mostrar todas las entradas
Mostrando entradas con la etiqueta software. Mostrar todas las entradas

jueves, 10 de febrero de 2022

¿Qué es una API? Breve descripción para dummies



Una API (interfaz de programa de aplicación) es un software intermediario que permite que dos aplicaciones no relacionadas se comuniquen entre sí. Pero: ¿Cómo funciona? ¿Qué beneficios genera? ¿Por qué todo el mundo habla de ello? Cómo se articula?


Las APIs actúan como un puente: reciben solicitudes de un programa y luego las envía a otro, traduce los mensajes y ejecuta protocolos en función de cómo ha sido programada. Aunque no seamos conscientes, las API articulan casi todos los aspectos de nuestra vida digital: son la columna vertebral oculta de nuestro mundo digital conectado. Conectan todo y hacen que los sistemas de software funcionen en armonía.




Las API, siendo invisibles para el ciudadano de a pie, son una herramienta de impacto para los programadores. ¿Cómo funcionan? Abriendo una pequeña parte de la funcionalidad y los datos del software de un sistema de forma controlada. Esto permite a los desarrolladores acceder a ese programa, pieza de hardware, datos o aplicación sin necesidad de acceder al código de todo el sistema.

Hay dos tipos de API: privadas y públicas. 
  • Las API públicas funcionan con aplicaciones orientadas al consumidor y brindan a las empresas oportunidades para conectarse con sus clientes mediante una variedad de aplicaciones, dispositivos móviles y navegadores. 
  • Las API privadas funcionan en el back-end, agilizando las operaciones y creando herramientas para que los clientes, el personal y otras partes interesadas puedan recibir un mejor servicio.

¿Cuándo se usa una API en los negocios?


Las API se pueden usar en cualquier punto de un escenario de desarrollo de un software, por ejemplo:
  • cuando dos sistemas diferentes necesitan comunicarse entre sí, para lo cual se necesitan ciertos permisos
  • cuando es necesario unir una pieza de software externa a un sistema existente

Casos de Uso


1. Empresa con página web que desea estar localizada en Google Maps

Un caso de uso típico es el clásico sitio web de una empresa que utiliza una API para vincular un mapa de Google incrustado en la página "Acerca de nosotros" y el propio Google Maps.
  • ¿Por qué lo hace? La empresa incorpora Google Maps en su sitio web para ayudar a los lectores a encontrar las sucursales más cercanas. 
  • ¿Cómo lo hace? La empresa se conectará y consumirá las API públicas de Google. La API en el sitio de la empresa esencialmente está llamando a la API en Google Maps, de manera que esta segunda le brinda la información y la funcionalidad. 
  • ¿Cómo se benefician las partes?  Esto es, por supuesto, bueno para ambos lados de la interacción: el sitio web de la empresa mejoró su funcionalidad, mientras que Google Maps puede monetizar este tipo de intercambio de datos a través de una tarifa o marcar el mapa para mejorar sus esfuerzos de marketing.

2. Empresas de servicios que esperan recibir réditos de marketing

Cualquier negocio transaccional o basado en servicios puede utilizar su API para obtener beneficios de marketing desde múltiples interfaces. También hay una variedad de aplicaciones de uso común a las que puede conectarse a través de API, como Uber, Yelp, Google Maps y Dropbox: la lista de aplicaciones y programas accesibles a través de API es interminable

Otro ejemplo común son las API que permiten a los clientes iniciar sesión en un sitio web a través de su inicio de sesión de Facebook o Google. Además, cada vez que 'compartes' un artículo en línea, harás clic en un ícono que te permite compartir un enlace a través de ese medio, como Twitter, Gmail o Facebook. Todos estos servicios están habilitados por API.

3. La Casa Blanca

Un ejemplo macro es el de la Casa Blanca, que ha lanzado miles de API que brindan al público acceso a información sobre el gobierno, desde finanzas hasta atención médica y agricultura. El público puede encontrar centros de votación, información sobre seguridad alimentaria u otra información beneficiosa, lo que le permite ahorrar un tiempo valioso.

Estructuras de API posibles


Son básicamente tres:
  • Privadas: las API solo se pueden usar internamente, de manera que las empresas tienen un mayor control sobre ellas.
  • Públicas: todos tienen acceso a las API, así que otras empresas pueden desarrollar API que interactúen con las nuestras y así convertirse en una fuente de innovaciones. Esto permite que terceros desarrollen aplicaciones que interactúan con nuestra API: ¡podemos ser un recurso para innovar!.
  • De partners: las API se comparten con partners empresariales específicos, lo cual puede ofrecer flujos de ingresos adicionales, sin comprometer la calidad.


¿Por qué usar una API?


Las API permiten a una organización extender su propio software y datos a aplicaciones y datos que no son de su propiedad. Esto permite una variedad de beneficios, como una mayor funcionalidad, ahorro de costos, innovación tecnológica y operaciones optimizadas:
  • Mayor funcionalidad para los clientes: las empresas pueden ofrecer a los clientes una experiencia de cliente mejorada porque tienen acceso a conjuntos de datos y funciones completamente nuevos. Por ejemplo, cuando incrusta un mapa de Google en su sitio web, evita que el usuario tenga que hacer clic en otro sitio web o aplicación, lo que le ahorra tiempo y aumenta la probabilidad de que sea un cliente habitual.
  • Ahorrar dinero: en lugar de contratar desarrolladores costosos para crear software personalizado, las empresas pueden tener integraciones perfectas entre aplicaciones y programas usando API. Las empresas pueden aprovechar el software existente, en lugar de desarrollar el suyo propio, ahorrando dinero en I+D.
  • Ahorrar tiempo: no hay demoras en el desarrollo de software, ya que la API generalmente ya está escrita y solo necesita integración con cada extremo.
  • Comunicar mejor: a medida que se agrega nuevo software a una empresa, las API integran todo para que el flujo de información sea fluido.
  • Enlazar sin problemas: casi cualquier dispositivo o aplicación inteligente ahora está conectado a Internet. Desde refrigeradores hasta impresoras, la tecnología moderna es ahora una red de artículos. Las API permiten que estos dispositivos inteligentes se conecten para facilitar la impresión o incluso pedir un café desde su escritorio.
  • Ampliar el alcance de la comercialización: Las API de Facebook, Twitter, Instagram, Pinterest y otras plataformas de redes sociales permiten compartir fácilmente blogs, información u ofertas con solo hacer clic en un botón.
  • Fomentar la innovación: con la seguridad y la funcionalidad que brindan las API los desarrolladores solo están limitados por su imaginación.
  • Optimizar las operaciones: por ejemplo, si una empresa está desarrollando una aplicación de viajes, una API le permite a un cliente ir desde el avión, a un viaje compartido, al hotel, sin tener que abandonar la interfaz o iniciar sesión en otro lugar. Con las API, las empresas pueden vincular los componentes de reserva, pago y cumplimiento.
  • Innovar más rápido: innovación más rápida con menos barreras para el cambio. Las API listas para usar significan menos tiempo de desarrollador y resultados más rápidos. Los desarrolladores pueden adaptarse a un nuevo software o programa de forma rápida y sencilla.

Muchas API son gratuitas y las empresas o los desarrolladores regalan el software sin costo alguno. Esto generalmente se debe a que el uso de su programa amplía el alcance del software y su impulso en un mercado, creando más usuarios para ellos.


Conclusiones


Las APIs:
  • Son una herramienta vital para todas las organizaciones que utilizan cualquier combinación de software moderno.
  • Han de utilizar una serie de rutinas, herramientas y protocolos para especificar cómo deben actuar juntos los diferentes componentes de software. 
  • Permiten ofrecer acceso a los recursos y, al mismo tiempo, mantener la seguridad y el control: tú decides cómo habilitas el acceso y a quiénes se lo otorgas.
  • La seguridad de las API depende de su buena gestión, lo cual incluye el uso de una puerta de enlace de API. Para conectarse a las API y crear aplicaciones que utilicen los datos o las funciones que ofrecen, se puede utilizar una plataforma de integración distribuida que conecte todos los elementos, como los sistemas heredados y el Internet de las cosas (IoT).

En un sentido más amplio, las API han permitido que algunas empresas crezcan y se expandan. En lugar de que una empresa desarrolle su propio software para pago, comunicación, integración de datos o cualquier otra acción, su API permite que el software externo de terceros funcione perfectamente dentro de sus sistemas internos.

Referencias

  • Video para principiantes: https://www.freecodecamp.org/news/apis-for-beginners-full-course/

sábado, 16 de mayo de 2020

Metodología Dajoda, la técnica infalible para digitalizar los procesos de tu empresa


Para lo bueno y lo malo, tenemos la fortuna de poder escribir la historia de nuestra vida laboral y la de las empresas en las que trabajamos. Con el aliciente, o el aliento en el cogote, de que la tecnología va más rápido que nosotros y nuestra capacidad de digerir toda la información que pasa por nuestras manos. 



Sea como fuere, hay una serie de must que casi con toda seguridad nos aplican. Y uno de ellos es el de la digitalización de nuestros procesos. En mayor o menos medida, hoy en día todo o casi todo se puede capturar y mostrar a golpe de click para el interesado. El reto está en identificar no ya los procesos más interesantes a digitalizar, sino en:
  • las expectativas a cumplir (entender el por qué y para qué),
  • la manera de aterrizar el proceso (el cómo), y
  • saber detallar qué pinta tiene el éxito.
Si estás harto de Excels, el presente post pretende dar una serie de pautas básicas para llegar a buen puerto y sentir el pulso de tu empresa. A modo de resumen, éste decálogo te permitirá dar los primeros pasos en la digitalización de tu negocio:

  1. Establecer el Equipo
  2. Reconocer qué necesitas digitalizar
  3. Organizar Workshops dedicados
  4. Elegir el Software adecuado
  5. Aprender a reconocer dónde están las fuentes de información
  6. Hacer uso de la estadística, la gran olvidada
  7. Automatizar, en la medida de lo posible
  8. Establecer Sanity Checks
  9. Dedicar tiempo a pensar, mejorar e ir más allá
  10. No olvidar a los grandes olvidados en las empresas

1. Establecer el Equipo


¡Cómo no! No puede ser de otra forma. Lo creas o no, el Equipo es el primer requisito a considerar. Y para ello, tal y como explicamos en el post sobre Dashboards de negocios, hace falta un Core Team permanente y estable, que incluya, como mínimo, a los siguientes miembros:
  • El Process Owner
  • El Experto de IT
  • El Experto en Procesos

¡Ojo! Este equipo no debe ser estanco, más todo lo contrario. A través de un proceso de invitación paulatina de la partes de interés que sean relevantes, el Core Team debe ser capaz de interiorizar los inputs de todas las personas con las que se entrevista, haciendo de filtro y siendo capaz de describir el proceso con la granularidad necesaria para que luego sea factible su implementación.

2. Reconocer qué necesitas digitalizar


Aunque todo es potencialmente digitalizable, es importante identificar aquellos procesos en los que la actividad nos aportará valor. De esta manera:

  • Maximizaremos nuestra apuesta.
  • Como consecuencia de ellos, empezaremos a ahorrar tiempo y dinero desde el minuto 1 de la implantación, puesto que podremos sacar conclusiones que nos tienen que ayudar a tomar mejores decisiones, y más rápido.
  • Nos familiarizaremos con los pasos a dar y aprenderemos, de manera que acciones futuras de digitalización la culminaremos mucho más rápidamente.

Pero no debemos olvidar lo siguiente: no siempre es fácil reconocer estos procesos críticos ni sus KPIs a medir asociados, es importante hacer las preguntas adecuadas. Rodéate de gente con criterio, capacidad de análisis, experiencia y habilidad para retar de una manera constructiva. Como ejemplo, algunas preguntas que deben ser respondidas son:
  • ¿Cuántos datos tengo? ¿de cuantos datos dispongo?  ¿con qué frecuencia se actualizan?
  • ¿Trabajo con datos masivos?
  • ¿Sabemos lo que necesitamos medir?
  • ¿Cuáles son los KPIs de los datos?
  • ¿Tengo suficiente con un excel?

3. Organizar Workshops dedicados


Como decíamos anteriormente, aparte del Core Team, harán falta otras partes de interés que entrarían y saldrían de las reuniones con la frecuencia que sea necesaria. Sus inputs son fundamentales, imprescindibles, innegociables. Por supuesto, puedes obviarlos, pero recuerda que si no les haces partícipe es probable que vuelvan a tí con comentarios del estilo Esto no es lo que queríamos, Esto no es lo que tenemos, Esto no lo entiendo...  o simplemente no compran la herramienta que con tanto esfuerzo has preparado. Por otro lado, una serie de matizaciones que han de ser tenidas en cuenta son las siguientes:

  • No es necesaria la presencia permanente de todas las partes de interés, pero deben estar disponibles cuando el Core Team las reclame: de esta manera todas las partes ganarán tiempo y dinero.
  • No hace falta mantener reuniones presenciales: hoy en día, con la tecnología existente, podemos invitar a las personas que nos interesen vía software de video-llamadas, durante el tiempo que haga falta, y luego salir de la reunión
  • Reuniones de más de 5 personas.... pueden acabar siendo improductivas para la mayor parte del equipo

El objetivo de estos talleres, al final del día, no es otro que obtener el feedback del usuario y su posterior buy-in una vez se presente la propuesta.


Workshops - David Muñoz Tirado

4. Elegir el Software adecuado


De esto también hablamos ya en posts anteriores. Se puede digitalizar de mil maneras en función de cuál sea tu problema y tu objetivo. Puede ser un simple CRM, o quizás quieras ir más allá y necesites también contar con Sistemas de Información Geográfica, herramientas de e-commerce, o un simple excel.

En este sentido, dos comentarios:

  • El papel del experto de IT es fundamental para validar la factibilidad, de manera preliminar, de las ideas que van surgiendo y se van describiendo por el camino.  
  • Utiliza con sabiduría tus recursos de IT: son muy valiosos, así que más vale que se centren en cosas complejas, mientras que otras actividades que requieran habilidades menos core IT las pueden hacer otras personas. 

Algunos softwares gratuitos (hasta que dejan de serlos) se pueden encontrar aquí:

5. Aprender a reconocer dónde están las fuentes de información


Una vez tenemos claro qué queremos medir, tenemos que ser capaces de entender:
  • De qué manera se genera el dato
  • Si el dato necesita manipulación o cálculo
  • Dónde se almacena

Identificar los campos necesarios para poder obtener los datos que más nos son de interés es de vital importancia. Si no somos capaces de oler esta sangre, los mejor es pedir ayuda a alguien que nos eche una mano. Como recomendación, tener un mapa de la arquitectura de las bases de datos de la empresa y entender cómo se relacionan entre ellas es de vital importancia. 

6. Hacer uso de la estadística, la gran olvidada


Desde el cribado de Xs, pasando por herramientas de regresión, correlaciones, diseño de experimentos o simples Pareto. La estadística aporta mucho a un coste asumible, así que desdeñarla es uno de los mayores errores que cometen los decision makers. En este sentido,
  • Tomar decisiones adecuadas requiere contar con estadísticas de calidad:  la precisión y coherencia de las estadísticas de los procesos críticos refuerza la credibilidad de las decisiones del Management.
  • No debemos olvidar que esta exigencia de calidad del dato puede repercutir en una carga excesiva a los procesos en general y los trabajadores en particular. Esto es, la tarea de recopilar y presentar los datos exige tiempo, dinero y otros recursos.
  • La dificultad de recoger datos detallados: la recogida de información estadística detallada puede suponer un reto muy importante, en dos sentidos:
    • En lo que se refiere a la elección de metodologías y métodos de cálculo.
    • En cuanto al origen de dato y su capacidad para extaerlo.


Estadistica - David Muñoz Tirado

7. Automatizar, en la medida de lo posible


Esto es: siempre que sea posible, que los datos se cumplimenten automáticamente y no dependan de la voluntad de un humano. Y esto debe ser así por múltiples motivos:
  • cumplimentar celdas aporta poco o ningún valor añadido per se
  • por muy diligente que sea, el humano se puede equivocar
  • las personas están para otras cosas de mayor interés: esto es, interpretar los datos para la correcta toma de decisiones.

Al final del día, debemos de ser capaces de saber de qué lado estamos: ¿eres de los que piensas que un día las maquinas nos dirán lo que tenemos que hacer, o prefieres ser tú el que le digas lo que tienen que hacer?. La decisión está en nuestras manos y sólo se precisan dos cosas: actitud y método


Automatización - David Muñoz Tirado

8. Establecer Sanity Checks


¿De qué manera aseguras el pedigree de tus datos? ¿Cómo sabes que los datos que vas a usar para tomar tus decisiones son veraces? Se recomienda, por no decir que es absolutamente imprescindible, establecer mecanismos de defensa ante uno de los mayores riesgos: cocinar con datos que no cuenten lo que de verdad está pasando. Ante esto, unas reglas básicas:
  • todo proceso (y variables asociadas) que sea medido deberá ir de la mano de un sanity check
  • la frecuencia de este subproceso puede variar:
    • cada vez que se produzca una actualización del proceso
    • periódicamente, aunque no hayamos hecho cambios
  • el sanity check debe documentarse: ¿cómo se va a hacer? ¿qué medios técnicos y humanos se necesitan?
  • el establecimiento de este subproceso de control se puede hacer forma manual, o automática. Por supuesto, se recomienda la segunda vía, dado que la primera no dejará de ser un control random que en ocasiones es muy limitado en la forma, la sistemática y el tiempo.


Sanity Check - no lo olvides o te encierro

9. Dedicar tiempo a pensar, mejorar e ir más allá


Como siempre, todo esto se puede hacer con altas dosis de imaginación y creatividad. Y la inspiración no llega del cielo, sino que es un proceso complejo que tiene sus momentos y requiere tiempo. Para ello,
  • La empresa debe reconocer la importancia de este proceso y dar libertad para llevarlo a cabo
  • Si no es posible: todos tenemos actividades que liberan la mente: correr, montar en bici, pintar, hacer manualidades, tocar el ukelele o hacer kárate
  • Si puedes hacerlo en compañía: estar acompañado de gente que aporta de una manera constructiva, reta y aporta, es todo un lujo que no se debe dejar de lado.

De la creatividad ya hablamos en un post pasado: si lo deseáis, podéis echarle un vistazo aquí.

Para terminar, es también realmente importante, si se puede, poder comparar: esto es, cómo estamos ahora vs cómo estábamos al empezar:
  • ¿cuál es mi grado de digitalización? ¿puedo comparar el antes y el ahora?
  • ¿qué beneficios he obtenido? ¿qué hemos aprendido? 
  • ¿qué nuevas capacidades y ventajas competitivas tenemos ahora?
  • ¿he sido capaz de reducir mis actividades de poco valor añadido?
  • ¿Cuántos excels usaba antes, y uso ahora?
  • ¿Cuánto tiempo tardas en acceder a la información que necesitas?

10. No olvidar a los grandes olvidados en las empresas


Sí, digitalizar mola mucho y queda de maravilla hablar de ella en los foros de innovación en los que nos movemos, pero hay otras consideraciones a tener muy en cuenta en la empresa si no queremos empezar a sentir el vértigo de ver cómo se va dinero por la ventana. Nos estamos refiriendo a:
  • La gestión por procesos: de izquierda a derecha, no de arriba - abajo. Recomiendo la siguiente lectura en la que tratamos el tema con detalle. 
  • Retener el know - how de la empresa
  • Establecer un Departamento de Inteligencia en la empresa, básicamente para.... pensar, tal y como comentábamos en el punto anterior.

En ambos casos, para fortuna de los que han llegado a este extremo del post, y aunque nos cueste reconocerlo, basta con un simple Excel para implementarlo. No dudes en pedírmelos, si quieres hacer uso de ellos. 

Conclusiones

La actividad de digitalización debe servir para poder hacer mejor nuestro trabajo, de cara tanto al cliente interno como al externo. Y esto debe verse reflejado en ahorros de tiempo, mejor trato y servicio y en definitiva, debe ayudarnos a vivir mejor. Además
  • No olvidar quién es el cliente interno de toda la actividad: y éste no es el Process Owner, sino que hay que ir más allá. Son los verdaderos usuarios del proceso tus clientes, no el jefe de todos ellos: lo que viene a ser el Customer Centric Model.
  • Método: tener clara la sistemática a aplicar y pivotar las veces que haga falta para llegar a buen término. Escribir las conclusiones en un papel.
  • La importancia de pensar: con frecuencia tendremos la impresión de que dedicamos mucho a tiempo a discutir los pros y los cons - el 80%- , pero una vez lo tenemos claro y lo dejamos por escrito, la implementación suele ser rápida: el 20%. De nuevo Pareto al rescate.
  • Evaluar dónde estábamos y donde estamos ahora para poder comprar y aprender de los errores.
  • Y, sobre todo, no tener miedo


Post elaborado junto con Daniel Santos de Hipoo y José Rio Perandones, de Panel.