sábado, 29 de mayo de 2010

La mente de un desarrollador Web




Encontré esta imagen que fue obtenida después de rigurosos exámenes médicos a desarrolladores web de más de 20 países, 15 lenguajes y 3 sistemas operativos diferentes. Eso hace que la veracidad científica del mismo sea innegable.

Espero les agrade.

martes, 25 de mayo de 2010

Las variaciones en los proyectos de Software (tiempos y documentación)

Disclaimer

No deja de extrañarme la cantidad de veces que recibo solicitudes para tiempos y procedimientos exactos en los proyectos de desarrollo e implementación de Software. A decir verdad, es nuestra responsabilidad como desarrolladores o consultores o como les quieras llamar, intentar dar un estimado de tiempos tan apegado a la realidad como sea posible. Pero la exactitud de dicho estimado suele estar relacionada con factores que no necesariamente se relacionan con la habilidad, conocimientos o actitud del personal que te prestará el servicio.

Por lo anterior, te presento estos puntos que tal vez sea interesante que consideres en dichas situaciones. Si eres un proveedor, son razones por las cuales aunque quieras, es difícil encontrar el balance entre que el cliente sienta que le estás encajando el diente (mucho tiempo) o que tus empleados o compañeros se sientan explotados (poco tiempo). Si eres un cliente, ojalá te ayude a entender que no es ningún fetiche por "cobrar con taxímetro", simplemente es o sería lo más justo para todos.

Aunque las métricas y procedimientos mejoran con los años, el desarrollo de software como tal está, en mi opinión, aún muy lejos de ser una ciencia exacta. Si bien estos años han hecho que ya no sea más una especie de "trabajo artesanal". Yo diría que al día de hoy puede entrar más en la clasificación de disciplina: existen ciertos conocimientos que debes tener, no te cae nada mal un poco de intuición o talento, pero en realidad nunca puedes ser exacto. La duración de los ciclos de pruebas y mantenimiento (versus el tiempo total del proyecto), en comparación con otras actividades, es una clara muestra de lo anterior.

Así mismo, y relacionado con lo anterior, por factores muy diversos (que espero abordar en otro post) la rotación de personal en las fábricas o consultoras es constante. Además, en virtud de la ramificación de las sub-disciplinas dentro del software, el ritmo de trabajo varía entre los diversos equipos o personajes multidisciplinarios que son requeridos para un desarrollo "de acuerdo a los cánones".

Esta relativa especialización (que todos piden, pero pocos dan oportunidad de obtener) en los desarrolladores da como resultado que el nivel de conocimientos no pueda, de ninguna manera, ser el mismo entre el proveedor y el personal de mantenimiento del cliente (en el mejor de los casos, suponiendo que exista un área o personal de mantenimiento de software). Es esto lo que imposibilita la redacción de manuales "paso a paso" que puedan ser útiles bajo cualquier situación. Sencillamente porque, si cada probable escenario de falla estuviera previsto y pudiera ponerse en un manual, entonces sería mucho más sencillo crear un software adicional que se encargue de resolver los problemas, y la razón de que tu área de soporte exista quedaría reducida a nula. No hay que subestimar de esa manera el trabajo del proveedor de servicios.

A lo anterior, súmale que tu personal también es propenso a rotar. Así como hoy puedes tener un elemento que sepa manejar perfectamente el sistema operativo que le pongas en frente, con unas horas de Googleo, puede que en unos meses el encargado del sistema se moleste porque no le estás explicando paso a pasito cómo usar vi (me ha pasado). La documentación debe estar centrada en las particularidades del sistema, del desarrollo per se. Pero esto no implica que se creará un troubleshooting para cada incidente que se te pueda presentar (y si no me crees, checa que después del troubleshooting, el instructivo de tu electrodoméstico suele traer los datos de soporte ;-) ).

Te preguntarás entonces, ¿qué es lo que se debe hacer para que todos ganemos? En lo que respecta a los procedimientos, una idea que me agradó mucho en Javanes fue la relacionada con contratos de soporte. En estos, se provee un "seguro" de X horas al mes (donde X es derivado de un análisis tanto del sistema como de la pericia del cliente), mismas que pueden o no ser consumidas. Cada que se termina un servicio, se entrega una memoria de las actividades realizadas. Esto lo puedes agregar como apéndice a tu documentación, y poco a poco te irás haciendo de procedimientos para incidentes específicos, que incluso pueden incrementar la base de conocimientos de tu equipo.

Por otro lado, en lo que respecta a los tiempos, como cliente lo que puedes hacer es tener comprensión hacia el proveedor, que al final siempre intentará encontrar el balance entre tu beneficio y el de sus empleados. Al final, encontrar ese balance es su trabajo :-) .

¿Cuáles son tus opiniones respecto a este tema?

Saludos,

jueves, 20 de mayo de 2010

Google lanza concurso para el bicentenario


Seguramente te has dado cuenta: En ocasiones, al visitar Google, en vez del logo normal aparece un logo modificado. Y aunque a veces no lo parezca, suele estar relacionado con sucesos memorables dependiendo del día o similares.

Por otro lado, este 2010, se celebra el bicentenario de la independencia para varios países de latinoamérica. Así que Google está invitando a los chicos de entre 8 y 16 años, a crear un doodle con dicha temática.

Para cada país (el concurso se llevará a cabo en México, Argentina, Chile y Colombia) se seleccionarán a 3 ganadores nacionales, y uno de ellos competirá con los de otros países. Entre los premios destacan: fondos de educación, computadoras portátiles, iPods, camisetas y que el doodle aparezca durante un día entero en la página principal de Google.

En lo que respecta a la parte social, para México, Google donará un kilo de alimentos al programa “Un Kilo de Ayuda” (un programa en México para llevar alimentos a las comunidades más pobres del país). Así mismo, para el 1er lugar, Google hará el donativo equivalente a sostener una comunidad durante un año entero.

Si tienes esa edad o conoces a alguien de esa edad que le interese participar, ¡apresúrate! Las inscripciones son hasta el día 21 de mayo. Puedes obtener más datos e inscribirte, haciendo clic aquí .

Con información de Tecnocosos .

miércoles, 7 de abril de 2010

Tirar la vaca por el barranco

De las pocas cosas medianamente interesantes que he leído en los comentarios de El Universal. Ahí les va.

Un maestro Zen y su discípulo estaban peregrinando por campos y bosques, cuando encontraron una cabaña muy pobre. En ella vivía una familia conformada por un hombre su mujer y cuatro hijos. Les pidieron alojamiento y alimento, a lo que los campesinos respondieron afirmativamente.

De muy buen gusto, a pesar de su pobreza, compartirían lo poco que tenían. Durante la cena el maestro preguntó de que vivían: El hombre le explicó que tenían una vaca, de la cual sacaban la leche diaria y un poco más que cambiaban con otros campesinos por algunos alimentos. Con lo que sobraba hacían queso y poco más. Eso les permitía ir sobreviviendo a duras penas.

Al otro día, los viajeros se levantaron antes que nadie para seguir su camino, entonces el discípulo le dice al maestro:
– Maestro, que buena gente, compartieron con nosotros lo poco que tenían. Y que pobres son. ¡Como me gustaría ayudarlos!. ¿No podemos hacer nada por ellos?.

El maestro, sin pensarlo, le dijo:
- Quieres ayudarlos?, ve y empuja la vaca por el barranco.
- Pero, maestro, ¡es su única fuente de alimentos!
- ¡No discutas y haz lo que te digo!

El discípulo pensó que el maestro había enloquecido, pero no tenía más remedio que obedecer, y así lo hizo.

Un año mas tarde, el discípulo volvió a pasar solo por la región, y lleno de remordimiento y curiosidad pasó por la casa. Al acercarse, la vio mucho más arreglada, e incluso vio mucho terreno sembrado que no lo estaba en la visita anterior. Pensó que quizá la familia sucumbió a su pobreza y otra con más posibilidades se había instalado en su lugar.

Al verlo llegar, el campesino se acercó reconociéndolo y le dijo:

- Bienvenido, ¡cuanto me alegro de verle! ¡Ustedes nos trajeron suerte! El día que se fueron se nos cayó la vaca por el barranco.
Al principio nos desesperamos pensando que íbamos a morir de hambre y lo primero que hice fue vender la carne. Con lo poco que nos dieron, compré unas semillas y me puse a sembrar para tener algo que comer los siguientes meses, pero la cosecha fue buena y pudimos vender algo en el mercado con lo que compré un par de ovejas.
A raíz de eso, mi esposa comenzó a tejer algunas prendas de lana que vende en el mercado y le va muy bien, y mi hijo mayor aprendió a trabajar la madera del bosque y hace muebles para toda la comarca.
También hemos podido comprar la casa que no era nuestra y estamos pensando en comprar mas terrenos para sembrar.

Moraleja: ¿Cuando vas a tirar tu vaca por el barranco?

miércoles, 31 de marzo de 2010

Fotos antiguas de la Ciudad de México

Sobra mencionar, supongo, que soy orgullosamente chilango o defeño o como quieran llamarle. Googleando por ahí, encontré este link que tiene muchas fotos interesantes del DF, hace ya muchos años:

Fotos Antiguas de la Ciudad de México

Espero que les guste o sirva para investigaciones o lo que sea. Para verlas en modo carrusel, chequen: aquí .

Principalmente hay de la Catedral, la Basílica y Chapultepec (bosque y castillo). Pero es algo, y creo que es normal considerando la época.

Saludos!

martes, 9 de marzo de 2010

Utilizando el chat de Facebook desde tu cliente de IM

Probablemente muchos de ustedes ya sabían cómo hacerlo, pero yo no, y honestamente no bastó una Googleada. Así que he aquí mi granito de arena para utilizar el chat de Facebook. No me agrada del todo, pero mucha gente que no comparte ninguna otra forma de contacto, sólo está disponible ahí.

El chat de Facebook se puede usar con cualquier cliente de mensajería instantánea que soporte Jabber o XMPP . En mi caso, lo estoy usando con Kopete sin problemas. Y en realidad nos dan los datos necesarios en ésta página:


En donde dice "conexión" selecciona tu cliente u, obviamente, "Otros" si no aparece listado.

Supongo que tiene algo que ver el haber elegido mi nombre de usuario ( facebook.com/tunombre ) para que sea más simple el login, ya que recuerdo que antes salía mi ID por todos lados. Así que recomiendo sacar tu nombre de usuario como primer paso.

En el caso puntual de Kopete, solamente tuve que dar de alta una nueva cuenta Jabber, poner @chat.facebook.com y el password. Los datos de conexión y privacidad no tuvieron que ser cambiados (al contrario de lo que pasa con Google Talk o cuentas de Google Apps).

Saludos,

miércoles, 3 de marzo de 2010

Cómo ver el log en la Blackberry Storm

Estaba depurando un tema que hice para la Blackberry Storm, que emulado se ejecutaba perfectamente, pero una vez en el equipo comenzaba a mostrar comportamientos extraños.


Recuerdo que en los Blackberry anteriores que he tenido, se podría presionar la secuencia "LGLG" mientras el botón "alt" se mantenía presionado, y aparecía el log, o bitácora, o como se llame. Pero a ausencia de teclado por defecto en la Storm, pues no había manera.

La solución en este caso es la siguiente:

  1. Poner el equipo en modo horizontal (landscape)
  2. Presionar el botón de "menú"
  3. Seleccionar "Mostrar Teclado" o "Show Keyboard"
  4. Mantener presionado el botón "!?123" hasta que se bloquee el modo numérico. Es decir, que aparezca un candado en el extremo superior izquierdo del botón
  5. Presionar la secuencia "/"/ . Esto es, el equivalente a LGLG si el teclado estuviera en modo alfabético

Y con esto aparece el log. Eliminando los mensajes antiguos y ajustando los parámetros a que sólo escriba los "warnings", es posible minimizar los efectos de la costumbre de este equipo de tragarse la memoria.




Espero que esta información sea útil para alguien.

Saludos,

VP

Posts relacionados