jueves, mayo 21, 2009

¿Desarrolladores o compradores compulsivos?

Imaginemos que estamos en el supermercado y que hay una prueba que quieren hacer para un estudio de la facultad, donde nos invita a participar de esta prueba de laboratorio que consiste en que nos dan un minuto y medio para llenar el changuito como querramos y antes del minuto y medio, tenemos que llegar a la caja para llevarnos gratis lo que hemos 'comprado'.

Seguramente habrá diferentes estrategias y una muy comúnque es la de comprar como loco lo que tenemos a mano. Podemos decir entonces que algunos desarrolladores creen que el desarrollo de sistemas es una prueba de laboratorio (un juego), y entonces el negocio aquí es poner frameworks y tecnologías para nuestros planes de estudio (CV), ups, quise decir para los proyectos. Sería lo mismo que si vamos al médico y nos comienza a dar remedios que no necesitamos, no nos va a gustar no? Es probable que no nos haga bien a la salud.

¿Cual debería ser nuestro pensamiento?

Para empezar el desarrollador de verdad lleva su trabajo en serio, eso significa que él no irá a introducir una tecnología o framework que el cliente no precisa. Es desarrollador verdadero, está preocupado en resolver los problemas del cliente y no los problema de su currículum
Ser desarrollador profesional implica que a veces tengamos que usar tecnologías que ya están ahí, hace un buen tiempo y que muchos conocen.

Un desarrollador profesional sabe la diferencia de innovación e innovar para el cliente y la diferencia de hacer las cosas para propósito solo personal.

Falta de ética...

Para algunos es una palabra fuerte. Pero es la verdad, realmente no entiendo porque un médico o un ingeniero civil pueden responder por sus actos y un desarrolldor de software sale ileso y sin responder a nada. Cuando un edificio cae porque está mal proyectado el ingeniero es el responsable y responde legalmente por eso, y cuando hablamos de desarrollo de software, lo máximo que va a pasar es que el desarrollador vea su CV aumentado con algunas tecnologías y frameworks mas, ¿y el cliente? ¿y la ética?

Infelizmente la ética no es un asunto que se converse mucho en los entornos de TI, aunque debería, así como los valores, esto ocurre porque muchos fabricantes de software solo quieren vender, vender y vender sus productos y si se las puede llamar a eso 'soluciones'.

De nada sirve el API....

Eso no es verdad para el desarrollador supermercadista, porque saber bien un API y tener muchas certificaciones cuenta mucho para que él aumente su salario. El problema es que el desarrollador supermercadista no sabe hacer una solución de verdad. Eso pasa porque no sabe entender los problemas del cliente, porque no entiende de requerimientos, de gestión de proyectos, de análisis, de base de datos y principalmente de diseño.

El diseño es lo que diferencia a los desarrolladores profesionales de los picapedreros. Un buen desarrollador tiene que ser un buen diseñador. Nuestro trabajo está mucho mas allá de elegir frameworks, está en entender las reglas de negocio y los requerimientos.

De nada sirve la tecnología sin...

Un propósito. Toda decisión debe estar basada en requisitos o problemas que la tecnología o framework va a resolver. Enfoquemos nuestro trabajo en las necesidades que tenemos, necesitamos ser rápidos, tener arquitecturas robustas, nuestras aplicaciones tiene que escalar, y por sobre todo tienen que tener calidad.

En la fecha en que estamos las aplicaciones no pueden salir a producción sin un mínimo de escalibilidad y eso puede ser controlado através de pruebas de stress y carga y principalmente a través de los requisitos. La tecnología solo es buena cuando está bien aplicada, de nada sirve Spring, EJB, WS-*/WS-RS, ESB, SOA y otras si no fueron bien aplicadas y el catalizador es el negocio.

Entonces, siempre está pendiente de nuevas tecnologías o frameworks que mejoren la calidad de nuestras soluciones, en lo posible no desarrollando soluciones que existan, que están probadas, y muchas veces son estandares de hecho en el mercado, y pongamos los límites de la utilización de ello, en que siempre la implantación de esto sea lo mejor para el cliente o para el negocio y no solo para nuestro CV.

Articulo original: ¿Desarrolladores o compradores compulsivos?

martes, mayo 19, 2009

Mitos sobre el liderazgo

Hemos adoptado muchos conceptos erróneos y mitos acerca de los líderes y el liderazgo.

He aquí los cinco más comunes:

El mito de la gerencia

Un malentendido muy difundido es que liderazgo y gerencia son lo mismo. Hasta hace unos pocos años, libros que afirmaban ser sobre liderazgo por lo general eran realmente sobre gerencia. La diferencia principal entre las dos cosas es que el liderazgo consiste en influir en la gente para que siga al líder, mientras que la gerencia enfoca los sistemas y procesos de mantenimiento. Como antiguo presidente y jefe principal de la Chrysler, Lee Iacocca comentó con ironía: “A veces hasta el mejor gerente es como aquel muchacho que pasea un perro grande y espera a ver dónde quiere ir el animal para entonces llevarlo allá”.

La mejor forma de probar si una persona es líder en vez de gerente, es pedirle que haga algunos cambios positivos. Los gerentes pueden mantener el rumbo, pero no pueden cambiarlo. Para cambiar el rumbo de las personas, usted necesita influencia.

El mito del empresario


Con gran frecuencia la gente supone que todos los vendedores y empresarios son líderes. Pero ese no siempre es el caso. Tal vez usted recuerda los comerciales de Ronco que aparecieron por televisión hace años. Vendían artefactos como Veg-O-Matic [procesador de vegetales], Pocket Fisherman [caña plegable de pescar], y Inside-the-Shell Egg Scrambler [aparato para revolver huevos dentro de la cáscara]. Esos productos eran inventos de un empresario de nombre Ron Popeil. Llamado “el vendedor del siglo”, este hombre también ha aparecido en muchos comerciales informativos de diversos productos, como remedios para la calvicie en atomizador y aparatos para la deshidratación de alimentos.

Es muy cierto que Popeil es emprendedor, innovador, y exitoso, especialmente si lo mide por los $300 millones de ganancia que la venta de sus productos ha dejado. Pero esto no lo convierte en un líder. La gente puede estar comprando lo que él vende, pero no lo sigue. En el mejor de los casos, el puede persuadir a la gente por un momento, pero no tiene influencia sobre ellos a largo plazo.

El mito del conocimiento

Sir Francis Bacon dijo: “El conocimiento es poder”. Mucha gente que cree que el poder es la esencia del liderazgo, naturalmente supone que los que poseen conocimiento e inteligencia son líderes. Pero eso no sucede de manera automática. Usted puede visitar cualquier universidad importante y conocer hombres de ciencia ocupados en la investigación y filósofos cuyo poder de raciocinio es tan alto que se sale de las gráficas, pero cuya capacidad para dirigir es tan baja que ni siquiera se registra en las gráficas. El cociente intelectual (IQ) no necesariamente equivale al liderazgo.

El mito del precursor


Otro concepto erróneo es que todo el que está frente a la multitud es un líder. Pero ser el primero no siempre es lo mismo que ser el líder. Por ejemplo, Sir Edmund Hillary fue el primer hombre en llegar a la cumbre del monte Everest. Desde su ascenso histórico en 1953, mucha gente lo ha “seguido” en la realización de esa hazaña. Pero eso no convierte a Hillary en un líder. Ni siquiera fue el líder de esa expedición particular. El líder era John Hunt. Y cuando Hillary viajó al Polo Sur en 1958 como parte de la Expedición Transantártica de la Comunidad de Naciones, iba acompañando a otro líder, Sir Vivian Fuchs. Para ser líder, una persona no sólo debe ir al frente, sino que también debe tener gente que intencionadamente viene detrás de ella, sigue su dirección, y actúa sobre la base de su visión.

El mito de la posición

Como ya se dijo, el peor de todos los conceptos erróneos acerca del liderazgo, es que se basa en la posición. Pero no es cierto. Stanley Huffty afirmó: “No es la posición lo que hace al líder; es el líder quien hace la posición”.

Observe lo que sucedió hace varios años en Cordiant, la agencia publicitaria conocida antiguamente como Saatchi & Saatchi. En 1994, inversionistas institucionales en Saatchi & Saatchi obligaron a la junta directiva a despedir a Maurice Saatchi, el jefe principal de la compañía. ¿Cuál fue el resultado? Varios de los ejecutivos lo siguieron. También lo siguieron algunas de las cuentas más grandes de la compañía, incluidas British Airways, y Mars, el fabricante de caramelos. La influencia de Saatchi era tan grande que su partida ocasionó que las acciones de la compañía bajaran inmediatamente de $8.5 a $4 por acción.

Lo que sucedió fue resultado de la Ley de la Influencia. Saatchi perdió su título y su posición, pero siguió siendo el líder.

Basado en John C. Maxwell, Las 21 Leyes Irrefutables del Liderazgo (Dos Ideas)

lunes, mayo 11, 2009

Ser muy productivo puede ser malo!

Lamentablemente, este simple tema de asegurar que nadie trabaje muchas horas por día (más de 10 ó 12) en un equipo a veces no sucede. Cuando un equipo está atrasado con respecto a la planificación, la primera cosa con la que un líder novato (o no hábil) es presionar para que su equipo haga muchas horas de trabajo. En una organización de desarrollo, si un líder hace esto alguna vez es inmediatamente puesto en la lista negra por la gente que lo rodea.

Sin embargo, en la misma organización de desarrollo, algunos desarrolladores pueden quedarse ellos mismos a terminar cierta cantidad de trabajo, aún si el líder no le pidió que lo haga. Esto suele estar bien visto. Se entiende que cuando estás programando una solución a un problema no quieres abandonarlo por la mitad sólo porque son las 6 pm... pero a veces los desarrolladores se van de tema con esto.

De hecho, si estás en un proyecto de XP (o no), es mejor para tí que no trabajes muchas horas de más. Por ejemplo, si estás trabajando 12 horas todos los días en una iteración y terminas entregando 10 puntos en esa iteración, cuando el líder mire la velocidad anterior va a planear cerca de 10 ó 12 puntos de trabajo en la próxima iteración. Si esto pasa continuamente tu líder va a olvidar que esto era sólo un excepción en una iteración en la que te mataste por 12 horas, y rápidamente se va a convertir en la norma. Un líder novato o poco orientado a las personas va a estar propenso en caer fácilmente en este error. La próxima vez, si estás de vacaciones por una iteración, la gente restante en el equipo debe alcanzar el mismo resultado al que llegaban contigo, lo que implícitamente significa que ellos trabajarán 12 horas o más.

Mientras que tu equipo (y la mayoría de los líderes) serán bien vistos por los stakeholders por tener terminado un montón de trabajo constante en una iteración, vos como desarrollador vas a sufrir de agotamiento. Y sabes bien que la próxima vez que no estés ahí tu equipo va a sufrir, ya que otros en el equipo pueden no estar preparados para una maratón de 12 horas.

De lo que estoy hablando acá es de como lograr un ritmo sostenible en el equipo. No sólo da predecibilidad para que la gente planifique sus iteraciones mejor, sino que también mantiene al equipo en marcha juntos por meses, sin agotarse.

Si sos desarrollador o líder, por favor no abuses de vos mismo o de tu equipo matándose de trabajo todas las noches.

Traducción del Original

martes, mayo 05, 2009

Alternativas a Visual Studio

Para aquellas personas habituadas al desarrollo de aplicaciones Microsoft (basadas en WinForms, ASP.Net o inclusive WPF, WWF, WCF) quisiera mostrarles las distintas alternativas que existen que les van a permitir seguir desarrollando en los lenguajes a los que están acostumbrados (C#, VB.Net, XAML) sin necesidad de pagar licencias de SO Windows ni de Visual Studio:

  • Monodevelop: Es un IDE liviano basado en GTK, trabaja con el framework Mono, no trabaja con .Net framework, hay binarios para la mayoria de las distribuciones GNU/Linux aunque para windows se puede generar desde los fuentes,editor visual de interfaces gráficas en GTK, soporte para aplicaciones ASP.Net.

  • SharpDevelop: Es un IDE extremadamente liviano, soporte .Net Framework y Mono, editor visual de interfaces gráficas en Windows Form y WPF, soporte para C#, VB.Net, Boo, F# e IronPython, soporte para ASP.Net, el instalador sólo pesa 14 MB en comparación con los casi 4 GB del Visual Studio de Microsoft, soporte para .Net 3.5 (WPF, WCF, WWF).

Que son las Ondas

Te haz preguntado alguna vez como es que puedes comunicarte en tiempo real con una persona en particular ubicada a kilómetros de distancia de ti mediante un simple dispositivo llamado teléfono inalámbrico o alambrico?

Pues esta comunicación en tiempo real es posible gracias a un fenómeno denomina Onda. Una onda es un mapa mental definido es decir, una señal que se encuentra en la atmósfera y que no puede ser visualizada por ojo humano.

Un concepto más exacto de Onda podría ser; es una perturbación que se propaga en un medio. Para que una onda se produzca es necesario la actuación de una fuente como masa de perturbación y de un medio por el cual dicha perturbación se desplace; una onda esta conformada por: La Cresta, el Valle, la Amplitud el Nivel de Equilibrio y la Longitud de Onda. La misma depende de una Frecuencia y de un Periodo. Ver Fig. 1


Fig. 1 Onda y sus Características
Los puntos altos sobre una Onda se denominan Cresta y los Bajos Valle.
Amplitud: Es la altura máxima de una Cresta, o la profundidad máxima con respecto a un valle.
Longitud de Onda: Es la distancia entre dos Crestas sucesivas.
Frecuencia: Es el numero de Crestas o ciclos completos que pasan por un punto dado en una unidad de tiempo.
Periodo: Es el tiempo requerido para que una Oscilación completa o ciclo completo de la Onda pasen por un punto dado a lo largo de su línea de viaje.

Una Onda puede generarse de forma Transversal o Longitudinal. Las Ondas Transversales viaja de izquierda a derecha mientras que sus partículas vibran hacia arriba y hacia abajo en dirección transversal o perpendicular a la misma onda, la Longitudinal es aquella donde la vibración de las partículas del medio es a lo largo de la misma dirección que el movimiento de la onda.

Existen varios tipos de Ondas entre las cuales se encuentran las Ondas Mecánicas, Ondas Electromagnéticas y hasta Ondas de Luz… Próximamente se estarán desarrollando estos temas.