Las ventajas que te ofrece Microsoft Azure y el mundo.NET

Cómo testear nuestras APIs

Como testear nuestras APIsCuando trabajas en un proyecto de gobierno de APIs, da igual que sea con Azure API Management o Google Apigee, es importante la definición de un proceso adecuado de ALM que incluya despliegue y testing. Toda la parte de despliegue dependerá, en cierta medida, del gateway con el que estemos trabajando. Sin embargo, para el proceso de testing podemos utilizar Postman y una serie de herramientas que os contamos en este post.
Leer más

Publicado en QA | Etiquetado , , | Deja un comentario

Mobile Center | Conectar con Google Play para distribuir Apps

visual-studio-ms-preview-thumbnail

Mobile Center, para los que no lo conozcáis, es un servicio de Microsoft, incluído dentro de Microsoft Azure que permite gestionar el ciclo de vida de nuestras Apps para iOS, Android y Windows desde un único lugar (probablemente en otro artículo hable largo y tendido sobre las características de Mobile Center, así que estad atentos).

Leer más

Publicado en Microsoft Azure, Mobile Center, Movilidad, Xamarin.Forms | Etiquetado , , | Deja un comentario

QA (Quality Assurance) y su mundo

QA y su mundo

¿Cuántas veces os habéis preguntado a qué nos dedicamos el equipo de QA? hacer fallar una app,  persecución y caza del bug, urdir una campaña inquisidora contra el trabajo de nuestros developers…¡nada de eso! Con este artículo queremos desmontar mitos, acercar y dar a conocer qué papel juega QA en el desarrollo de software.

En este post, os hablamos de las Pruebas funcionales y la Metodología que utilizamos para llevarlas a cabo.

Leer más

Publicado en QA | Deja un comentario

Asincronía en C#: Bloqueos, contextos y tareas.

Asincronía en Tasks. Bloqueos, contextos y tareas.

“¡Recórcholis! ¡Mi fantástico método HagoCosasChulasAsync bloquea mi aplicación!”.

Si has utilizado la Asincronía basada en Tasks (TAP) en aplicaciones algo complejas, esta frase te sonará. Posiblemente, después de entrar en pánico y ojear Stack Overflow hayas dado con la panacea a todos tus problemas: el método ConfigureAwait que nos expone la clase Task. Pasándole a este método “false” como parámetro y añadiéndolo a lo largo de todas las Tasks, todo vuelve a funcionar como esperabas.

Leer más

Publicado en Sin categoría | Deja un comentario

Protege tus reuniones de Skype Empresarial

Protege tus reuniones de Skype Empresarial

Cuando implementamos Skype Empresarial como solución de comunicaciones unificadas para nuestras reuniones, nos damos cuenta de que gracias a ser una herramienta tan intuitiva, todos los usuarios se adaptan rápidamente a ella. Sin embargo, existen ciertas buenas prácticas que muchos ignoran, incluso tras llevar muchos años utilizando Skype Empresarial.

Leer más

Publicado en seguridad | Etiquetado , , | Deja un comentario

Azure Resource Manager en VS (I)

Uno de los mayores cambios que se han producido últimamente en lo que respecta a Azure, es el cambio del modelo de gestión de los recursos, pasando del modelo clásico, al Model Resource Manager (ARM a partir de ahora). Dicho cambio ha sido gradual, pero su total implantación ha supuesto un gran cambio y mejora a la hora de gestionar nuestros recursos.

En este artículo veremos una introducción al mundo de Azure Resource Manager, hablando en forma general de en qué consiste, qué nos aporta, así como integraciones que nos permite, problemas…

Leer más

Publicado en ARM | Deja un comentario

Scrum Poker: evaluando el esfuerzo de tareas

Volviendo a la formación en ALM, he vuelto a releer el punto en el que se hablaba de la “evaluación de esfuerzo de tareas”, donde se explican ciertas cosas muy interesantes entorno a los Story Points, como la técnica del Planning Poker, la cual ya hemos comenzado a implementar en la planificación de algún proyecto.

En el siguiente artículo sobre los Story Points veremos cómo a pesar de no aparecer como una medida del Core sobre ninguna metodología ágil, ni ser imprescindible, podremos sacar gran partido trabajando con ellos.

Story Points

¿Qué son los Story Points?

Los Story Points son un sistema alternativo para la medida del esfuerzo que requerirá una historia de usuario en concreto. La cantidad/carga de trabajo, grado de conocimiento/experiencia entorno a la tarea y complejidad de la misma, se postulan como principales factores a tener en cuenta a loa hora de evaluar el esfuerzo que requerirá cada historia de usuario.

¿Qué debemos conocer sobre los Story Points?

  • Es una valoración propia y particular del equipo que vaya a abordar la tarea. Es decir, se trata de una valoración subjetiva que no será, necesariamente, la misma para dos equipos distintos, y por lo tanto no equiparable.
  • Cuando trabajamos con Story Points nos atenemos a una medida arbitraria, no supeditada al tiempo, meramente consiste en una estimación de la dificultad del trabajo.
  • El punto anterior no exime de que, de manera aproximada, preestablezcamos relación reglada entre número de jornadas y la dificultad supuesta.

¿Cuál es su objetivo?

“Obtener un consenso en la previsión de coste. Esta es la mejor manera de obtener una estimación.”

Anthony Borton ALM MVP.

El principal objetivo es obtener de la mejor manera posible, la estimación del coste entorno a cada tarea. Ésta técnica defiende que la forma más precisa y productiva de lograr esta estimación, es hacerlo bajo consenso del equipo, justamente lo que nos facilita trabajar con Story Points.

Planning Poker

¿Qué es el Planning Poker?

Existiendo distintas metodologías para el cálculo de los Story Points, se posiciona como más recurrente (y divertida) la de Planning Poker

El Planning Poker es una práctica ágil de estimación de software de naturaleza gamificada. Este método nace con el afán de que todo el equipo pueda participar y llegar a consenso en la estimación de una tarea, evitando alargar posibles discusiones, propias de un grupo de personas tiene que llegar a un acuerdo, y haciendo amena y divertida una actividad que a priori puede resultar aburrida.

El sistema utiliza un rango de valoración basado en la secuencia Fibonacci 0, 1, 1 , 2, 3, 5, 8, 13, 21, 34, 55, 89.

A partir de esta secuencia, se estipula una adaptación que presenta las siguientes opciones: 0, ½, 1, 2, 3, 5, 8, 13, 20, 40, 100, ?, ∞, (coffee).

0 Recurrimos al 0, cuando se trate de una tarea que podremos resolver gracias a una funcionalidad out of the box.

Aplicamos el infinito cuando se considera que el esfuerzo para realizar la tarea es superior a las opciones anteriores, en cuyo caso habría que descomponer la tarea en varias.

? El interrogante lo mostraremos cuando nuestra respuesta sea “No estoy seguro..”  Se recomienda que si en 30 segundos no puedes determinar qué esfuerzo requiere esa tarea, no deberías mostrar ninguna carta, puesto que careces de la experiencia/criterio para poder evaluar.

Café Entorno al café existen dos teorías posibles:

a) “Necesito un descanso”

b) El coste de la tarea resta el mismo tiempo que el de tomar un café.

¿Cómo podemos trabajar Planning Poker mediante TFS?

Para poder trabajar con Planning Poker en Visual Studio Team Services, haremos uso de la herramienta Estimate, extensión disponible en Visual Studio Team Services Extensions.

¿Cómo se desarrolla el Planning Poker?

La valoración mediante Planning Poker se realizará durante una reunión que convoque al equipo al completo, donde por cada historia de usuario, cada uno mostrará simultáneamente el valor que considere al resto de los compañeros. Originalmente se trabajaba con una baraja de cartas física, mientras que, en nuestro caso, ya transformados digitalmente 😉 hacemos uso de nuestra herramienta Estimate desde TFS.

En los siguientes puntos detallamos paso por paso como desarrollamos una estimación mediante Planning Poker:

  1.  Elmoderador(TL en nuestro caso) anuncia una historia de usuario a estimar, explicando en qué consistirá y resolviendo las posibles dudas que pueda surgir al equipo. Los miembros del equipo también pueden intervenir y realizar apuntes de cómo se realizar el trabajo.
  2.  ElTLrealiza un resumen descriptivo de lo que se ha explicado entorno a las tareas de la historia, tomando anotaciones cuando se requiera.
  3.  Cada miembro del equipo selecciona un valor con la estimación que considere más acertada para la tarea a realizar desde la opción Estimar sobre la historia de usuario (escogería una carta de su mazo en el caso de trabajar con baraja), sin comunicarlo al resto de compañeros. Este paso es esencial, ya que permite a cada persona elegir el valor que considera más adecuado, sin estar influenciada por el resto de compañeros.

  1. Una vez los miembros del equipo hayan elegido un valor, el TL podrá ver (levantar las cartas) y conocer las estimaciones emitidas por éstos. Recalquemos que estas valoraciones no serán visualizables entre los compañeros, y que el administrador podrá verlas una vez todos hayan valorado, haciendo click en Revelar; mostrando además el resultado de la valoración media.

Captura 1. Tras hacer click en Revelar vemos cómo se muestran todas las valoraciones, además del cálculo de la media obtenida

  1. En caso de existir estimaciones máximas y mínimas muy distanciadas, los miembros autores de estas valoraciones tan alejadas del resto explicarán el porqué de su valoración; cuando es más alta (comentan algún problema en el que nadie más ha pensado o el resto no haya tenido en suficiente consideración) o más baja (se da cuando conocen mejor la tarea, tienen experiencia al respecto, o disponen de recursos para resolverla). El resto del equipo también puede participar en el debate, para aclarar dudas o resolver algún punto de la discusión.

*   Sobre este punto hay controversia, existiendo teorías que recomiendan directamente, descartar las estimaciones más bajas y más altas, quedándose con la estimación media o más repetida. En nuestro caso no aplicamos esta práctica, partiendo de la premisa que explica que en Planning Poker no hay democracia, y que siempre se debe llegar a un consenso. Entendiendo así, que elegir la estimación de la mayoría sería un error.

  1. ElTL buscará un consenso, entre todos, sin necesidad de volver a jugar y determinará un valor para asignarle a la historia.

Captura 2. La media resultante será un valor referencial y editable por el TL

  1. Finalmente se registra la valoración designada, pudiendo continuar con la valoración del resto de historias.

Captura 3. El TL cerrará la sesión de valoración, registrando la valoración de esfuerzo consensuada

Captura 4. Por último, vemos como se presenta el esfuerzo designado desde el Backlog

Pros y contras

Como principal ventaja, aparte de lograr valores estimativos de esfuerzo que se ajustarán de manera más veraz al requerido finalmente, el hecho de trabajar haciendo uso de esta metodología, permite al equipo conocer los recursos que tiene a su alcance, y que quizás no conocía.

Siempre puede darse el caso en que un miembro del equipo justifique una previsión de esfuerzo más liviana que la del resto entorno a una tarea, por contar con el recurso/herramienta/conocimiento/experiencia para realizar esa tarea con menos esfuerzo…

Acerca de esto, debemos valorar la importancia de conocer los puntos fuertes de cada componente del grupo, ya que además de hacer más eficiente al equipo (permitiendo lograr una mejor estimación de las tareas), influirá positivamente a nivel individual, puesto que todo el equipo sabrá a quién recurrir para empaparse de esos nuevos recursos, y así sacar el mayor partido posible.

A la hora de hablar de desventajas, apuntaremos que en el caso de no ser exquisitos con la valoración que apliquemos, no respetando el rango de valoración o bien estimando algo con una puntuación media (por aquello de “no saber qué puntuar”), podemos caer en generar una estimación que no se ajuste a la dedicación real.

Publicado en Story Points | Deja un comentario

Desgranando IoT (IV): Alertas y SignalR

Continuando con la serie de artículos sobre la temática del Internet de las cosas (Internet of Things o IoT), hablaremos ahora de cómo aprovechar todo lo hablado anteriormente para añadirle la posibilidad de configurar y recibir alertas.

Con esto, cerraremos el círculo completamente (y por ahora también la serie de artículos), viendo todos los elementos y las posibilidades más comunes en una solución de IoT.

Leer más

Publicado en IoT | Deja un comentario

Cache Manager : Agiliza tus desarrollos en Azure

Cache Manager

A la hora de abordar un desarrollo Web, un aspecto fundamental es decidir dónde guardamos los datos que se están generando de la propia navegación, es decir, esos datos, que no tienen que estar en la base de datos, pero que son necesarios para que el usuario visualice la información por pantalla.

Leer más

Publicado en .NET, Microsoft Azure, Redis Cache | Deja un comentario

Y ahora Petya, un Ransomware más letal que WannaCry

 

Y ahora Petya

Hoy, 28 de junio, se ha convertido en tema del día. Cuando todavía no nos ha dado tiempo a olvidar el gran ciberataque de ransomware  de WannaCry,  nos encontramos con una amenaza todavía más letal llamada Petya o Petwarap!

Leer más

Publicado en seguridad | Etiquetado , , | Deja un comentario
ENCAMINA, piensa en colores