domingo, 5 de octubre de 2008

Domando monos salvajes usando source control

Es pleno siglo XXI y todos estamos de acuerdo que el control de versiones es una práctica fundamental para el desarrollo de software, verdad?

"Sí" dicen algunos por reflejo pavloviano, "pero en este proyecto no es necesario porque..."

"...no hay tiempo."
"...tenemos que aprender cómo se usa."
"...porque es un relajo darle acceso a cada quién."
"...alguna vez la usamos, pero ya no."
"...no tenemos red."
"...daría lo mismo." (esta es genial)
"...porque NO." (esta es la más razonable)

Y así ad infinitum.

Estos días me ha tocado estar de consultor de sistemas en varios proyectos en varios tipos de empresas (bancos asquerosamente grandes y empresitas donde el papá es el gerente y la mamá la "directora de operaciones") y encuentro sumamente alarmante que managers y ciertas especies de developers hagan todo tipo de racionalizaciones pintorescas para no usar ni siquiera SourceSafe.

Y ni hablemos de cómo retuercen las caras con CVS o SubVersion.

Pero lo más hermoso es cómo brincan como monos cuando pierden los cambios, pierden los fuentes, arruinan los únicos originales, no pueden compilar por conflictos de versiones o mejor aún, se hacen un relajo pantagruélico para integrar los cambios de varios developers a un mismo fuente.

Lo que sí no es muy hermoso es cuando te hacen brincar a vos como mono por algo perfectamente evitable.

Por qué nos hacemos esto a nosotros mismos? Por qué chingamos así a nuestros semejantes?

Sencillo: No nos gusta seguir el principio de "invertir 10 hoy para ahorrar 50 mañana."

Y sufrimos. A lo grande.

Lo queremos todo ya y vivimos apresurados no porque no haya tiempo, sino porque no sabemos administrarlo.

Eso me recuerda aquel día en que ya casi le vendía la idea a un manager de que usáramos SourceSafe...

* * *

Batfink: "Será que después de almuerzo me podrías pasar los cambios para que los subamos al SourceSafe?"

Manager: "Subámoslos de una vez, lo malo es que no me acuerdo donde están."

*relajo general para buscar en su laptop con Windows Vista los últimos archivos modificados*

*al fin los encuentra*

Manager: "Cómo los subo?"

Batfink: "Abrís el proyecto, te conectás a la db de SourceSafe, después hacés el checkout y..."

Manager: "Y no se puede hacer más rápido?"

Batfink: "Si querés los subo yo."

Manager: "No, yo los quiero subir pero sin tanta cosa. No puedo borrar el proyecto en el SourceSafe y volverlo a subir todo otra vez?"

Batfink: "Pues... sí, pero la idea del SourceSafe es ir guardando las modificaciones que vas haciendo en los archiv..."

Manager: "Aquí sólo le doy delete."

*le da delete y borra todo el proyecto de 350 megas*

*SourceSafe se bloquea mientras borra*

Batfink: "Ignoro cuantos archivos había ahí."

Manager: "Parece que había bastantes... Hijuela! Yo me tengo que ir a una reunión!"

Batfink: *disimulando el encabronamiento* "Si querés déjame los archivos y yo los subo."

*no era eso lo que había dicho al principio?*

Manager: "Te los voy a dejar en el desktop de esta máquina."

Vuelvo de almuerzo, los archivos no están en ningún desktop y el proyecto que contenía los programas con los que debía trabajar esta tarde/noche están en el éter de la opción "destroy permanently" del SourceSafe. Y del manager, ni señas.

Brinco como mono.

Backups? Ese es tema de otro post.