martes, 22 de noviembre de 2011

Android en el ITH



El día Miércoles tuve el honor de ser invitado al Instituto Tecnológico de Hermosillo, y particularmente al Congreso Proxy, para dar un breve taller de introducción al desarrollo en Android. Los temas que vimos fueron, principalmente: Actividades, Animaciones, Listeners, Permisos, contenido del Manifiesto, e Intents.


Creando PDFs en Railo para fuentes en Japonés, Chino y Koreano



Me encontré con un problema al migrar de ColdFusion MX hacia Railo, con la etiqueta de cf_document al exportar reportes o documentos en PDF.


Ya no voy a escribir de política

... Aunque me da muchísima hueva cambiar el encabezado de este blog.

- Bueno, wey - dirá usted, apreciable y finísimo lector - ... ¡si tú ya ni escribes aquí!

Pos por enésima ocasión tengo la intención de volver a hacerlo. Pero, de nuevo, nada relacionado con política. Entre la situación del país, ver a varios amigos enajenados o en modo zombie hacia un lado o hacia el otro...

Yo me retiro. Esperen estupideces, ironías, cosas técnicas... Pero no. Política, paso.

Gracias :D .

miércoles, 6 de abril de 2011

Integrando OpenFeint en Android



El fin de semana comencé a integrar algunos de mis juegos en Android con OpenFeint. Si bien la API y funcionalidades para Android es exageradamente limitada al compararse con la de iOS, después de ponderar la cantidad de usuarios, variedad de juegos, reconocimiento y estabilidad, llegué a la conclusión de que era la opción más viable.

No pienso cubrir aquí detalles de cómo incluir la librería de OpenFeint (SDK) en los proyectos. Es algo estúpidamente sencillo. Lo que quiero que veamos es un flujo básico de integración. Aclaro que estoy usando la versión 1.8 del SDK con la interfaz web existente al día de hoy. Así que los puntos son algo así:

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,

Posts relacionados