Академический Документы
Профессиональный Документы
Культура Документы
Consiste en pensar más allá del problema inmediato, siempre intentando situar el
problema en su contexto global, siempre intentando ser conscientes del todo (bigger
picture).
Aquel que sólo corta simples piedras debe siempre tener las visiones de las catedrales.
--Credo de los trabajadores de Quarry.
◦ Inquisitivo: Tendés a hacer preguntas. Eso está bueno, ¿cómo lo hiciste? ¿Tuviste
problemas con esa biblioteca? ¿Qué es eso de BeOS? que escuche hablar? ¿Cómo
están implementados los enlaces simbólicos? Sos un baúl de conocimientos
diminutos, cada uno de los cuales puede afectar decisiones incluso dentro de años.
◦ Pensador crítico: Raramente tomás las cosas como te las dan, sin buscar primero
los hechos. Cuando los colegas dicen: «ésa es la manera en que se hacen las
cosas», o un vendedor promete la solución de todos tus problemas, vos te olés un
desafío. No hace algo sólo porque sea “la forma de hacerlo”.
(Primer Apartado)
◦ (2) Piensa! Sobre tu trabajo (Think! About your work). Pensar, siempre
pensar, en especial sobre el trabajo que hacemos. Siempre tratar de meditar,
entender, ver más allá de la técnica, buscar las razones, discutirlas, exponerlas
a la luz y a la crítica. Si esto te suena como mucho trabajo, entonces estás
exhibiendo la característica de realista. Esta actividad va a tomar parte de tu
valioso tiempo, tiempo que ya está seguramente bajo una tremenda presión. La
recompensa es un mayor involucramiento con el trabajo que más apreciás, una
sensación de dominio y maestría sobre un creciente rango de temas y el placer
de sentir un mejoramiento continuo. En el largo plazo, tu inversión de tiempo se
pagará a medida que vos y tu equipo sean más eficientes, escriban código que
es más fácil de mantener, y ocupen menos tiempo en reuniones.
Es un proceso continuo.
◦ (4) No vivas con ventanas rotas (Don’t live with broken windows).
Mediante esta moraleja, los autores comparan una aplicación con un edificio, en
tanto que cuando un edificio, estando deshabitado pero manteniendo una
apariencia visual agradable, se mantiene en buen estado. En cuanto se rompe
una ventana, y aparecen pintadas, en poco tiempo, todo el edificio se deteriora,
se rompen todas las ventanas, y pasa de estar deshabitado a abandonado.
Puedes pensar que ya vendrá alguien y lo arreglará, pero si todos pensamos así,
el fallo estará ahí siempre. ¿Y qué decir de una aplicación que constantemente
falla? No apetece nada ponerse a arreglarla, más cuando todo el código es un
caos, no hay dos lineas iguales, diferente nomenclatura, sin convenciones de
código. Para evitar una aplicación con todas la ventanas rotas, hay que
mantenerlas limpias desde el principio. Lo que no se ensucia, no hace falta
limpiarlo. Dicho de otro, quien no mancha, no tiene que limpiar. ¿Está claro?
Pues entonces desde un principio, vamos a ser limpios y cuidadosos con nuestro
código. Sin chapuzas ni trozos de código para salir al paso (Si es necesario haslo
orientado a objeto, bien encapsulado). Siempre con la mejor solución. Al menos,
la mejor solución que nosotros conocemos.
Comienza con un cuento muy bonito sobre unos soldados hambrientos que llegan a
un poblado donde los aldeanos también pasan hambre y son reacios a abrirles
la puerta para darles de comer, pero los soldados son muy listos, y se
aprovechan de la curiosidad de los aldeanos para obtener a
partir de una sopa de piedras un poco de su preciado alimento. A partir
de lo que aporta cada aldeano, consiguen crear una sopa “rica, rica”.
Los aldeanos no sabían que si unían sus recursos a los de sus vecinos, iban a
mejorar, tanto ellos mismos como personas cómo sus recursos (el
producto final).
Y este no es un tip, pero qué gran frase: “Un buen software hoy es mejor que
un software perfecto mañana”.
La temprana retroalimentación del software mejora nuestra aplicación, y
por esto, es mejor que vayamos haciendo entregas desde el principio,
entregas evolutivas que van a implementar de forma creciente los
requisitos del proyecto, y permitirá pulir los requisitos ya implementados.
Continuando con lo de suficientemente bueno, no hay que quedarse corto,
ni pasarse de largo. Ni mucho ni poco. El software es suficientemente bueno
cuando no tenemos que hacer nada más y no nos falta nada por
hacer. Hay que saber cuando parar, porque la sobreingeniería cuesta,
recursos temporales y económicos
Tu Portafolio de Conocimiento (Quinto Apartado).
Comprar barato y vender caro. ¿Qué crees que deberías aprender ahora
para poder ser más competitivo en el mercado, es decir, optar a un
puesto de trabajo bien remunerado? ¿JavaEE? ¿Algún lenguaje de
scripting (Ruby/Groovy) con su framework web (Rails/Grails)?
¿Quizás .Net?
◦ (9) Analiza críticamente lo que lees y escuchas (Critically analyze what you read
and hear).
Se plantea la idea de que como todo el idea nos estamos comunicando, via
email, foros, documentos, código fuente, etc… hemos de hacerlo bien. Para ello
tenemos que saber que es lo que queremos decir (¿porque no hacerse un guion de lo
que vamos a decir?), conocer a nuestra audiencia (no seamos demasiado técnicos
cuando no debemos serlo, ni viceversa), elegir el momento (seguro que cuando erais
pequeño no le pediais dinero a vuestro padre cuando estaba cansado o con
hambre, ¿verdad?), elegir un estilo (a veces hay que enrollarse, otras veces,
cuando más escueto es uno, mejor), darle una buena apariencia (una buena comida
mal presentada no es una buena comida, y que hay de esas delicatessen tan bonitas
que luego no saben a nada, …. cuidado con la ortografia), involucra a la audiencia
(mediante borradores), escucha (escucha para ser escuchado, pide consejos,
pregunta por la opinión sobre lo que has comunicado), contesta (si no
contestamos a los que nos preguntan/piden, luego nosotros seremos los ignorados). Y
de cosecha propia, hay que predicar con el ejemplo, nada de “a Dios rogando, y con
el mazo dando”.
◦ (10) Es tan importante lo que dices como la manera en que lo dices (It’s both what
you say and the way you say it)
Cuanto mejor nos comuniquemos, más influyentes seremos.
Comunícate (Sexto Apartado).
Otros (… Apartados).
◦ (11) No te repitas.
Cada pieza de conocimiento debe de tener una única e inequívoca representación dentro
de un sistema.
◦ (59) Algunas cosas son mejores cuando las acabas que cuando se describen.
No caigas en la espiral de las especificaciones, en algún momento tenemos que empezar
a programar.
◦ (66) La programación no está terminada hasta que todos los tests hayan pasado.
Queda todo dicho.