Ir al contenido principal

Micromanagement al Rescate

Hace ya un buen tiempo me tocó trabajar con un equipo de desarrollo que tenía problemas a la hora de dar resultados. Siempre había un pretexto o detalle que se les iba y por alguna u otra cosa no se entregaban las características requeridas en el programa. Este era un equipo que lo administraba el cliente directamente. Nuestra empresa solo "rentaba" a los programadores.

Algo que intentó el administrador de proyectos para "rescatar" al equipo, fue realizar lo que se conoce como micromanagement. El micromanagement (o microgestión en español) es cuando la persona encargada de administrar, o dirigir a otra, le da instrucciones al detalle de lo que hay que hacer. Esto es algo que por lo general se busca evitar ya qué es cansado para ambas partes.

Cuando supe que se intentaría "rescatar" al equipo usando micromanagement no me pareció una buena idea. Supuse que eso traería más problemas. Me comentaron que sería una medida temporal en lo que "salíamos del hoyo". Contra mis pronósticos parece que la medida dio algo de resultados. El equipo empezó a entregar tareas y quedaron expuestas las causas de los problemas del equipo, haciendo posible realizar correcciones. Algunas de. estás correcciones no tan agradables; pero fueron necesarias para bien del proyecto.

Una vez realizadas las correcciones necesarias para que el equipo funcionara mejor, se pudo regresar a un ambiente menos controlado y se pudo seguir avanzando en el proyecto.


Esa no ha sido la única vez que la microgestión nos ha ayudado a sacar adelante un proyecto. En otra ocasión me tocó a mi detener un proyecto y volverlo a empezar desde cero. Lo que hicimos para que el proyecto no se saliera nuevamente de control fue que lo iniciamos programando todos juntos en la misma maquina. Éramos un equipo distribuido por lo que todos nos conchabamos a una junta por GoToMeeting y el "chofer" compartía pantalla y empezaba a programar mientras los demás íbamos viendo. Eramos 4 personas en la llamada. Al principio me parecía un desperdicio de recursos estar los cuatro viendo como definir algunas clases; pero ahora que veo hacia atrás, creo que fue una buena decisión porque eso logro sacar al proyecto adelante.

Después de un tiempo dejamos de conectarnos para programar y cada quien trabajaba en cierto módulo; pero no permitía que subieran código fuente al repositorio hasta que lo revisara yo mismo. Al principio había varias observaciones en los commits que me solicitaban; poco a poco fueron disminuyendo. Pasado algún tiempo dejé de revisar todo el código fuente y ahora solo nos preocupábamos porque la funcionalidad estuviera ahí y pudimos trabajar sin micromanagement. Se tenía una junta en las mañanas para tener el plan del día y con eso era suficiente.

El micromanagement es algo que por lo general se ve como malo, yo mismo me he quejado de eso en este blog; pero también puede ser una práctica que puede ayudar al equipo a salir adelante en ciertas ocaciones.

Comentarios

  1. Personalmente la he tenido que aplicar, no como medida correctiva sino cuando ya de plano nadie le atina a cómo sacar adelante cierta característica o corrección es cuando sí digo "a ver, vamos a ver todos el código"

    ResponderBorrar
    Respuestas
    1. Sí funciona, lo malo es que sí se siente algo costoso tener a varias personas haciendo lo mismo, cuando a veces con una sola se puede resolver.

      Borrar

Publicar un comentario

Entradas más populares de este blog

Bloqueos

Una de las preguntas típicas de las juntas matutinas en los equipos de desarrollo de software es ¿Hay algún bloqueo? Si lo hay, se trata de ver qué es lo que está esperando esa persona y encontrar la forma de que se desbloquee; pero ¿Qué son los bloqueos? Los bloqueos son obstáculos que te impiden realizar o avanzar en tu trabajo. Evitan que puedas seguir progresando en el proyecto.

He notado que es común en las personas con menos experiencia decir que tienen un bloqueo cuando están batallando, debido a su poca experiencia, en la forma de resolver un problema. Han intentado varias formas y se empiezan a quedar sin ideas de como puede ser resuelto el problema o como pueden cumplir con el requerimiento especificado. Al quedarse sin opciones de qué intentar dicen que tienen un bloqueo con la tarea y que a menos que alguien les diga como resolverlo, no se puede avanzar en la tarea.

En personas con más experiencia, ese tipo de bloqueos no ocurren, una persona con experiencia ha visto pro…

Firebird 2.1 UPDATE OR INSERT

Another great feature that I like in Firebird 2.1 is the UPDATE OR INSERT statement. It's a really time saver and it makes the SQL cleaner.

For example suppose I have a products table like the one I use in my last post and an inventory table to store the product stock. Before Firebird 2.1 if I want to set the stock for a product I needed to check if a record for that product_id already exists; if the product_id already exists then I write an update. If not then I write an insert statement. So I ended up with something like this:


IF EXISTS(SELECT * FROM inventory WHERE product_id = :product_id ) THEN
UPDATE
inventory
SET
stock = :stock
WHERE
product_id = :product_id;
ELSE
INSERT INTO inventory
(product_id, stock)
VALUES
(:product_id, :stock);

In this example I only update one field but when I have to update a big table I ended up with a big chunk of code and thinking: "there should be another (better) way to do this".

Fortunately now with Firebird 2.1 there…

Database Mail en MS SQL Server 2005

Configuración de Database Mail en MS SQL Server 2005

Primero se debe de habilitar, ya que por omisión el componente esta deshabilitado, Utilizando el SSMS (SQL Server Management Studio)


Si no esta habilitado aparecerá un mensaje preguntado si lo habilita, después aparece esta ventana donde se pregunta al usuario que es lo desea hacer.


Seleccionamos la primera opción para crear un perfil.


Configuramos el perfil y le agregamos por lo menos una cuenta.


Seleccionamos el perfil como public y default.


Para mandar correo se utiliza el procedimiento msdb.sp_send_dbmail por lo tanto el usuario que intente mandar correo debe de tener permiso para la base de datos msdb.

Referencias:
http://www.sqlservercentral.com/columnists/cBunch/introtodatabasemailinsql2005.asp