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

09 octubre 2018

The Only Intuitive Interface Is The Nipple - La única interfaz intuitiva es el pezón

A raíz de un comentario, sobre el desarrollo de un Sistema de Información realizado y que este, no era lo suficientemente intuitivo, me ha recordado a  Scott Francis , que describía que "La única interfaz intuitiva es el pezón".

Comparto que no existen conceptos de manejo intuitivos, sino que éstos, son siempre una mezcla de experiencias personales y la adquisición de nuevas competencias, que se van produciendo con el tiempo.

Bilbomática apuesta por la aplicación metodológica, desde la orientación del desarrollo de los interfaces de pantalla a la experiencia de usuario (UX, User eXperience), con el objetivo de conseguir que nuestros desarrollos sean fáciles de usar. Trabajando la experiencia de usuario para conseguir mejorar y optimizar la percepción de los mismos durante la interacción con los Sistema de Información.

No sólo cubrimos el diseño y la usabilidad, sino que también realizamos el acompañamiento en la estrategia UX, en los desarrollos, productos y servicios que desarrollamos.

Aplicamos metodologías y técnicas que nos permitan garantizar los resultados, como son:

- Las entrevistas a los "Stakeholders" de los proyectos.

- La investigación de los usuarios, centrada en la comprensión de sus comportamientos y necesidades a través de técnicas de observación y análisis.

- Realización de las pruebas de usabilidad, para comprobar el grado de dificultad de utilizar un diseño en un grupo de usuarios representativos.

Por lo tanto el sistema de información que desarrollemos sera fácil de usar para que el usuario del sistema pueda trabajar de manera rápida. Además debe ser eficiente, permitiendo al usuario mejorar su productividad cuando la utiliza. Es importante que su funcionamiento sea fácil de recordar. El  sistema  también  debe  favorecer  una  baja  tasa  de  error,  de  manera  que el usuario sea menos propenso a cometer errores y si los comete, pueda corregirlos fácilmente. Y  por  último, el  sistema  debe  ser agradable de utilizar generándole satisfacción al usuario. 

Todo este trabajo deberá gestionarse teniendo en cuenta las imposiciones de las partes interesadas (stakeholders) y el impacto sobre el nuevo sistema. 


Referencias:



Agradecer el conocimiento en este ámbito, a nuestro compañero Iñaki Fdez-Polanco (Postgrado Online en Usabilidad, Diseño de Interacción y Experiencia de Usuario Universitat Pompeu Fabra ‐ Barcelona School of Management )
Remontándonos al 2011, os dejo algunos vídeos cuando Bilbomática de la mano del centro tecnológico Vicomtech, comenzó a trabajar en el ámbito de la Interfaz Hombre-máquina (IHM), la ergonómica , el Diseño de Interfaz de usuario (UI) , la Usabilidad y hoy en día la Experiencia de Usuario (UX).






16 mayo 2017

De los Microservicios a Docker


Las nuevas tendencias en el ámbito del software, tratan de dar soluciones, que sean adaptables y que permitan la alta disponibilidad. En respuesta a estos retos se encuentra la arquitectura de microservicios. Un microservicio se implementa descomponiendo el sistema de información en partes con lógicas independientes.

 Actualmente los desarrollos de las aplicaciones y los servicios que incluyen,  se despliegan como una solución unificada y con la lógica de negocio muy interrelacionada con las capas de datos "Un sistema monolítico corriendo en un solo proceso", frente a los microservicios, que se implementa en un único proceso sencillo y se despliegan como soluciones de negocio independientes, aunque pueden estar relacionadas entre si, para generar una composición de microservicios avanzados.

Dada la dificultad en establecer como se modelizan microservicios "Procesos únicos y sencillos", hay diferentes características que nos pueden ayudar:

- Un sistema basado en Microservicios, es aquel que distribuye toda su organización de forma vertical, donde múltiples funcionalidades corresponden con múltiples servicios.

- A nivel de despliegue, se puede hacer de un solo servicio, sin hacer el despliegue de los demás.

- Si se produce un error crítico los demás microservicios seguirán funcionando, o se verán afectados de forma parcial.

- A nivel de escalabilidad y rendimiento, como son independientes, es posible agrupar y distribuir en varios servidores, ganando en la eficiencia, gracias a que cada servicio es independiente de los demás, así mismo se pueden aprovechar mejor los recursos en función de las características intrínsecas de cada microservicio o conjunto de ellos.

A la hora de utilizar este planteamiento, conviene establecer una clasificación básica en Servicios de negocio, Servicios Compuestos y API's, que podemos cruzar horizontalmente en base al dominio funcional de los mismos. Lo mas importante, es tener una arquitectura establecida, antes de ponerse a crear y desplegar microservicios, que se lleguen a convertir en una autentica amalgama de llamadas y relaciones ingobernables.

Ademas hemos de alinear las herramientas de despliegue con la entrega continua (ver DevOps) , para que nos permita desplegar los microservicios garantizando el servicio que ofrecemos a nuestros clientes o usuarios.

¿ Pero que ecosistema software da soporte a todas las necesidades de los microservicios ?, algunos de los posibles serian:

    - Microservicios: Spring Boot

    - Configuración del sistema distribuido y Seguridad: Spring Cloud Config

    - Gestión de logs: GrayLogs

    Netflix OSS  para Descubrimiento, Balanceo , Tolerancia a fallos y el Enrutamiento:
- y las soluciones de



y por ultimo os dejamos un articulo muy interesante de las implicaciones de las maquinas virtuales, cuando trabajamos con aplicaciones desplegadas sobre Servidores de Aplicaciones o cuando utilizamos contenedores Docker.




---------------------------------------------------------------------

Fuentes:

LuisMi Gracia "Un poco de Java Microservicios"
LuisMi Gracia "Un poco de Java Microservicios 2"
Microservicios con docker  
The decline of Java application servers when using docker containers
Daniel Sanchez, En mi local funciona

19 febrero 2013

Desarrollando con Ruby on Rails

Hoy Jon Arrien de Bilbomatica  nos responde a una breve entrevista, que nos permita acércanos a los principales conceptos del desarrollo en  Ruby on Rails.

¿ En que ecosistema de Midelware estáis desarrollando ? 

Estamos desarrollando una plataforma que permita catalogar todo tipo de recursos de biodiversidad, incluido un sistema de gestión documental con motor de indexación. Lo estamos realizando en Ruby On Rails, PostgreSQL y ElasticSearch, pero también hacemos uso de pre-procesadores (HAML, SASS), BDD (Behaviour Driven Development) y mucho CoffeeScript.


¿ Que aspectos han tenido mas peso a la hora de seleccionar Ruby on Rails como FrameWork.?

Tras haber desarrollado varias aplicaciones para iOS, me di cuenta que necesitaba una forma de sincronizar datos entre todos esos dispositivos y que hiciera uso de las tecnologías que permitan un desarrollo ágil. Los frameworks que mas se adaptaban a mis necesidades eran Groovy (Java), Django (Python) y Rails (Ruby). Tras varias de pruebas de concepto, finalmente tanto Ruby como Rails me engancharon por que están diseñados para la productividad y la diversión del desarrollador.

¿ Como considerarais que mejoran los tiempos de desarrollos y la calidad del software desarrollado en esta tecnología ?

Algunos frameworks pueden tener ventajas sobre otros, pero al final son todos parecidos. Creo que los tiempos de desarrollo y lo calidad del software viene ligado al equipo de desarrolladores, y no al framework o lenguaje que se use. 

Un elemento muy importante a la hora de los Desarrollos, es la curva de aprendizaje de los técnicos involucrados, ¿ como la describirías?

La curva de aprendizaje es bastante alta, en Ruby hay conceptos como los bloques, metaprograming o asociaciones poliformicas a los que los desarralladores no están acostumbrados. Ademas, cuando se desarrollan este tipo de plataformas entran en juego muchas mas cosas, y no solo el lenguaje que se usa en el backend. 

¿ Algún aspecto que deseéis reseñar o destacado ?

Me gustaría destacar, la sección de búsqueda que hemos desarrollado, permitiendo búsquedas NRT (Near Real Time) tanto en los datos de los objetos, como en la propia documentación. Puedes tener muchísimos documentos (PDF, DOC, XLS, etc) y buscar prácticamente al instante. Ademas, esta infraestructura, esta preparada para alojarse en diferentes nodos, y tener tantas replicas como se demanden, permitiendo balancear la información indexada entre nodos.