miércoles, 28 de junio de 2017

Recomendaciones para un mejor assessment de testing

El objetivo del assessment de testing es analizar la situación actual del área, identificando sus fortalezas y las posibilidades de aplicar mejoras. En esta instancia, se evalúan distintos procesos hasta llegar a definir el estado de madurez actual. 
Antes de profundizar en el tema, quiero destacar la importancia de buscar la mejor manera de hacer el relevamiento de información sin impactar en la ejecución de las actividades del día a día de los equipos de la organización.
Actualmente, hay herramientas como las encuestas online que representan una forma sencilla de relevar la información. A continuación, les menciono algunas:
Survio
Survey Monkey
Google Drive
Zoho Survey

En mi experiencia en assesstments, utilicé Survey Monkey. Muy completa para el seguimiento de la encuesta, correos, URL personalizada, múltiples opciones del generador de preguntas, páginas de agradecimiento, descarga de informes, datos, etc.



Así como la herramienta a utilizar va a disminuir los tiempos del proceso, también es importante la planificación de las distintas etapas para el relevamiento efectivo de información. De esta forma, podremos evaluar de manera organizada plasmando la situación actual y proponiendo la solución más acorde a la necesidad del cliente, las buenas prácticas y nuestra experiencia.

Las etapas del assessment son:

- Setup – Inicio
- Relevamiento previo
- Assessment AS - IS
- Modelo TO - BE
- Cierre

Para el análisis del área y sus procesos, nos basamos en la metodología de TPI (Test Process Improvement), que asiste en las mejoras de los procesos de pruebas dentro de la organización y permite establecer pasos de mejoras controlables y graduables definidas por niveles. Su creador es la empresa SOGETI.

Para asegurar la clasificación objetiva de los niveles, se deben definir puntos de verificación, llamados dimensiones, que representan los aspectos principales que forman esa práctica o área de IT.

Las dimensiones a evaluar son las siguientes:

1. Estrategias y políticas de pruebas.
2. Estimación y planificación. 
3. Diseño y ejecución de los casos de prueba
4. Pruebas no funcionales.
5. Gestión y preparación de datos de prueba.
6. Herramientas de pruebas y la automatización.
7. Gestión de procesos de prueba.
8. Métricas de gestión de procesos de prueba y reportes.
9. Gestión de defectos.
10. Gestión de la documentación.
11. Organización de las pruebas.
12. Entorno de prueba.
13. Compromiso de las otras áreas.
14. Profesionalismo.
15. Comunicación.
16. Metodología de prueba.
17. Grado de participación de prueba.

El enfoque de las preguntas para cada dimensión fue obtener respuestas cerradas, de selección simple, múltiples y, en algunos casos, que pudieran incluir comentarios.

Ejemplo de preguntas:





Al relevamiento de información se lo debe dividir en 2 fases:
Relevamiento por encuestas online
Relevamiento de aspectos a profundizar (entrevista personalizada en un tiempo reducido con el responsable del proceso que se requiere mayor información).

¿Qué beneficios podemos obtener de este método?
Reducción de tiempo de parte del cliente en suministrar la información
Recopilación de manera organizada
Visión clara del estado de la madurez del cliente 
Identificar los puntos fuertes del cliente 
Focalizar el esfuerzo en aplicar las mejoras a los procesos necesarios

Es importante profundizar en esta etapa ya que nos va a permitir identificar la situación actual de la organización y, de acuerdo a las necesidades, plantearemos las mejoras al área de testing y las posibles propuestas a otras áreas por la necesidad de desarrollo de un modelo de ciclo de vida de pruebas efectivo.
En el próximo artículo, trataremos la mejor forma de armar el informe de la situación actual (AS-IS) y como plantear las mejoras (TO – BE).

Links:
https://es.surveymonkey.com/
http://www.tmap.net/around-tmap

Autor:
Alvaro Guaramato
QA Technical Expert
ISTQB® Certified Tester, Foundation Level

miércoles, 21 de junio de 2017

Pruebas de Nivel 2

En el mundo de las pruebas de software existen muchas maneras de clasificar o agrupar los tipos de pruebas, ya que el ámbito o destino de las mismas puede variar. Una de las maneras de realizar dicha clasificación es por Niveles, entonces ¿Que son las pruebas por nivel?, ¿De qué se tratan?


Lo primero que debemos saber es que las Pruebas de Nivel son un grupo de actividades de pruebas que están organizadas y gestionadas conjuntamente. Un nivel de pruebas siempre está conectado a las distintas etapas del proceso de desarrollo.

Existen 3 niveles: 

Nivel 1 - Pruebas Unitarias (Un módulo único): Verifican el funcionamiento aislado de piezas de software que pueden ser probadas de forma separada.

Nivel 2 - Pruebas de Integración (Un Grupo de módulos): Verifican la interacción entre componentes del sistema de software.

Nivel 3 - Pruebas de Sistemas (Un sistema complejo): Verifican el comportamiento del sistema en su conjunto. 


Elaborado por: Lili Ayala


Ahondar en el nivel dos de pruebas es la finalidad de este artículo por lo que detallemos un poco más sobre el mismo.

Las pruebas de integración se basan típicamente en el diseño del sistema, la arquitectura, los flujos de trabajo, los casos de uso, los esquemas de la base de datos y los flujos de datos, si se realizaran pruebas basadas en los riesgos se utilizarían adicionalmente los riesgos de calidad para guiar las pruebas.

Dichas pruebas pueden incluir varios tipos de pruebas (Ej. Funcionalidad, utilización de recursos, rendimiento, etc.). Estas pueden incluir las pruebas estructurales como los flujos de llamadas y los flujos de datos.

El ítem sometido a prueba es una colección de unidades (o componentes) a menudo referida como una “construcción”. Estas construcciones pueden incluir una implementación de la base de datos de un subsistema, una infraestructura, interfaces, una configuración del sistema y datos de configuración. La selección de las unidades o los componentes, para que sean incluidos una construcción, es influenciada por el hecho de que las pruebas de integración consisten en probar las interfaces entre los componentes, las interacciones con diferentes partes de un sistema (como el sistema operativo, el sistema de archivos y el hardware), y las interfaces entre las unidades, componentes o sistemas.

Al igual que las pruebas unitarias o componente, las pruebas de integración requieren con frecuencia arneses y herramientas, debido a que las construcciones no son siempre independientes y comprobables. Estos arneses pueden actuar en el nivel de la interfaz de programación de aplicaciones (API). También pueden estar en el nivel de la interfaz de línea de comandos. A veces, si estamos probando en la interfaz de usuario, las herramientas de interfaz gráfica de usuario son útiles, pero eso es algo raro. Hay herramientas tanto gratuitas como comerciales necesarias para las pruebas de integración.

Existen principalmente dos tipos de integración: La integración incremental y la no incremental. La integración incremental consiste en combinar el conjunto de módulos ya probados (al principio será un conjunto vacío) con los siguientes módulos a probar. Luego se va incrementando progresivamente el número de módulos unidos hasta que se forma el sistema completo. En la integración no incremental o Big Bang se combinan todos los módulos de una vez. 

Para ambos tipos de integración se deberán preparar los datos de prueba junto con los resultados esperados. Esta tarea debe ser realizada por personas ajenas a la programación de los módulos. No es necesario que la lleven a cabo una vez codificados los módulos puesto que basta con conocer qué módulos compondrán el sistema y cuál será la interfaz entre ellos.

En cuanto a quien es el responsable, tanto los probadores como los programadores colaboran idealmente. Desafortunadamente, a menudo nadie es responsable. Los probadores nos siempre tienen las habilidades técnicas necesarias para diseñas y ejecutar las pruebas de integración, y a los programadores no siempre se les da el tiempo y la indicación para ayudar. Esto da lugar a muchas dificultades durante las primeras semanas de las pruebas del sistema, debido a que la primera parte del periodo de ejecución de la prueba del sistema se convierte de hecho en una prueba de integración big-bang (Tipo de prueba de integración en el que los elementos software, elementos hardware o ambos son combinados de forma simultánea en un componente o un sistema global en lugar de hacerlo por fases.).

Finalmente, las pruebas de integración son particularmente complejas, ejemplo de ello podrían ser los sistemas que han sido desarrollados por diferentes organizaciones e incluso en diferentes periodos de tiempo, con tecnologías e interfaces diferentes y tal vez no completamente compatibles, lo cual hace que los cambios en los sistemas sean al mismo tiempo más peligrosos. 

Por situaciones como la antes expuesta, es de vital importancia contemplar las pruebas de nivel dos al momento de plantearse la estrategia de pruebas para los proyectos de desarrollo de software, muchas veces son omitidas o no se les da la relevancia que tienen por la utopía o el peso que tienen las pruebas de sistemas.

Referencias externas:

· Descarga del Syllabus del ISTQB (2011, International Software Testing Qualification Boards).

Autor:
Amlivledif Rivero
QA Technical Expert
ISTQB® Certified Tester, Foundation Level










miércoles, 14 de junio de 2017

Convoquemos a una reunión

Esas cuatro palabras que titulan este artículo están en el puesto número dos de frases más temidas por mí. Solamente es superada por “ya que estamos…”, que generalmente se utiliza para agregar cosas al alcance de un proyecto que no han sido consideradas al momento de las estimaciones y plan del proyecto.

Pero en este artículo me concentraré en “convoquemos a una reunión”. Las reuniones no son malas per se. Muchas veces es la forma más apropiada de solucionar problemas. Pero otras tantas veces se convierten lisa y llanamente en obstáculos para realizar nuestro trabajo adecuadamente.

La organización y conducción de reuniones son responsabilidades del líder. A priori no parece una tarea muy compleja, pero tiene sus bemoles y hay algunos consejos para aquellos que hayan notado que las reuniones que organizan o de las que participan, no son tan productivas como desearían que fueran.

Antes que todo quisiera definir qué es una reunión. La Real Academia Española define reunión como conjunto de personas reunidas. Yo agregaría a esto que las personas reunidas deben compartir un interés en algún tema particular como por ejemplo, solucionar un problema. Desde mi punto de vista, dos personas hablando de un tema particular, también es una reunión.

Ahora que ya tenemos claro a qué llamamos una reunión debemos entender cuáles son las responsabilidades del líder ante una reunión. Para entenderlo fácilmente, éste es responsable de garantizar el ambiente (tiempo y espacio adecuados) y la disponibilidad de información para los participantes. Dicho de este modo es muy etéreo. Así que profundicemos un poco más sobre tres cuestiones concretas:

1- ¿Para qué se convoca? El líder debe tener en claro el porqué de la convocatoria, ya que el tiempo, el espacio, la lista de convocados, entre otros, dependen directamente de esto. Los principales motivos para organizar una reunión son los siguientes:

a- Relevamiento de información: en esta clase de reuniones los participantes hablarán y deberán ser escuchados. Es conveniente conocer técnicas como la escucha activa. A más participantes deberá dedicarse más tiempo a la reunión. 

b- Toma de decisiones: esta clase de reuniones va a promover el debate en temas contradictorios. Es conveniente conocer estrategias de negociación como “subir al balcón”. 

c- Informativa: en esta clase de reuniones suele darse que pocos toman la palabra, muchos solamente escuchan. En este caso, dependiendo de la duración estimada de la reunión, podría haber espectadores de pie. 

d- Creativa: en esta clase de reuniones se espera la producción de ideas nuevas. Suele ser necesario contar con herramientas especiales, como pizarrones, hojas, material de escritura, etc.

2- ¿Qué etapas tiene una reunión? Para el líder la reunión empieza mucho antes que para el resto de los participantes:

a- Preparación: 

i. Definir duración: la duración de la reunión depende del motivo de la convocatoria y de la cantidad de asistentes.

ii. Elegir a los asistentes: antes de invitar a alguien a una reunión es importante que aquel que convoca se pregunte: ¿Es necesaria la participación de esta persona? Solamente deben invitarse las personas que realmente deban estar ahí.

iii. Preparar la agenda a seguir: la correcta planificación de una reunión determina el orden de los temas a tratar y en algunos casos, el tiempo destinado a cada tema. Alcanzado el tiempo límite, si es necesario, podrían organizarse futuras reuniones con menos participantes para continuar los temas que no pudieron tocarse.

iv. Preparar el espacio y herramientas: el espacio para la reunión depende de la cantidad de participantes, el tipo de reunión y de su duración. Si la reunión va a ser larga debería garantizarse un asiento para cada participante. Si va a ser una reunión informativa (que generalmente son breves) podría no ser necesario un asiento para cada uno. Para reuniones creativas, podría ser necesario garantizar un pizarrón u hojas de papel y material de escritura.

v. Enviar el material de la reunión: si se va a discutir de un tema particular es importante que el material se envíe a los invitados antes de la reunión con suficiente tiempo como para que pueda ser leído.
  
b- Apertura: aquí es donde comienza la reunión propiamente dicha. Es donde se pone en contexto a los participantes con un breve repaso de los antecedentes. Es una sana costumbre respetar estrictamente el horario de inicio. 

c- Desarrollo: dependiendo del tipo de reunión es importante que el líder actúe como conductor, facilitador y/o mediador para que se desarrolle con una fluida comunicación. Éste debe facilitar la operatoria del grupo en momentos de bloqueo y se pueden usar dos comportamientos sociales:

i. Cordial: conversación de temas de interés y tono de voz agradable. En general este es el más recomendado.

ii. Dominante: hablar alto, interrumpir a los demás, ignorar a los otros. A veces puede ser necesario actuar de esta manera que podría verse como hostil. Aunque este comportamiento no es el más recomendado, no hay que descartarlo de plano. 

d- Cierre: aquí es donde se expresan las conclusiones y análisis de los resultados de la reunión. Dependiendo del tipo de reunión puede ser diferente. Para reuniones netamente informativas, por ejemplo, en esta etapa no se realiza ninguna acción. Es una costumbre respetar estrictamente el horario de finalización.

3- ¿Qué hacemos luego de la reunión? Una vez que los participantes de la reunión se retiraron, el trabajo del líder continúa:

a- Redacción de la minuta de reunión: por cada reunión debe quedar un registro escrito que, como mínimo, debe contener un detalle de lo que se dijo, quién lo dijo, qué compromisos se asumieron y quién los asumió. Esta minuta de reunión debe ser enviada a todos los participantes que podrían tener observaciones, por lo que esta tarea es iterativa e incremental. 

b- Evaluación acerca de la tarea realizada: es importante para el líder saber en qué grado la reunión ha alcanzado su objetivo, con esta información podrá determinar los pasos a seguir para alcanzarlo. 

c- Evaluación acerca de la producción del grupo: es importante para el líder tener una idea de cómo han interactuado entre ellos los participantes de la reunión. Con esta información podría mejorar el armado de la lista de invitados a otras reuniones futuras. 

Como estamos viendo, el armado de una reunión implica un poco más de trabajo que simplemente reservar una sala de reunión durante dos horas y enviar una convocatoria. Pero tampoco es algo tan complicado. Los efectos negativos de no seguir estos pasos son los siete pecados de las reuniones de trabajo:

1- Nadie se toma en serio la reunión: esto suele darse porque se ha invitado la gente no indicada para la convocatoria. 
2- Reuniones muy largas: esto suele darse porque no se ha enviado el material con anterioridad o no se la ha dado a la gente el tiempo para leerlo. Todo el trabajo que los participantes puedan hacer previo a la reunión es una ganancia de tiempo. 
3- La gente se va por las ramas: esto suele darse por no tener una agenda definida o porque el líder no toma su rol de conductor, facilitador y/o moderador. 
4- Después de la reunión no pasa nada: esto suele darse por ausencia de seguimiento. Es importante para hacer un buen seguimiento que las minutas reflejen los compromisos adoptados. 
5- No se dice la verdad: este punto es un gran generador de conflictos. Las personas tienen distintas versiones de “la verdad”. Para evitar esto debe aportarse información objetiva e indiscutible dentro del material de la reunión. 
6- Falta información crucial: esto suele darse por no haber preparado adecuadamente el material para los participantes de la reunión. También podría ocurrir que faltó invitar a la persona que posee la información. 
7- Las reuniones no mejoran: esto suele darse porque el líder no evalúa la tarea realizada y/o la producción del grupo luego de terminada la reunión. 

Por último, quiero dejar un comentario para aquellos que no son líderes de equipo: Si las reuniones que nuestro líder organiza no son tan productivas como nosotros deseamos no debemos caerle con todas las críticas a él. Los líderes necesitan la asistencia de sus colaboradores para realizar mejor su trabajo. Si pensamos que hemos sido convocados a una reunión en la que no debemos estar podemos, respetuosamente, hacerle conocer nuestra opinión al respecto. Para esto, solamente habría que convocar a una reunión.


Autor:
Ing. Leo Viegas
Desarrollador

miércoles, 7 de junio de 2017

Dos orejas y una boca

 “¿Para qué tenés dos orejas y una boca?”, me preguntaba mi madre cuando yo era chico. Sin darme tiempo a nada, ella misma daba la respuesta: “Para escuchar el doble de lo que hablás”.

Escuchar, realmente escuchar, es una de las habilidades más importantes que cualquier líder debería tener. Pero no desesperen aquellos que no la tengan porque se puede aprender.

Existe una técnica que se llama “escucha activa”. Se pueden hacer capacitaciones y talleres de liderazgo dónde se puede aprender y practicar en detalle esta técnica. Pero hasta que llegue el momento, quisiera hacer un pequeño resumen para quienes no la conozcan.

Hacer una escucha activa es, básicamente, ir más allá de las palabras que se expresan en el transcurso de una conversación y tratar de observar los sentimientos, ideas y pensamientos que están por detrás de lo que se está diciendo. La escucha activa implica también tener un nivel de empatía para tratar de tomar los mensajes desde el punto de vista del que habla y no del nuestro, que somos los que escuchamos. En un lenguaje más llano, debemos tratar de colocarnos en los zapatos de nuestro interlocutor. Cualquier persona que intente esto por primera vez se va a encontrar con algunas dificultades. Algunas de ellas:
  • Dividimos nuestra atención: hoy en día existen muchos distractores que nos hace perder la atención (mensajes en celulares, mails, llamadas telefónicas, etc.) y provocan en nuestros interlocutores incomodidad y hacen que se nos complique nuestro objetivo.
  • Nos escuchamos a nosotros mismos: en vez de realmente concentrarnos en nuestro interlocutor, nos concentramos en nuestros pensamientos y opiniones de lo que nos está diciendo.
  • Simulamos que escuchamos: a veces, damos señales de estar escuchando atentamente pero estamos pensando en otras cosas. En general, nos justificamos diciéndonos que “son cosas más importantes”.
Un problema que usualmente se da durante el proceso de comunicación es no poder contener las ganas de hablar y dar nuestro punto de vista. Así, nos empezamos a concentrar en la idea que queremos expresar y dejamos de lado lo que nos están diciendo. Esta “incontinencia verbal” es muy perjudicial para la comunicación porque predispone muy negativamente a la persona con la que estamos hablando.

Ahora que ya vimos lo que no hay que hacer, veamos algunos puntos sencillos de lo que sí hay que hacer:
  • No interrumpir: dejar que nuestro interlocutor termine sus frases y sus ideas. Además, tampoco debemos hacer juicios mentales de lo que nos está diciendo hasta tanto haya terminado.
  • No anticiparnos a lo que nos van a decir: no podemos leer la mente de otras personas. Al menos yo no puedo. Entonces, si no podemos leer la mente, ¿Por qué creemos que ya sabemos lo que nos van a decir antes de que lo hagan? Tenemos que evitar lo más posible los prejuicios y dejar que nuestro interlocutor se exprese.
  • Ser considerados y respetuosos: nuestro interlocutor es, ante todo, una persona. Como persona, se le debe respetar. Debemos garantizar el espacio adecuado para la charla y debemos hacer que sienta que estamos ahí para escucharlo.
  • Escuchar “entre líneas”: en todo mensaje es tan importante los que se dice como lo que no se dice. También debemos prestar atención a los gestos y tono de voz de nuestro interlocutor.
  • Evitar ser hostil: mientras se escucha, solamente se debe hacer eso. Luego habrá tiempo para ponerse emocional y plantear desacuerdos, si es necesario, pero no mientras se escucha.
  • Evitar las distracciones: así como debe garantizarse el espacio adecuado para la charla, debe garantizarse también tiempo. No debemos mirar todo el tiempo el reloj como si la charla que estamos teniendo fuera algo menos importante que otras cosas que hacemos en nuestro día. Debemos evitar también atender mails, mensajes y llamadas telefónicas.
  • Ser sensible al tema: si nuestro interlocutor nos está contando un problema, debemos poner más interés que el usual. Hay ciertos tópicos particularmente delicados y debemos ser sensibles a ellos.
Si aplicamos la escucha activa vamos a encontrar rápidamente algunos beneficios en nuestra comunicación:

  • Se facilita la comprensión mutua generando un clima de confianza.
  • Las diferencias de opinión serán tomadas con mayor facilidad y menor tensión.
  • Se dará un aprendizaje entre ambas partes.
  • Se aporta a que existan menos conflictos.
  • Se toman mejores decisiones.
  • Se mejora el ambiente laboral.
  • Se estimula la cooperación de los involucrados.
No hay que olvidar que el proceso de comunicación se compone de dos personas: el emisor y el receptor. Durante el proceso de comunicación el emisor pone en palabras una idea que está en su mente, el receptor las escucha e intenta generar la misma idea en su propia mente. Si la idea original del emisor es igual a la idea creada en la mente del receptor, se puede decir que le proceso de comunicación fue exitoso.

Autor:
Ing. Leo Viegas
Desarrollador 


miércoles, 24 de mayo de 2017

Temet Nosce - Conócete a ti mismo

Soy fanático de las películas de la trilogía Matrix y recomiendo esas películas a cualquiera que no las haya visto. Los que son fanáticos como yo, ya deben haber conectado el título de esta nota con el cartel que cuelga sobre la puerta de la cocina del oráculo: “Temet Nosce”, que en latín significa “conócete a ti mismo”. La historia de esta frase se remonta hasta el templo de Apolo, en la antigua Grecia, pero su historia no viene al caso ni hace al centro de este artículo.

Miraba la película cuando conecté este concepto con el artículo “No hagas lo que no te gusta que te hagan” que escribí hace un tiempo. Conocerse a sí mismo, creo que nadie puede negarlo, es un buen consejo en todo contexto. Si hablamos de un líder de equipo, este concepto trasciende el nivel personal. Un líder debe conocer a su equipo tanto como se conoce a sí mismo, ya que debe ser capaz, en la medida de lo posible, de anticipar los efectos que las decisiones que toma causarán en el grupo.

Es sabido que las personas trabajan mejor cuando las tareas que desempeñan son de interés para ellos. Por esto, al momento de distribuir las tareas a realizar por los miembros del equipo es fundamental conocer los intereses de cada miembro. En otras palabras, es necesario conocer al equipo.

Pero, ¿Cómo hacemos para conocer mejor el equipo que lideramos? Creo que hay tres pasos básicos que cualquier líder puede seguir sin hacer ningún curso en particular:
  1. Proponerse seriamente a sí mismo conocer al equipo: conocer al equipo no es algo que simplemente “se da”. El líder de equipo tendrá que reservarse el tiempo que necesite para hacerlo y por esto debe ser tomado con la seriedad del caso. Forma parte del trabajo formal del rol y, de ser necesario, debería tener asignada una tarea en la planificación del proyecto en el que esté trabajando.
  2. Establecer y garantizar un espacio propicio: cuando un líder quiere conocer mejor a un miembro de su equipo no debe hacerlo a las apuradas, de cualquier manera y en cualquier lugar. Una buena forma, por ejemplo, podría ser organizar almuerzos o desayunos con distintos miembros del equipo. La charla podría rondar el trabajo diario, el proyecto, intereses personales y todo tópico que pueda sirva al objetivo.
  3. Escuchar: ¿Acaso hay que explicar en profundidad este paso?

Por último, y para aquellos que recientemente han abrazado un rol de liderazgo, les dejo dos cosas para pensar:
  • No solamente es su trabajo conocer a su equipo, también es su trabajo lograr que cada miembro      del equipo conozca a los demás.
  • Usted también forma parte del equipo, por lo que también debe lograr que sus colaboradores lo conozcan.


Autor:
Ing. Leo Viegas
Desarrollador 

miércoles, 12 de abril de 2017

No hagas lo que no te gusta que te hagan

Siempre me gustó el desarrollo de software. Empecé a programar cuando tenía nueve años y mi tuve mi primer trabajo como desarrollador a los diecinueve. Cuando en 2005 (por ese entonces tenía veintiocho años) me ofrecieron por primera vez un puesto de Jefe de Desarrollo no lo dudé y lo acepté. Recuerdo haber pensado: “Dada mi experiencia como desarrollador, ser Jefe de Desarrollo será muy fácil para mí”. Hoy en día guardo esa frase en la colección de grandes errores cometidos.

Ser jefe significa mucho más, ahora lo sé, que conocer al dedillo las tareas que deben realizarse en un área. Ser jefe implica relacionarse con gente y la gente (¡Oh, sorpresa para mí!) es muy diferente a las computadoras. Casi de inmediato comencé a hacer agua en mi puesto. Yo era el jefe del equipo, pero no era el líder.

Hubiera estado bueno que alguien me explicara en ese momento las diferencias entre en un jefe y un líder y me hubiera aconsejado un poco respecto de las tareas. Ahora, doce años después, quisiera darle una mano a cualquier colega que se esté afrontando una situación parecida a la que yo afronté.

Hay cursos y capacitaciones para mejorar “las habilidades blandas”, como suelen llamarse. Pensá en hacerlos. Vale la pena. Pero si no contás con tiempo como hacer esas capacitaciones ahora, voy a dejar a continuación una enseñanza que me dio mi abuela cuando yo tenía tres años: “No hagas lo que no te gusta que te hagan”. Mi abuela no había terminado la primaria, pero es una de las personas más sabias que jamás conocí y apliqué muchas de sus enseñanzas en mi carrera. Vamos a lo concreto:

  • ¿Te gusta que cuando estás hablando con tu jefe él se ponga a mirar el celular? Entonces, vos no lo hagas con tus colaboradores.
  • ¿Te gusta que cuando le pedís a tu jefe una reunión por algún tema te diga que está muy ocupado y te dé cinco minutos de su valioso tiempo en un ascensor? Entonces, vos no lo hagas con tus colaboradores.
  • ¿Te gusta que cuando estás hablando en una reunión de trabajo tu jefe te interrumpa y no te deje terminar la idea? Entonces, vos no lo hagas con tus colaboradores.
  • ¿Te gusta que tu jefe te diga “hacé lo que te digo porque acá mando yo”? Entonces, vos no lo hagas con tus colaboradores.
  • ¿Te gusta que tu jefe te mienta? Entonces, vos no lo hagas con tus colaboradores.

En las antípodas de esta “regla” hay otra: “Tratá a la gente como te gusta que te traten a vos”.
  • ¿Te gusta que tu jefe te preste toda su atención cuando estás hablando con él? Entonces, vos hacelo también con tus colaboradores.
  • ¿Te gusta que cuando le pedís a tu jefe una reunión él te dé el tiempo y el el ambiente propicio para que puedan hablar? Entonces, hacelo también con tus colaboradores.
  • ¿Te gusta que cuando estás hablando en una reunión de trabajo tu jefe te escuche y te permita terminar, aunque luego pueda estar en desacuerdo con tu idea? Entonces, vos hacelo también con tus colaboradores.
  • ¿Te gusta que tu jefe tome en cuenta tus sugerencias? Entonces, vos hacelo también con tus colaboradores.
  • ¿Te gusta que tu jefe te diga la verdad? Entonces, vos hacelo también con tus colaboradores.

Ante cualquier otro escenario en el que surjan dudas, volver al consejo original de mi abuela: “No hagas lo que no te gusta que te hagan”.

Autor:
Ing. Leo Viegas
Desarrollador 


jueves, 30 de marzo de 2017

La importancia del testing en los proyectos de desarrollo de software

El testing de software es una de las etapas fundamentales de cualquier buen ciclo de desarrollo. La verificación y validación del software se presentan como operaciones indispensables para asegurar la calidad del sistema antes de su puesta en producción y minimizar costos en el mantenimiento.

Un proyecto promedio tiene días destinados a las pruebas, principalmente antes del despliegue. En la mayoría de los casos, cuando el proyecto sufre retrasos en las primeras etapas del ciclo de vida, el tiempo estimado para pruebas se ve afectado y es así como mucho software comercial consigue solo un par de días de testing antes de enviarse a producción.

En la actualidad, las pruebas de software suelen considerarse innecesarias y costosas, pero en realidad son una inversión garantizada y tienen mayor efecto si se aplican desde etapas tempranas del ciclo de vida del software. En este sentido, cabe destacar que testear no implica aumentar costos, sino todo lo contrario. Testear significa reducir costos originados por diversas correcciones que se realizan en el sistema después de haber salido a producción.

Los beneficios de aplicar las técnicas de verificación y validación no solo se ven reflejados en el área de desarrollo del proyecto, sino también en las áreas de negocio del cliente final. Además de cumplir con el compromiso en tiempo, costo y calidad, el testing se ve reflejado en la fase de instalación en producción ya que, al llegar el sistema a esta fase final, este es prácticamente estable y ofrece una mejor respuesta a las necesidades del cliente y/o usuario final, asegurando su satisfacción respecto al producto terminado.

En base a lo anterior, se puede decir que las pruebas deben ser partícipes en todo momento del ciclo de vida de desarrollo del proyecto y contempladas en la planificación del mismo. El testing evita que el proyecto sea puesto en producción con errores que pudieron ser resueltos a tiempo y retrasos a en las actividades de los usuarios finales, como así también una inversión mayor de tiempo por parte del equipo de desarrollo, ya que cuando el proyecto se encuentra finalizado es más complejo determinar donde se encuentra el error.

Una planificación temprana de las pruebas, el control de las mismas en todas las fases de desarrollo del proyecto, y contar con especialistas de testing, aseguran beneficios para el cliente tanto en ahorro de costos como en plazos de entrega del equipo de trabajo, sin dejar de mencionar que se entrega un proyecto de calidad y usabilidad.

Autora:
Cecilia Zamudio
Tester QA