Foros

Creado el 01 Oct. 2018
0Comentarios

¿Qué lenguaje prefieren los desarrolladores? ¿Cuáles son las herramientas que utilizan? El estudio realizado por la plataforma especializada en el ecosistema de desarrollo GitLab  destaca que no hay una herramienta única para los desarrolladores y que al igual que en otros sectores, lo colaborativo conquista.

Como subraya Sid Sijbrandij, CEO y cofundador de GitLab, “los programadores en la actualidad buscan una evolución más natural del desarrollo de software que fomente la colaboración y el intercambio de información durante el ciclo de vida de un proyecto”.

Apuesta generalizada por el código abierto

El estudio destaca que el 98% de los desarrolladores utiliza herramientas de código abierto en el trabajo. En concreto, un 56% revela que más de la mitad de sus herramientas de desarrollo son de código abierto y el 18% que emplea solo herramientas de código abierto.

Sobre las opciones que tienen al enfrentarse a los diferentes proyectos, el estudio reseña que más de la mitad de los programadores (55%) eligen las herramientas con las que ya trabajan.

Cuando se les pregunta sobre las herramientas y técnicas más importantes para ellos, el 92% señala que los sistemas distribuidos de control de versiones (Git) son “muy o extremadamente importantes” para su trabajo cotidiano, seguidos por la integración continua (77%), el desarrollo agile (59%) y la entrega continua (55%).

La seguridad es un factor clave para los especialistas. El 86% de los encuestados considera que es importante al desarrollar código. Y a pesar de ello ocho de cada 10 liberó código antes de que estuviese listo.

En este sentido, la necesidad de alcanzar los plazos (59%), la presión por parte de la alta dirección (38%) y la rotación del equipo (19%) se citan como las tres principales razones por las que se libera el código antes de tiempo.

 ¿Cuál es su lenguaje de programación preferido?

JavaScript es el lenguaje de programación elegido por el 51% de los encuestados, seguido por Python (36%), PHP (30%) y Java (26%). Swift (8%) y Objective-C (4%) son los menos populares.  En este ebook se recopilan todas las herramientas de programación que citan los especialistas.

Y como dato curioso, a los expertos en desarrollo les gusta la comunicación digital: el 66% prefieren estar contactados por correo electrónico o mensaje instantáneo en lugar de en persona.

Más información:

-  En nuestro Ebook Open Source

Infografía La historia del Open Source

El Internet de las cosas de código abierto

¿Te interesan las APIs financieras? Descubre todas las que te ofrece BBVA

 

 

Creado el 20 Sep. 2018
0Comentarios

Cada vez más los desarrolladores de aplicaciones móviles están basando su lanzamiento de nuevos productos en el trabajo previo con APIs móviles que facilitan servicios necesarios para el desarrollo de sus creaciones. O bien se diseñan aplicaciones móviles que necesitan tener acceso a una API REST con servicios determinados o es necesario codificar una API REST que permita lanzar determinadas aplicaciones con unos servicios concretos. En cualquier caso, lo cierto es cada vez más se pide el desarrollo de APIs móviles dentro de los equipos. Su seguridad, como en el resto de APIs, se convierte en un elemento esencial.

A no ser que la API disponga de una acceso totalmente abierto, un aspecto extraño pero tampoco descabellado hoy en día, lo normal es que el profesional que quiera usarla necesite identificarse usando algún método específico. Apostar por un sistema de credenciales o autenticación óptimo es una de las claves más importantes para garantizar la seguridad de una interfaz de desarrollo de aplicaciones, ya sea una API tradicional de desarrollo de proyectos para escritorio o específica para apps móviles.

Métodos de autenticación con APIs móviles 

En alguna otra ocasión hemos hablado de cómo han evolucionado a lo largo del tiempo los distintos métodos de autenticación con APIs, hasta evolucionar al más utilizado en la actualidad: el método OAuth, cuya última versión es OAuth 2.0. De hecho, en este site hemos analizado cómo las APIs abiertas basadas en OAuth 2.0 se han convertido en uno de los estándares del mercado actual de interfaces. ¿Es OAuth 2.0 el único método de autenticación? No, existe otro método conocido como autenticación de acceso básico HTTP basado en nombre de usuario y contraseña. Empezaremos a explicar este segundo por su simplicidad y menos uso hoy en día: 

  • Autenticación de acceso básico HTTP: este es el método más sencillo para cumplir con los requisitos de acceso a un servicio web. Es sencillo porque no requiere ninguno de los procesos habituales en un sistema de credenciales: cookies, identificadores de sesión o páginas de acceso. Todo el proceso de autenticación básica HTTP se basa en campos estándar en el encabezado HTTP. Se evita lo que se conoce, en terminología anglosajona, como handshaking (apretón de manos): el proceso automatizado por el que dos entidades establecen una comunicación autenticada antes de comenzar la comunicación normal por el canal establecido. Esto es lo que permite que un equipo establezca comunicación con un dispositivo externo sólo si existe una autenticación correcta: si no existe, el canal de comunicación no se crea. No existiría, por ejemplo, una conexión con un módem. La evolución segura del método de autenticación de acceso básica HTTP es HTTPs.

Para evitar que el método de autenticación de acceso básica HTTP provoque que el navegador lance con cada acceso la petición de nombre de usuario y contraseña, el navegador debe guardar en caché esa información durante un tiempo lo suficientemente prudencial para no rebajar en exceso la seguridad. Lo lógico es que esas credenciales de seguridad se guarden 15 minutos.

¿Cómo es este método de autenticación de acceso básica HTTP en el mundo real?

1. La credencial de acceso facilitada a terceros desarrolladores que desean conectar a una API móvil es un ID alfanumérico totalmente secreto.

2. Esa clave API alfanumérica se aloja en un espacio seguro del servidor.

3. El desarrollador que hace solicitudes de algún servicio concreto contenido en esa API debe colocar ese ID secreto dentro del encabezado HTTP de autorización junto con la palabra Basic. Ambos elementos juntos son los que permiten que el servidor reconozca la credencial alfanumérica y dé el acceso.

GET /privado/index.php HTTP/1.1
Host: example.com
Authorization: Basic ID alfanumérico
         

  • OAuth 2.0: OAuth supone un paso adelante en el uso de credenciales para la autenticación de usuarios de una API de servicios. Supone un gran avance con respecto al uso del método de autenticación básica HTTP. Hoy en día es casi el único método de seguridad en el que es posible confiar casi al 100%, una confianza basada en la creación de tokens de autenticación exclusivos por usuario. Si ese token de acceso se ve comprometido, se elimina y se da otro. Eso permite que las credenciales de la propia API queden a salvo. 

El proceso de autenticación se produce de la siguiente manera:

1. Un usuario lanza una aplicación nativa y se le pide un nombre de usuario o un correo electrónico y una contraseña para identificarle como usuario.

2. El tipo de solicitud utilizado para enviar esa credencial a la API es una solicitud POST, aquella que garantiza el envío privado de datos secretos. Esa petición se envía a través del protocolo SSL (Secure Sockets Layer), diseñado para permitir que las aplicaciones transmitan información de ida de forma segura. SSL facilita dar y recibir claves de cifrado entre aplicaciones.

3. Esa solicitud posibilita que se validen las credenciales del usuario y se cree ad hoc un token de autenticación o acceso que caduca con el tiempo o si el usuario o el desarrollador al cargo de la API creen que se ha quebrantado.

4. Ese token de autenticación queda guardado en el dispositivo para facilitar el acceso a los servicios de la API que dan vida a la propia aplicación. 

Si se comparan ambos métodos, OAuth 2.0 da mayores criterios de seguridad porque cualquier solicitud inicial de credenciales queda bajo el protocolo SSL y, además, el objeto del acceso garantizado es un token temporal. En el proceso de autenticación básica HTTP, el acceso a los servicios de la API dependen siempre del envío de las credenciales a través de la red, concretamente en el encabezado HTTP, lo que facilita mucho su vulnerabilidad por parte de terceros

¿Te interesan las APIs financieras? Descubre todas las que te ofrece BBVA

Creado el 03 Sep. 2018
0Comentarios

María Kovesdi es General Director de MKM Internacional Business Consulting. Ha trabajado tanto en instituciones públicas como en empresas privadas a lo largo de su carrera. En ediciones pasadas de LibreCon, mostró los dilemas de presentación de solicitud de patentes basadas en software libre. Ahora nos hace de guía para hablar de legislación y APIs: patentes, derechos de autor, normativa...

Para ella el mercado de las APIs se encuentra en una fase expansiva tanto desde el punto de vista del número de desarrollo de APIs, debido al desarrollo del móvil e Internet de las cosas (IoT), como por ejemplo, a la Directiva de Servicios de Pago Europeo (PSD2) en Europa. Sin embargo, apunta que “la divergencia de criterios entre los diferentes marcos jurídicos de protección de derechos de las APIs para sus desarrolladores, a escala global, hasta cierto punto podrá ralentizar el proceso”.

1. Lo primero que debes saber es que…

Una API en sí misma no se puede patentar

Pero si se puede proteger con derechos de autor, y los pasos serían los de registrar este tipo de derechos. María Kovesdi recomienda la consulta y el asesoramiento de expertos en propiedad intelectual.

2. ¿Y por qué no?

Una API es un software consecuentemente.

Y en la legislación europea el término software se considera equívoco. En la Oficina Europea de Patentes (OEP) más que a patentes de programas informáticos se refieren a "invenciones implementadas en ordenador".

Una invención implementada en ordenador es aquella que implica el uso de un ordenador, una red informática u otro aparato programable en el que una o más de sus funciones se llevan a cabo total o parcialmente gracias a un programa de ordenador.

Y en virtud del Convenio de la Patente Europea (CPE), un programa de ordenador reivindicado “como tal” no es una invención patentable (Artículo 52 (2) (c) y (3) CPE.

3. ¿Es así en todo el mundo?

La legislación no es común. Europa tiene una y EEUU tiene otra.

La Corte Suprema de EEUU declaró en el año 2015 que las APIs tienen derechos de autor. Debido a esta sentencia los desarrolladores que dirigen su trabajo al mercado de EEUU tendrán que evitar cualquier API que no tenga una licencia explícitamente abierta.

4. En Europa, concretamente:

La legislación también protege los programas de ordenador - o APIs-.

En todo caso y por sí solos, como propiedad intelectual (derechos de autor) y, en algunos casos, cuando forman parte de una invención, como propiedad industrial (patentes).

La Ley de Propiedad Intelectual define un programa de ordenador (software) y regula el derecho de autor (copyright) que lo protege según la siguiente regulación.

5. Por supuesto, con matices...

El programa de ordenador será protegido si es original.

En el sentido de que debe ser una creación intelectual propia de su autor para que esté protegida.

Por eso, no estarán protegidas mediante los derechos de autor las ideas y principios en los que se basan cualquiera de los elementos de un programa de ordenador, incluidos los que sirven de fundamento a sus interfaces.

6. Aunque debes saber que...

No obstante la realidad y complejidad actual del desarrollo tecnológico supera el marco legislativo y tratándose de intereses económicos se prevé que los litigios de carácter tecnológico vayan aumentando. 

Para María Kovesdi, Impulsar y generar debates en torno la propiedad intelectual en general, derechos de autor, patentes y otras categorías de propiedad intelectual, en particular, “delata el grado de madurez social, desarrollo tecnológico y existencia de grupos de interés en una sociedad”. Por ello, está segura que habrá propuestas a analizar en el marco de construcción de la estrategia del Mercado Único Digital.

En el caso concreto de España, en este momento, ella se conformaría con la “mayor divulgación, conocimiento y aplicación de las tecnologías libres, y programas open y libres, para que cualquier persona u organización con talento y con proyectos y soluciones innovadores pueda llegar sin trabas a los sectores demandantes de las APIs”.
 

¿Te interesan las APIs financieras? Descubre todas las que te ofrece BBVA

 

Creado el 03 Ago. 2018
0Comentarios

La experiencia de usuario se ha convertido, desde hace algún tiempo, en una de las disciplinas mejor valoradas en la creación de productos digitales, puesta en práctica en la conceptualización y el diseño de páginas web, aplicaciones, mensajería instantánea y en sectores tan dispares como el comercio electrónico, los medios de comunicación, la banca o el gran negocio de las redes sociales. Lean UX es la materialización de una forma concreta de entender la metodología y el proceso de trabajo por el que se da valor diferencial a los productos de los clientes: enfocar la experiencia de usuario en aportar valor al usuario y menos en los entregables.

El objetivo final es trasladar todos los valores heredados de las metodologías Agile y Lean al trabajo de experiencia de usuario. Si aterrizáramos esta idea a una definición más accesible, la meta sería generar nuevas dinámicas de gestión de recursos para la creación de productos mínimos viables que aporten valor al cliente y al usuario con menos esfuerzo humano, menos capital, menos material y en menos tiempo, sin que eso provoque un resultado con menos calidad y más fallos.

Dentro de la labor de los profesionales de la experiencia de usuario, en muchas ocasiones existe un enfoque excesivo en la creación de documentación de apoyo y algo menos en la generación de valor real. Eso no quiere decir que los entregables no formen parte del proceso lógico de definición de producto, investigación, análisis, diseño, implementación, lanzamiento y mejora posterior. El profesional de UX es transversal a toda esta línea del tiempo del desarrollo de producto y, con una buena metodología, es capaz de introducir avances únicos para el cliente y el usuario.

Especificaciones UX: parte del proceso de UX

Todo el volumen de documentación que era y es habitual que los profesionales de UX entreguen al cliente recibe el nombre de especificaciones UX. Los anglosajones utilizan el término abreviado de ‘The Spec’. A veces es tal el volumen de requerimientos y especificaciones que las empresas entregan a sus clientes para justificar su trabajo y el coste de su asesoramiento, que los profesionales de UX se convierten, sobre todo, en expertos en la creación de entregables técnicos.

Si esta tendencia se combina con una metodología de trabajo en cascada, lo habitual es generar excesivo ruido y lo que el cocreador del Scrum Jeff Sutherland llama residuos. El término exacto procede de su libro ‘Scrum’, donde explica algunos de los valores de esta metodología ágil con ejemplos sobre el trabajo pensado en sprints cortos y la entrega periódica de productos funcionales. Los residuos son todos aquellos elementos que intoxican todo ese proceso y que realmente no aportan valor al único elemento realmente importante: el producto que utilizará el usuario.

Si el enfoque de la creación de documentación no es satisfacer al cliente, sino establecer unos objetivos claros en el desarrollo del producto y aportar valor real en sus funcionalidades a lo largo de todo el proceso, el conjunto de especificaciones no son ruido ni residuo, sino un elemento esencial para tener productos exitosos.

Fruto de estas preguntas…

  • ¿Quiénes son los usuarios?
  • ¿Cuáles son las tareas y metas?
  • ¿Cuál es su nivel de experiencia?
  • ¿Qué información se necesita de los usuarios
  • ¿Cómo se espera que el producto funcione?

… Los profesionales de UX generan documentación de todo tipo:

  • Objetivos y metas del proyecto.
  • Marco de especificaciones funcionales.
  • Diagramas de Gantt para establecer los plazos de entrega.
  • Análisis DAFO (Debilidades, Amenazas, Fortalezas y Oportunidades) para hacer estudios de la competencia, más conocidos como benchmarking.
  • Encuestas online y entrevistas personales.
  • Focus Group: método para recabar información de los usuarios en grupo. 
  • Método Personas: permite a los profesionales de UX mapear a usuarios reales de un producto. Establecer cuáles son sus necesidades, actitudes y comportamientos y a partir de ahí trabajar en mejorar un producto o usarlo como punto de partida para empezar el proceso de diseño.
  • Mapas de empatía: sirven, junto al método Personas, para crear un usuario real con el que ser capaces de empatizar. Permite al profesional crear un producto pensado para él. Qué ve, qué oye, qué siente, qué dice y qué hace son cinco de las preguntas esenciales para crear, con éxito, un mapa de empatía.
  • Mapas de experiencia de cliente: la idea es recrear el camino que un usuario sigue en la experiencia que tiene con un producto o un servicio para detectar cuáles son los puntos de dolor (para eliminarlos) o los momentos de satisfacción (para conservarlos o bien potenciarlos y aumentar la retención).
  • Scope Canvas: permite definir los elementos esenciales de un proyecto a través de las necesidades, las motivaciones y los propósitos de sus usuarios, y los propósitos, el impacto y los objetivos del negocio. Este análisis nos llevará a una redacción de acciones y unas métricas para medir el éxito.

En este gráfico de la empresa Continuum se ve el orden del proceso: 

  • Diagramas de afinidad: permiten generar subconjuntos de un grupo aleatorio de ideas. Es una forma útil de organizar un grupo desordenado.
  • Inventarios de contenido: todo el contenido que es necesario para un proyecto digital, tanto el ya existente como el de nueva incorporación. 
  • Árboles de contenido: todo el volumen del contenido de un proyecto digital se ordena de forma jerárquica a través de estos árboles de contenido.
  •  Gráficos de flujo: generan flujos de transición real de los usuarios a través de funcionalidades concretas de un producto, por ejemplo, del carrito de la compra de un comercio electrónico. Se detectan problemas de usabilidad.
  • Prototipado: existen prototipos de bajo nivel donde el diseñador UX plasma las funcionalidades básicas del proyecto, conceptualizadas en la fase de investigación y estructura, y de alto nivel aportando más precisión visual.  
  • Wireframes: esquemas sencillos de una interfaz de usuario donde se colocan los elementos clave de las funcionalidades para el usuario. Es lo que permite vincular las funcionalidades (back + front) con el aspecto visual (front).    
  • Storyboards: facilitan visualizar con dibujos el proceso de interacción.  
  • Y el cierre: la propuesta de valor. El conjunto de medidas y recomendaciones que los profesionales de UX hacen a un cliente para mejorar su producto. Sobre la mayoría de todos estos entregables existe una gran cantidad de documentación explicativa, con objetivos y herramientas para hacerla.

Lean UX: proceso iterativo

El proceso Lean UX se basa en el proceso Build-Measure-Learn (Construir-Medir-Aprender). La documentación, fruto del proceso de investigación, estructura, organización y diseño es, en cierta forma, un hilo conductor que se debe integrar en ese proceso iterativo y no ser un objetivo en sí mismo, sino un camino. Hay un gráfico compartido cientos de veces que lo resume a la perfección:

La idea de Lean UX es generar siempre conocimiento validado sobre un producto ya en el mercado o aún por lanzar. Sólo es posible extraer conclusiones valiosas de los usuarios que ya usan o utilizarán ese producto. Esas pruebas de usuario acaban con datos de métricas, normalmente a partir de unos KPIs bien definidos, que facilitan evaluar el éxito de esas conclusiones. Si son oportunas, el proceso finaliza con un producto mínimo viable (MVP) para el mercado. Si no lo son, el equipo debe pivotar para volver a iniciar el proceso y alcanzar conclusiones válidas.

Ese proceso iterativo, circular, global, alejado de las metodologías en cascada, permite mejorar el resultado y llegar a la meta en tiempos mucho más cortos.  

¿Te interesan las APIs financieras? Descubre todas las que te ofrece BBVA

 

Creado el 05 Jul. 2018
0Comentarios

Cada día nuevas compañías y nuevos desarrolladores deciden sumarse a la idea de trabajar con soluciones abiertas. De hecho, empresas como Apple, LVMH, Carrefour, Gas Natural Fenosa, Telefónica o BBVA están ya empleando en su desarrollo el uso de estas tecnologías ‘libres’.

El motivo es sencillo, las ventajas del open source son evidentes: reducción de gastos asociados a las licencias, pérdida de la dependencia de vendedores de software, ventajas pedagógicas gracias a la colaboración, más seguridad y más calidad. Por todo ello, dedicamos un espacio a conocer más sobre el tema

1.- Para principiantes

Opensource.com agrupa los artículos que publica en su site en forma de libros electrónicos. Entre ellos, uno que puede resultar especialmente interesante es el de A guide for beginners in open source (Una guía para principiantes en open source), también titulado How to get started with open source (o Cómo empezar con el código abierto).

Este ebook es una buena herramienta de primer acercamiento tanto si eres desarrollador como si representas a una organización en busca de alternativas gratuitas y abiertas para hacer crecer tu negocio. Recoge desde artículos sobre cómo los expertos descubrieron el código abierto hasta cómo han florecido con el tiempo sus defensores. También incluye guías enfocadas a encontrar el software adecuado.

2.- Para saber cómo usarlo

La Fundación Linux (Linux Foundation) ha publicado recientemente el ebook Open source Software Basics. Se trata de una guía, disponible de forma gratuita, diseñada para que los ejecutivos entiendan cómo el código abierto puede ayudar a sus negocios. Surge precisamente porque la Fundación Linux se dio cuenta de la necesidad de educar a los ejecutivos de negocios sobre el ecosistema de código abierto, el software, sus beneficios y licencias. De ahí que haya apostado por esta edición.

"Los beneficios de adoptar el open source y contribuir al mismo son inmensos, pero se requiere más educación para aprovechar plenamente sus ventajas. Iniciativas como la publicación Open Source Software Basics son parte del esfuerzo de la Fundación Linux por aumentar la accesibilidad a esa educación ", afirma Jim Zemlin, director ejecutivo de Linux Foundation, en un comunicado.

La publicación gratuita incluye temas como: qué es software de código abierto, por qué las empresas utilizan tecnologías FLOSS, por qué son más rápidas, menos costosas y más flexibles. Este ebook se dirige principalmente a los ejecutivos de negocios, equipo legal, desarrolladores de software, gerentes de productos y arquitectos de software.

3.-  Para ver su evolución y analizar sus ventajas

BBVAOpen4u también cuenta con un ebook sobre Open Source. Es un libro electrónico con mucha información, pero a la vez bastante analítico. Además de recoger qué es el software libre, su historia, sus modelos, y la evolución del software privativo al libre, plantea las ideas erróneas más habituales sobre el mismo, así como una serie de verdades y mentiras en torno a él.

Incluye herramientas, sus principales hitos, testimonios, una infografía… También su papel como motor de innovación y su enriquecedora unión al Big Data. También puedes descargártelo de forma gratuita. Es, sin duda, interesante para quien busque aproximarse a la filosofía open por primera vez o para quien quiera ampliar sus conocimientos.

4.- Para profundizar en su cumplimiento normativo

La Fundación Linux publicó también a finales de 2016 otro ebook sobre open source muy interesante. Llamado Open Source Compliance in the Enterprise (algo así como ‘Cumplimiento del código abierto en la empresa’, sirve como una guía práctica para las organizaciones sobre la mejor manera de usar código abierto y participar en las comunidades especializadas en él, cumpliendo con su espíritu y licencia.

Escrito por Ibrahim Haddad, jefe del grupo de código abierto en Samsung Research America, pretende mejorar la comprensión de los problemas relacionados con la concesión de licencias, el desarrollo y la reutilización de software de código abierto.

A través de los diferentes capítulos del libro, guía a los lectores en el proceso del cumplimiento normativo con código abierto, incluyendo una introducción al tema, una descripción de cómo establecer un programa de administración de código abierto en su organización y una visión general de los principales roles.

5.- Para conocer las últimas novedades y tendencias

El ebook OpenExpo Tendencias Open Source y Software Libre 2017 es un estudio realizado con la colaboración de 40 profesionales del sector. Pretende poner de manifiesto qué aspectos potenciarán la utilización de las tecnologías FLOSS (Free, Libre, Open Source) durante este 2017.

Este ebook recoge además la opinión de expertos como Alberto Morgante, Cloud Computing and Innovation Engineer en BBVA; Javier Pardo, Responsable de Innovación IT en Gas Natural Fenosa o Francisco Javier Ramón, Head of Network Virtualisation Initiative en CTO Unit Telefónica, entre otros.

Consulta el ebook de BBVAOpen4u sobre open source

¿Te interesan las APIs financieras? Descubre todas las que te ofrece BBVA

 

Creado el 19 Jun. 2018
0Comentarios

Gracias a la democratización de internet aprender a programar es accesible para cualquiera que esté interesado en ello. Hoy es posible comenzar a formarse a través de herramientas que te enseñan a programar de una forma mucho más amena e interactiva que cualquier libro tradicional.

La programación está más de moda que nunca y, de hecho, el perfil de programador es uno de más demandados del mercado laboral. Aprender cuanto antes a programar mejorará nuestro currículum y nos abrirá la puerta a muchas posibilidades. Por eso, seleccionamos algunas de las mejores plataformas para aprender a programar:

1. Aprendo a programar: una plataforma española destinada a que los niños aprendan mientras se divierten. El aprendizaje se realiza paso a paso a través de vídeos dinámicos en castellano. Es un programa visual para que los niños creen sus propias historias interactivas a través de la unión de bloques.

2. Codecademy: una plataforma interactiva online que ofrece cursos gratuitos y guiados de codificación en diferentes lenguajes de programación, como Python, PHP, JavaScript o Ruby. También ofrece formación sobre lenguajes de marcado, que incluye HTML y CSS, y sobre el uso de APIs.

3. CodeDammit: apuesta por un aprendizaje basado en ejemplos de código reales. Está estructurado en torno a tres categorías generales: web, móvil y snippets, y una vez que se selecciona lo que más nos interesa, podremos elegir entre muchos tipos de lenguaje, así como su dificultad.

4. Codeplace: una plataforma que ofrece varios tipos de cursos con funcionalidades que no incorporan la mayoría de las webs destinadas a este fin. La utilización de colores para mostrar visualmente el progreso a tiempo real, o el reflejo de cómo los cambios de código afectan al front-end, son algunas de las más interesantes.

5. CodeSchool: organiza sus cursos en torno a diferentes categorías, como Ruby, Python, bases de datos e iOS. El aprendizaje se realiza a través de vídeos y de tutores que van asesorando a los usuarios a lo largo de su aprendizaje. 

6. Mimo: una app para aprender a programar a través del móvil. A través de recursos interactivos y lecciones de un minuto los usuarios pueden aumentar su conocimiento rápidamente. Mimo ofrece varios tipos de cursos, como Python, Ruby o SQL, y también algunos de Java orientados a la programación para Android.

7. Programmr: una de las webs gratuitas más completas para aprender a programar. Contiene un catálogo con numerosos ejemplos y ejercicios para poner en práctica lo que se ha ido aprendiendo.

A través de esta serie de recursos nadie no se convierte en desarrollador de la noche a la mañana, pero sí que pueden ayudar a entender mejor cómo funcionan cada uno de los lenguajes de programación.

Fuentes: What’sNew y ComputerHoy

¿Te interesan las APIs financieras? Visita todas las que te ofrece BBVA

 

 

 

 

Creado el 13 Jun. 2018
0Comentarios

El abanico de APIs disponibles para desarrolladores es cada vez más amplio. Acudir a un servicio externo que facilite las herramientas que, de otra manera, tendrían que construir ellos mismos desde cero no solo les permite ahorrar tiempo, sino también recursos.

Por eso, para que quienes recurren a tu API se sientan satisfechos con el resultado no hace falta ofrecer todas las opciones posibles, sino asegurarte de que tu servicio funciona correctamente y no encuentran baches en el camino. La única manera de cumplir con esta premisa es monitorizar su rendimiento y considerar posibles cambios para que sea compatible con el ‘software’ de terceros. Sin duda, la labor que se hace más difícil a medida que aumenta la complejidad y el número de dependencias (componentes que pueden usar las aplicaciones) de la API.

Así, las claves para comprobar el éxito de tu API están en vigilar tanto el tráfico (las llamadas que recibe) como los desarrolladores y aplicaciones que la utilizan, la calidad del servicio que ofrece (aquí se incluye la tasa de errores, los fallos de código y la eficiencia de las respuestas) y los ingresos que proporciona su utilización por parte de terceros.
 

Recursos: APImetrics, Visual Studio Application Insights y APIscience

Afortunadamente, existen diferentes herramientas que permiten mantener vigilada tu API y detectar pronto los posibles fallos para solventarlos rápidamente. Una de ellas es APImetrics, una especie de cuadro de mandos desde el que analizar diferentes parámetros de la interfaz de programación.

Esta solución ‘software’ permite medir el tiempo que tarda la API en responder a las peticiones de las apps, la efectividad de su contestación y la capacidad de reacción que presenta para cada dependencia o tipo de llamada. Así, ofrece una visión holística del rendimiento del servicio.

Otra herramienta de monitorización es Visual Studio Application Insights, disponible en el servicio Azure de Microsoft. En este caso, los análisis incluyen la comprobación de bases de datos ASP.net, llamadas HTTP y bases de datos Java y ASP.net, además de la evaluación de las interacciones entre la API y las interfaces externas en tiempo real.

Un punto a recalcar del programa es que permite analizar la respuesta producida por un tipo de llamada en particular, de forma que es posible evaluar que las versiones de la interfaz propia y la de terceros son compatibles. Por otro lado, los fallos y las excepciones aparecen detallados en los informes que brinda la herramienta. 

Mirar al pasado para entender el presente

A diferencia de las anteriores, el tipo de análisis que proporciona APIscience es escalonado; primero evalúa la integración de las APIs externas con la propia, para luego valorar los resultados de sus interacciones. Sirve para monitorizar, entre otros estilos de arquitectura ‘software’, las API REST, JSON y OAuth.

Una de las principales ventajas de esta herramienta es que permite contrastar las versiones previas de las interfaces de programación con la presente, una comparación que sirve para detectar errores, respuestas lentas y problemas de integración.

La herramienta se basa en un sistema que monitoriza las variaciones en el funcionamiento de la API y su rendimiento en función del tiempo, representando después los datos en útiles gráficos dinámicos. Estos informes sirven a los desarrolladores para analizar el código de la interfaz de programación en busca de posibles errores.

Por su parte, AlertSite ofrece un tres por uno para vigilar tanto el rendimiento de la API como el de páginas webs y aplicaciones. En el caso de la primera, la solución se llama SmartBear, un completo gestor del estado y salud de interfaces de programación. Se basa en una red de nodos para monitorizar la velocidad de las interacciones y las respuestas a nivel global (incluye un mapa en los informes de resultados), relacionando después estos flujos con el grado de rendimiento exhibido en cada caso.

Otra de las útiles características de la solución de AlertSite es que ofrece distintos tipos de análisis adaptados a APIs de terceros, públicas y de socios, ya que cada una de ellas presenta una problemática diferente. SmartBear acepta, además, secuencias de comandos, de forma que las herramientas internas de evaluación, como Ready! API y SoapUI, están integradas en el servicio. Los desarrolladores pueden ejecutar así esos otros servicios dentro del mismo producto.

Lo ideal, una combinación de herramientas

Aunque las herramientas y soluciones son variadas, la elección de una u otra va a depender de las necesidades de cada caso. Si únicamente se aplican evaluaciones globales, sin mirar demasiado al detalle las funcionalidades de la API, esta puede parecer perfectamente funcional respecto a las aplicaciones de terceros pese a ser una versión desactualizada u obsoleta.

Por otro lado, comprobar únicamente los elementos básicos de la API, sin atender al cuadro general, también es una aproximación parcial. Lo ideal es combinar ambas estrategias para lograr una monitorización completa.

¿Te interesan las APIs financieras? Descubre todas las que te ofrece BBVA

 

Creado el 12 Jun. 2018
0Comentarios

Gracias a aplicaciones empresariales personalizadas construidas sin código, las empresas están aumentando sus beneficios. Podemos llamarlo ‘desarrollo ciudadano’. Con él los empleados tienen mejor acceso a los datos, los flujos de trabajo son más automáticos y el resultado es una toma de decisiones más rápida para toda la organización.

¿Y a qué llamamos exactamente desarrollo ciudadano? Pues bien, imagina que puedes darle a los trabajadores de tu empresa ​​la posibilidad de crear aplicaciones que satisfagan sus necesidades. Así no tendrías que molestar a los desarrolladores de la compañía, que están trabajando en desarrollos mucho más importantes, y con ello consigues que la persona más cercana al problema pueda resolverlo.

Quién es el desarrollador

Por supuesto, a partir de esta dinámica surgen muchas preguntas como, ¿cuál es la ventaja estratégica? o ¿quién es ahora un desarrollador? De hecho, una de las primeras barreras a la adopción de soluciones de bajo código o sin código fue el temor de los departamentos de informática a que el control fuera entregado a personas no técnicas. Los desarrolladores profesionales temían incluso que estas herramientas les quitaran el trabajo.

Sin embargo, lo cierto es que a los desarrolladores no les gusta tener que agregar un campo o volver a ejecutar un informe con filtrado diferente. Son tareas sencillas y con ellas muchas veces desaprovechan su tiempo, mientras que no hay realmente personas capaces de llevar a cabo desarrollos más complejos. Gracias a la implementación de estas herramientas sin código, por ejemplo, pueden aprovechar sus habilidades de mejor manera. Por supuesto, requiere colaboración y creatividad por ambas partes.

En la búsqueda de mejores resultados

Detrás del desarrollo ciudadano hay un cambio generacional. Cada vez hay más millennials que están llegando a puestos directivos, y a su vez los propios millennials son el target en el que han puesto el ojo muchos negocios. Ellos quieren algo que funcione de forma rápida y fácil. Si un negocio no les da lo que buscan, buscarán algo que satisfaga sus necesidades. Justo esa idea es la que precisamente conduce al desarrollo ciudadano, ya que si los millennials no lo encuentran, averiguarán cómo construirlo.

La búsqueda de una mayor velocidad y agilidad en el desarrollo de aplicaciones es parte de la estrategia de algunas organizaciones que buscan crecer y reinventarse al mismo tiempo.

Los beneficios del desarrollo ciudadano son innegables y por eso es interesante analizar

cómo está evolucionando esta tendencia, algo que recoge el informe State of Citizen Development Report 2016 realizado por Quickbase.

Según este informe, las plataformas de desarrollo ciudadano son capaces de desarrollar 26 aplicaciones personalizadas diferentes para una variedad de casos de uso superior a las tradicionales, incluyendo gestión de activos, proyectos, inventario, contactos, personal, servicios, contratos y otros tantos.

El desarrollo ciudadano está experimentando un rápido crecimiento. Muchas organizaciones comienzan con uno o dos individuos que construyen aplicaciones con desarrollo sin código. A medida que estos desarrolladores ciudadanos comienzan a usar y compartir sus aplicaciones personalizadas, la idea que se extiende es cómo mejorar el proceso de desarrollo de aplicaciones sin necesidad de contar con desarrolladores profesionales adicionales.

Ventajas de usar el desarrollo ciudadano

Pero, ¿exactamente qué le aporta a las empresas? ¿Para qué sirve?

  • Ganar en velocidad: el trabajador responsable puede responder a los comentarios de los usuarios más rápidamente y la comunidad empresarial puede ahora aprovechar las iteraciones de mejor forma.
  • Ahorrar costes: los desarrolladores ciudadanos a menudo aprovechan casos de uso adicionales que se traducen en ahorros de licencias de software de herramientas o soluciones puntuales, al ser reemplazadas por una sola plataforma.
  • Agilidad y rapidez: las organizaciones consideran que el mayor beneficio del desarrollo ciudadano sin código es la capacidad de mantener y actualizar las aplicaciones más rápido.
  • Mejores resultados: en muchas empresas, la construcción de aplicaciones no se planteaba como una parte formal del trabajo diario. Sin embargo, con el tiempo, la construcción y el mantenimiento de aplicaciones se ha vuelto más central, ya que genera mejoras incrementales, tanto en innovación como resultados. De hecho, el 76% de los constructores de aplicaciones consideran que desarrollar aplicaciones ya es parte de su trabajo diario, frente al 68% de 2015.

 

¿Te interesan las APIs financieras? Descubre todas las que te ofrece BBVA

Creado el 25 Abr. 2018
0Comentarios

Los botones son uno de los elementos más comunes en cualquier aplicación nativa. Son la forma más habitual en la que interactuamos con la interfaz de usuario, junto a campos de texto (ya sean formularios o buscadores). Y aunque parezcan elementos sencillos de diseñar, lo cierto es que no lo son. Esa es la razón por la que en la actualidad existen numerosas librerías con las que diseñadores y desarrolladores de front-end salvan el escollo de diseñarlos desde cero. Este es un listado de algunos consejos prácticos para no cometer errores en este elemento tan sensible:

1. El usuario debe saber que es un botón

Puede parecer un detalle absurdo, pero no lo es. Todos los elementos en la pantalla deben transmitir, sin ninguna duda, lo que son y el objetivo de que estén en la interfaz de usuario y las acciones que se pueden desencadenar si se interactúa con ellos. Un botón debe parecer un botón y quedar claro qué acciones concretas se conseguirán si uno decide interactuar con él. Esto se resume en el término anglosajón clickability: los botones tienen que ser elementos que el usuario interprete como zonas de la interfaz donde puede hacer clic para algo concreto. Esta meta se alcanza usando algunos patrones de diseño que ya forman parte del ADN de cualquier diseñador y, por extensión, de todos los usuarios globales:

  • La forma de los botones: desde hace décadas la mayoría de botones han tenido forma rectangular con los bordes redondeados. Eso es lo que ha permitido que ese tipo de forma se haya instalado en la mente de los usuarios como elementos que son botones y que se pueden cliquear para hacer algo. Hoy en día, la forma habitual de los botones se sigue manteniendo, pero nuevas tendencias se han ido incorporando, sobre todo en aplicaciones nativas para dispositivos móviles, otro tipo de formas como la circular o donde el botón viene definido sólo por el texto que avanza la acción que esconde detrás. En el diseño Material Design, impulsado por Google, existen tres tipos básicos de botones de interacción: Raised Buttom (el rectangular con esquinas redondeadas), Floating Action Button (circular) y Flat Button (sólo textual). La combinación de los distintos tipos de botones debe guardar una coherencia en los entornos y tipos de acciones que desencadenan para ser consistente. 

  • La colocación de los botones: el espacio que ocupan los botones dentro de la interfaz también debe guardar una relación coherente y de consistencia en todo el producto y seguir la tendencia general para garantizar que el usuario sabe perfectamente que está ante un botón de interacción y qué tipo de acciones se pueden desencadenar al hacer clic: registro, desplegar un menú… También es importante cómo esa colocación varía a partir de la interacción con el usuario para evitar que las animaciones escondan los elementos debajo de otros. Por ejemplo, esconder botones flotantes bajo barras animadas. 

2. Los botones forman parte de un contexto

Los botones son un elemento de interacción, pero también lo son de diseño. Y forman parte de un contexto, con una línea gráfica concreta. Por tanto, el estilo de esos elementos debe ir en sintonía con el entorno, con la capacidad de apuntalar esa línea gráfica y aportar su granito de arena a la consistencia del proyecto visual. Los botones son algo más que una forma: tienen un color, un tamaño, se pueden usar degradados, sombras, efectos, animaciones… Debe existir una coherencia. No es muy aconsejable el uso de sombras excesivas o borrosas o no usar botones con un leve borde en la caja si se encuentran en una interfaz con un fondo claro.  

Un elemento interesante es que el diseño de los botones debe aportar valor a las acciones que hay detrás de los elementos y, en última instancia, a los objetivos del proyecto. No hay nada peor que un botón a través del que se accede a un registro que no invite a la interacción, no avance su finalidad y no consiga altas de usuarios.

3. Objetivo número uno: affordance

Este consejo es la mezcla perfecta de los dos anteriores. Es un objetivo que puede parecer más holístico que real, pero que puede suponer un aumento de ventas, altas en una newsletter o mayor número de páginas vistas… Affordance es el término usado por los anglosajones para definir la capacidad que tienen los elementos de una interfaz y su coherencia y consistencia con el entorno para lograr que un usuario haga lo que se espera de él. Es un término muy utilizado en campos tan dispares, pero tan conectados en el desarrollo de producto, como la psicología cognitiva, el diseño industrial, la inteligencia artificial o el HCI (Interacción Humano Máquina).

Tal vez, aunque no tiene una traducción al castellano especialmente buena, el término en que mejor definiría affordance, tal vez, es invitación al uso. Es interesante para cumplir con el objetivo de invitar a la interacción, jugar con los botones, pero también con los copies de texto y los recursos de señalización para contextualizar el proceso de interacción entre el usuario y la propia interfaz. La máxima de que el usuario siempre debe conocer qué está pasando en la interfaz y hacia dónde le llevan sus interacciones, casi siempre, cumple con ese affordance

¿Te interesan las APIs financieras? Descubre todas las que te ofrece BBVA

Creado el 13 Abr. 2018
0Comentarios

¿Qué tiene que ver un ingeniero industrial japonés del siglo pasado con las tendencias en el desarrollo de software? Mucho más de lo que parece. Taiichi Ohno (1912-1990) está considerado uno de los principales teóricos de la organización industrial eficiente, pero además de la teoría conocía muy bien la práctica por su experiencia en las fábricas de Toyota.

Sus ideas sobre la producción industrial, plasmados en el libro ‘Toyota Production System: Beyond Large-Scale Production’ de 1988, fueron claves en el crecimiento de la empresa japonesa hasta convertirse en uno de los fabricantes de automóviles más solventes, respetados y rentables del mundo. 

Un sistema sencillo

En contra de lo que se pudiera pensar, el sistema Kanban ideado por Ohno es relativamente sencillo. Solo su nombre, en japonés, ya explica mucho. “Kan” significa visible o visual, y “ban”, tarjeta o tablón.  Ya sabemos que los tablones son básicos en las fábricas de Ohno, pero evidentemente el sistema es más complejo, y vamos a intentar explicarlo con un ejemplo.

Imaginemos una fábrica de bicicletas y que somos los encargados de las pastillas de freno. Contamos junto a nuestro puesto de trabajo con un stock de diez piezas que vamos ensamblando, y cuando nos queda la mitad, utilizamos un tablón para avisar de que vamos a necesitar otras diez pastillas de freno. Estas llegarán cuando nos quedemos sin las cinco que teníamos cuando colocamos el aviso.

La gestión del inventario es justo la adecuada: nunca hay piezas ocupando espacio necesario para otras tareas y nunca se frena la producción por falta de material. El sistema se ajusta al menor o mayor número de pedidos entrantes. La clave del éxito del método es su capacidad de adaptación a un volumen de trabajo cambiante.

Las columnas, parte fundamental del método

Si tomamos como referencia el conjunto de una fábrica, o también cualquier otro tipo de organización, como por ejemplo un equipo de desarrollo, el sistema Kanban se organiza con un gran tablón dividido en columnas, normalmente siete:

  • Objetivos: se marcan a largo plazo, con la idea de que todos los miembros del equipo los tengan en mente. Es una columna opcional, no siempre está presente.
  • Pendiente: esta columna engloba las tareas pendientes que se pueden afrontar de forma inmediata. En el lugar más alto de esa columna colocaremos la tarea pendiente que tiene la máxima prioridad, y en cuanto empecemos, la pasaremos a las siguientes columnas.
  • Preparación: también es opcional. Aquí incluimos aquellas tareas que necesitan cierta discusión interna antes de ser afrontadas. Cuando lo tengamos claro, pasamos a la siguiente columna.
  • Desarrollo: en este espacio situamos la tarea hasta que la terminemos. Si algo falla, regresa a la columna anterior.
  • Prueba: comprobamos que todo funciona bien. En función de ese examen, la tarea avanza en el tablón o retrocede.
  • Aplicación: la existencia de esta columna depende de las características de cada tarea. Hablamos, por ejemplo, de tareas como colocar una nueva versión de una aplicación en un servidor.
  • Hecho: cuando ya no tenemos que preocuparnos más de algo porque hemos terminado la tarea.

Este no es un sistema cerrado que no se deba modificar si queremos tener la certeza de que va a funcionar. Por ejemplo, los trabajos con prioridad pueden aparecer en lo alto de cualquier columna, y aunque no fuesen parte de la planificación, hay que ponerse manos a la obra inmediatamente. Incluso se puede crear una fila específica -horizontal, por encima de todas las columnas- de ‘urgente’. Eso sí, ahí solo puede estar una tarea, que irá recorriendo, en su propio carril especial superior, todas las columnas.

Otra forma de mejorar el procedimiento de gestión es establecer un número máximo de tareas para cada una de las columnas, en función del equipo de profesionales que tengamos. Por ejemplo, si hablamos de software y tenemos ocho programadores, sería absurdo tener diez tareas en ‘desarrollo’. Algunas tendrán que esperar en ‘pendiente’.

Kanban y el software, ¿mejor o peor que Scrum?

Desde que en 2004 Kanban fuese utilizado en un proyecto de IT de Microsoft, se ha ido creando toda una teoría sobre su uso en la producción informática. Es frecuente el debate que contrapone Kanban al método Scrum. ¿Cuáles son sus grandes diferencias?

Básicamente, Scrum pone más acento en la rapidez de los procesos y en el control por parte del gestor del equipo. Pero ese control exige tiempo en reuniones, discusiones y verificaciones internas. Con Kanban la labor del gestor es básicamente determinar las tareas que hay que hacer y cambiar su prioridad en función de los acontecimientos. Toda la cadena de trabajo está a la vista de todos, y si hay atascos queda claro dónde se producen: los mismos principios organizativos que hicieron mejorar la producción de coches siguen siendo muy útiles en la era de la economía digital.  

¿Quieres saber más sobre desarrollo de software? Te mostramos una selección de plataformas útiles

Si te interesan las APIs financieras, descubre todas las que te ofrece BBVA

 

 

Páginas