- The Mythical Man-Month

The Mythical Man-Month nos narra la historia de la creación de la IBM System/360. El “project manager” nos cuenta los errores y aciertos que tuvieron al crear el primer sistema operativo avanzado de la historia. Una época donde no se sabía nada de como desarrollar proyectos empresariales masivos y cómo abordaron cada solución, no dice que no tuvieron retrasos, dice lo que hicieron para sobre llevar esas problemáticas y que soluciones plantearon.
Muchas veces el problema esta ante nuestros ojos y no sabemos interpretarlos. Tu proyecto esta atrasado pero no sabes el motivo.
- Ya contrataste diez programadores nuevos para el proyecto que se entrega en un mes.
- El programador “nivel dios” es el que se encargará de lo más difícil pero no se ve avances.
- Todos se van a las 10 de la noche y entran a las 7 de la mañana.
- Trabajan de lunes a domingo y la presión esta que explota.
- No contribuyes a que continúen aprendiendo, la empresa promete cursos pero nunca los ve
- El departamento no ve el dinero que se destina cada año a mejorar los equipos o procesos.
- No te importa evitar las pruebas unitarias pues son innecesarias
- No documentas porque sabes que hay un programador genio que se lo sabe de todo en el equipo.
- Te molesta que los desarrolladores tengan dudas sobre los procesos y las decisiones que tomas.
- No hay comunicación y tu equipo no es capaz de entender los requerimientos de un cliente, pues no tienen contacto con el cliente.
No lo se, todo eso suena a que hay un problema grave de planeación, valoración de los desarrolladores y el modo en que se distribuyen tareas. Ninguna metodología podría ayudarte con eso.
2. The pragmatic programmer

The pragmatic programmer es un libro que me fascina y no puedo dejar pasar la oportunidad de recomendarlo. Este libro nos explica la verdadera ciencia detrás del desarrollo ágil, clásico y la forma en que se debe desarrollar software.
No importa si es un proyecto critico o no critico, no importa si tu software utiliza mil millones de metodologías o si usas simplemente “XP”. Lo que importa es lo que esta en el corazón de tu cultura organizacional y el modo en que tus desarrolladores piensan.
Puedo decir que desarrollar software es desarrollar arte, y para desarrollar arte debes tener la habilidad de observar lo que otros no pueden ver. Pensar diferente pero con raciocinio y es ahí donde muchas empresas fallan. No piensan de forma lógica y no usan su sentido común. Están casados con la idea de que un documento, una certificación o que una organización las calificará pensando que con eso será suficiente para decir que ellos desarrollan buen software.
De nada va a servir todo lo anterior si no implementas el sentido común: en vez de forzar a que tu organización se adapte a una metodología, estrategia o regla, mejor adapta las reglas, la metodología y estrategias a tus propios procesos. No todas las empresas tienen las mismas necesidades, ni los mismos tamaños, ni los mismos objetivos. Nunca te va a servir lo que hace Google (al 100%) pues es un sector, un público, una cultura, un país y un producto diferente.
Scrum, Lean, Kanban son procesos que fueron adaptados para cubrir las necesidades de empresas diferentes; luego alguién vino y les puso un nombre, compartió los procesos de su empresa y le llamo al documento de word “Metodología x”. Y estoy seguro, que dichas metodologías no encajan al cien por ciento en tu equipo u organización. Es mejor aplicar una estrategia diferente, toma lo que te sirve de cada metodología y adapta la. No va a funcionar a la primera por lo que tendrás que iterar y refinar el proceso hasta que encaje con lo que necesitas. Pero que cada proceso que implementes sea realmente necesario, que no sea artificial y este plenamente justificado, que el objetivo de la misma sea reducir tiempos y refinar la calidad de entrega y comunicación.
3. Mastering regular expressions

Aprender Regular Expressions en un principio puede aparentar ser algo complejo por la gran cantidad de simbolos necesarios:
/\b[A-Z0-13._%+-]+@[A-Z0-13.-]+\.[A-Z]{02,}\b/i;
Sin embargo puedo decir que no es nada difícil, basta con:
- Aprender los constructos
- Palabras claves
- Símbolos
- Entender el “matching” de los textos
Además dependerá del uso que pretendes darle al ReGEx.
- ¿Es algo personal que no implica criticidad?
- ¿Trabajas en yahoo?
- ¿Pretendes que sea algo pequeño y no importa si es eficiente?
- ¿Pretendes que sea robusto, seguro y eficiente?
- ¿Que lenguaje de programación utilizarás para aplicarlo?
- ¿Qué tipo de motor de RegEx pretendes implementar?
Desde mi perspectiva siempre es bueno saber si existen constructos avanzados para hacer ciertas cosas en un texto sobre todo si pretendes utilizar RegEx para una aplicación profesional donde la cantidad de procesamiento de texto es brutal y el tiempo de espera es crítico. Esta regla te la puedes saltar si es de uso personal, donde esperar unas cuantas décimas de segundo no es problema.
Si pretendes usarlo intensivamente en aplicaciones profesionales entonces deberás tener mucha conciencia sobre como funcionan los motores de regex, las técnicas y la manera en que se hacen “match” y “no match” en las expresiones regulares.
Mastering Regular Expressionsescrito por uno de los pioneros (Jeffrey E.F. Friedl) más importantes en el desarrollo de librerías oficiales de “Expresiones regulares“ en diversos lenguajes de programación, además de que nos cuenta su aventura desarrollando sistemas para Yahoo usando RegEx y perl. Este libro te explica y ayuda a entender el modo en que funcionan los motores de RegEx, los constructos básicos y los más avanzados. Nos introduce al mundo interno del procesamiento con pilas de los diversos motores que existen y nos dice las diferencias entre los que son marcados como “POSIX”. El libro nos muestra como implementar REGEX avanzado en los lenguajes: java, .NET y perl.
Antes de terminar, debo mencionar que DuckDuckGo posee una buena referencia sobre ReGex, basta con escribir “regex cheatsheet” en el buscador:

Ejemplos de la vida real que usan expresiones regulares puras y duras sonYahoo! y duckduckgo.com


Leave a Reply
You must be logged in to post a comment.