Patrones arquitectónicos con Gateways y dónde aplicarlos

Antes de comenzar definamos que es un patrón arquitectónico y en qué se diferencian con un patrón de diseño.  Ambos son soluciones probadas y efectivas para problemas recurrentes en el diseño y desarrollo de software,  pero tienen diferentes alcances y enfoques.Los patrones arquitectónicos son estrategias de alto nivel para diseñar la estructura general de un … Leer más

Facade & Delegate en nuestras arquitecturas de software

Comencemos por el patrón Facade. Imagina que tienes un problema el cual para solucionarlo requiere de diferentes conocimientos en distintos temas. Veamos el siguiente ejemplo: Tienes dificultades con la instalación eléctrica de tu hogar y hay interruptores que no funcionan correctamente junto con luces que parpadean, es tu responsabilidad darle solución a esas dificultades, pero … Leer más

Inyección de dependencias, Inversión de dependencias e inversión de control.

Durante muchos años se han confundido los términos de inyección de dependencias, inversión de dependencias e inversión de control, llegando a existir publicaciones donde las describen como lo mismo, sinónimos o incluso afirmando que una es mejor que otra. Este artículo busca responder las preguntas de ¿Qué son? ¿Son lo mismo? ¿Cuál debe aplicarse en mi código?.

El camino del junior en la ingeniería del software

En este artículo no pretendo definir que es un junior en ingeniería, ni los requisitos que se deben cumplir para terminar el ciclo de junior en la carrera como ingeniero de software. Sin más preámbulos empecemos. Descubriendo lo poco que sabemos y lo mucho que falta por aprender Cuando se comienza en el mundo del … Leer más

Encontrando errores en tu codigo

Hacer software no es tarea fácil, dominar y ejecutar este arte es tarea ardua y digo arte porque al final termina siendo el ejemplo más próximo de lo que hacemos los ingenieros de software. Arte en el momento que convertimos sentencias if/else/while en complejos sistemas informáticos. Para llegar a dominar este arte primero es necesario … Leer más

Entendiendo el valor de Refinar y técnicas para ejecutarlo

Veamos primero lo que nos dice la guía oficial de scrum “El refinamiento del Product Backlog es el acto de dividir y definir aún más los elementos del Product Backlog en elementos más pequeños y precisos. Esta es una actividad continua para agregar detalles, como una descripción, orden y tamaño. Los atributos suelen variar según … Leer más

Estimaciones ágiles, ¿Que son y cómo se comen?

Se que existen miles de artículos e incluso videos de esto en internet pero quise compartir mi visión del cómo se deben hacer las estimaciones en proyectos tratando de ser lo más dummy posible, así que aquí vamos: Las estimaciones ágiles nacen para dar una visión del esfuerzo y  más o menos tiempo que puede … Leer más

¿Son todos los cargos en la ingeniería de software realmente necesarios?

Tocaré un tema que puede llegar a herir susceptibilidades en algunas personas, antes de juzgar por favor leer todo. Alguna vez se han preguntado ¿es realmente necesario una persona de QA en nuestro equipo? ¿Necesitamos un Scrum master para que nos de ‘asistencia’? ¿Nos da valor tener un Agile Coach en nuestra empresa? Si la respuesta es … Leer más

Clean Architecture en Arquitectura N-capas parte 2

Continuando con nuestro propósito de aplicar conceptos de clean architecture en una arquitectura de N-capas trataremos inicialmente los siguientes temas: ¿Es la base de datos nuestro modelo de negocio? Interfaces como mecanismo de verdadera abstracción. ¿Cómo sobrevivir a las “CualquierCosaService”? ¿Debemos usar Excepciones? Evitando los side-effects Nota: Para la aplicación práctica de la teoría usare como lenguaje … Leer más