Opinion: Fracasando en Rails

Homer Wail FailDeseo compartir en este artículo mi opinión sobre la forma de acercarse a la plataforma de Ruby on Rails (o cualquier otro framework mágico) y sobre los peligros que conlleva para el desarrollador, equipo y cliente el adoptarlos. Quiero iniciar aclarando que “nadie es perfecto” y que creo firmemente en que el “primero libre de pecado, lance la primer piedra”. Aclarado lo anterior, confieso públicamente que después de mas de diez años de desarrollar software y la misma cantidad de echar a perder gran cantidad de proyectos, tengo la confianza para hablar sobre algunos de los peligros a los que se enfrenta esta nueva generación de desarrolladores.

Tener una cuenta en Facebook no te hace un webmaster

Nos encontramos en una época en la que el desarrollo web está en transición, donde los nuevos desarrolladores son jóvenes que han obtenido todo su conocimiento sobre el desarrollo de aplicaciones web en base a incontables horas jugando en Facebook o viejos desarrolladores intentan dar el salto desde Visual Basic 6 o Java. Ambos grupos se consideran capaces de conquistar al mundo y ambos se acercan a las herramientas “mágicas” con la arrogancia del ignorante.

Su falta de conocimiento los hace creer que tienen el derecho a exigirle a la herramienta que generé el próximo “twitter”, con solo presionar un botón o correr un comando en la consola. Y al no obtener mas resultado que el soñado, descartan la herramienta por “rígida”, “complicada” o “…por no dejarles hacer lo que quieren”.

Si perteneces a este grupo deseo abrirte los ojos en un punto. Los frameworks mágicos no fueron desarrollados para “usuarios finales” (en este caso desarrolladores nivel 1) , estas herramientas fueron desarrolladas para evitar que desarrolladores experimentados (Nivel 3), no desperdiciaran su tiempo re inventando el agua con azucar. La mayoría de funciones, procesos y forma de trabajo provienen de incontables horas de trabajo en las cuales los desarrolladores del framework plasman su conocimiento y su experiencias bajo las convenciones de la aplicación. Por lo tanto no debes de sorprenderte si el framework no actua como un “wizzard” y hace todo por ti, solo dejándote el ponerle bonitos colores a tu aplicación. Antes de dar rienda suelta a excussas sobre porque el framework no funciona mejor LEE la siguiente sección.

¿Cuanto crees saber?

Ya hace algún tiempo compartí con ustedes el artículo “Lo que un desarrollador Rails debe saber.“, donde hago mención sobre LAS tecnologías que se deben de dominar para considerarse como un buen candidato para desarrollo sobre el framework. La características siguen siendo válidas, pero me gustaría añadir “EXCELENTE, manejo del idioma Ingles”.

Despues de leer ese post, les hago la siguiente pregunta ¿Podrían ustedes las manos en el fuego por lo que ustedes creen saber?

He tenido la oportunidad de entrevistar a muchos y muchas “profesionales” del desarrollo web, los cuales al hacerles unas simples preguntas me han mostrado un verdadero desconocimiento y pasión por este arte. Personas que me dicen haber dirigido grandes grupos de trabajo, que ni siquiera se mantienen actualizados sobre las últimas tendencias en el desarrollo Web, estándares, herramientas, etc, etc.

Cada framework tiene su set de herramientas que debes saber antes de poder utilizarlo con fluides. NO INTENTES iniciar un proyecto en producción si no las DOMINAS. La única consecuencia de usar un arma cargada sin saber lo que haces es que te PEGUES UN TIRO EN EL PIE.

Y finalmente por hoy

No todo tiene cara de clavo…

Parte de las cosas que mas me costo aprender fue la de aceptar que la experiencia de mis mayores, suele ser mas importante que la cantidad de conocimiento que yo pueda acumular. Como buen entusiasta de la tecnología quiero probarlo todo y como buen fanboy quiero usar mi herramienta favorita para todos mis proyectos.

Si tienen mucha suerte o saben elegir bien sus batallas (… insertar experiencia aquí) podrán hacerlo. Recomendando a sus clientes las herramientas con las cuales ustedes o su equipo son más productivo es clave para el éxito del proyecto. SIN EMBARGO…

Llega el momento de ser humilde y reconocer que tu herramienta favorita simplemente no da la talla, o todavía mas importante, TU O TU EQUIPO no son lo suficientemente experimentados para dar la talla. Se que escuchar esto duele, pero despues de haber perdido el hígado bajo el stress de intentar completar un proyecto, con una tecnología que medio conocia (o creia conocer), con gente al rededor que nunca ha hecho algo igual, con meses de atraso debido a “BUGS” de la aplicación, te puedo decir que no vale la pena.

Si tu o tu equipo se creen lo suficientemente buenos, deténganse a pensar por un minuto y analisen si el riesgo vale la pena. En ocaciones es mejor intercambiar un mega proyecto por varios mini proyectos lo cuales te ganen experiencia, dinero y clientes felices. Creeme tu higado te lo agradecerá.

—-

Ok eso es todo por hoy… :D   Espero que esta reflexión les ayude a saber en donde están parados, y eso los lleve a proyectos exitosos y una vida mas feliz.

Share and Enjoy:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Blogplay
  • BarraPunto
  • Identi.ca

17 Responses to “Opinion: Fracasando en Rails”

  1. arigalt Says:

    Muy cierto todo lo que mencionas, y realmente nunca hay fracasos porque siempre hay muchas cosas que aprender.
    Me gusto mucho la parte de “que te PEGUES UN TIRO EN EL PIE.”

    Exitos y saludos.

  2. Javier Alvarez Says:

    Sip, el cuco es cuanto duele aprender.

  3. Cristian Vaquez Says:

    Muy bueno el post, y tienes mucha razón si se aspira a programar Rails TIENES que tener un muy buen nivel de ingles, los mejores libros, manuales, foros y screencast estan ingles (como no aprovechar los valiosos videos de railscasts.com).

    Por cierto este blog es de lo mejor que se consigue en español, no me canso de recomendar tus video para aprender ruby, pero el dia 1 y 2 ya no se ven podrias revisarlos por fa, son un gran recurso para los que empiezan.

    Saludos,
    Cristian Vasquez
    Medellín – Colombia

  4. Alexander Morales Says:

    Buenisimo JManGT, tomare en cuenta tus comentarios, en mi caso, solo soy un principiante asi que tengo que formarme desde el principio para poder lograr un buen desarrollo, saludos!!!

  5. Javier Alvarez Says:

    @Cristian: Si tengo unos problemas con el server donde se subieron, estoy moviendolos a Vimeo para que todas queden juntas bajo el canal GuateOnRails. Para la otra semana ya estaran listos para que los puedan disfrutar.

  6. Matías Says:

    Javier

    Tengo que reconocer que me deprime un poco tu post… porque me afecta directamente. No soy profesional informático, soy recién licenciado de veterinaria….
    Hace un año me ofrecieron trabajar como administrador Moodle y acepté el reto.. Aprendí sobre servidores, a usar la consola, php (html ya sabía), css, mysql (tuve un pequeño curso sobre modelamiento con mysqlworkbench).. e incluso he hecho formularios y un mailist para enviar spam..

    Luego decidí escribir mi tesis de veterinaria como proyecto de una base de datos de registros clínicos en línea (algo muy necesario en mi país para generar análisis epidemiológicos). No con la intención de desarrollarla 100% yo.. pero almenos comenzarla…

    Con el tiempo he aprendido más, he leido algo de ruby, visto screencast (felicitaciones nuevamente por los tuyos) y me he entusiasmado con la idea de armar yo la base de datos de prueba (básicamente un crud) para cumplir con la tesis.

    Como soy un desarrollador de nivel 1, (aunque quisiera aprender más) pensé que me podría aprender rails y así también obtener un código más limpio del que haría en php (sin framework).

    Pero leo este post… y pareciera que la programación está muy lejos de mi alcance.

    que piensas? se puede programar en rails sin ser profesional?

  7. Javier Alvarez Says:

    @Matias: tranquilo no es de muerte la cosa!!! :D

    El objetivo del post es el abrirle los ojos a las personas que como tu se inician en el mundo del desarrollo web y al mismo tiempo lo hacen con una herramienta como Rails.

    Al contrario de desanimarte, tu actitud debe de ser de “Si ahora no se, mañana si sabré!!”

    Si en este momento eres un desarrollador nivel 1, pues en horabuena! tienes la oportunidad de aprender bien desde el principio, sin vicios que después te generen bloqueos mentales que no te permitan aprender mas. El admitir humildemente que uno no lo sabe todo es el primer paso hacia la excelencia.

    Te recomiendo dos cosas:

    1. Si en este momento no te sientes confiado por ejemplo en “que es programar” o en “el lenguaje ruby”, te recomiendo que leas este libro:

    Learn to Program, 2da edicion de la editorial Pragmatic (http://pragprog.com/titles/ltp2/learn-to-program-2nd-edition) (si buscas alguien tendra el pdf ;) )

    con este libro, matas dos parajaros de un tiro. Primero mejoras tus conceptos de programación y segundo aprendes Ruby al mismo tiempo, lo cual ya es una super ganancia.

    2. No dejes que nadie te diga “que no puedes”, ni siquiera tu mismo.

    Animo con tu proyecto!!

    Si tenes dudas de como hacer las cosas NO DUDES en dejar un comentario indicando tu problema. Con gusto vemos de ayudarte o si el problema merece una explicación mas detallada lo volvemos un screencast ;)

    Saludos y espero saber pronto de ti.

  8. Matías Says:

    Javier

    Gracias por el aliento

    Me conseguí “Learn to Program”.. lo había leído en su versión online, pero esta tiene datos interesantes…. como que Chris Pine le puso Ruby y C a sus hijos!!!!! (Dios mio!).. así que seguiré con la tarea de revisarlo, sobretodo la parte de las clases, que es lo más complejo y que creo que tengo que tener más claro.

    Ahora lo difícil creo que es el salto a desarrollar aplicaciones web con Rails. ¿Con que libro crees que tengo que seguir?, ¿Otro que profundice sobre Ruby?… ¿algo sobre REST? (ni siquiera tengo muy claro lo que es REST), ¿será necesario que revise JavaScript? (lo conozco pero en general me enreda un poco ese lenguaje) ¿O trato de comenzar con Rails? (Debo decir que me tienta leer “Agile Web Development with Rails, The Pragmatic Programers (2nd, 2007)”, pero talvez me recomiendas seguir con otra cosa).

  9. Javier Alvarez Says:

    Cuando ya tengas bien claro que es el lenguaje Ruby. Te recomiendo profundizar en el estudio de HTML y de Css. Esta realmente es la base de Rails, recuerda que al final esto es lo que vas a generar con el framework.

  10. Matías Says:

    HTML y CSS los conozco bien (y también php que supongo que funciona de manera similar a ruby en la web)..
    Lo que me preocupa más es javascript; ¿Es necesario manejarlo tan bien? (entiendo el lenguaje javascript, pero no lo manejo al dedillo).

    A todo esto, no se como agradecer tu colaboración (además de difundir tu blog entre los pocos interesados en la programación que conozco)….
    Sin dudas aparecerás en los agradecimientos de mi tesis.

  11. Javier Alvarez Says:

    Javascript no es TAN necesario a menos que desees agregar AJAX a tu aplicación. Si esa es tu intención si te recomiendo una buena repasada y sobre todo estudiar Prototype y Scriptaculous que son las dos librerias que rails trae por default.

    Si crees que ya estas por encima de ese nivel y que realmente ya entiendes ruby entonces puedes ya meterte de cabeza a rails.

    La mejor manera que he encontrado para empaparte bien es por medio de los videos de http://peepcode.com

    http://peepcode.com/products/rails-from-scratch-part-i
    http://peepcode.com/products/rails-from-scratch-part-ii
    http://peepcode.com/products/rest-for-rails-2

    y si lo que quieres es profundizar en el framework entonces el libro The Rails Way de Obie Fernandez es de las mejores referencias a profundidad que he encontrado

    http://www.rubyinside.com/the-rails-way-by-obie-fernandez-679.html

    Ojo!!! esta documentación y posiblemente la mayoría de documentos en la red, CASI van a quedar obsoletas con la entrada de Rails 3. Así que si vas a entrarle al ruedo este es el momento de obtener tus bases antes de la actualización.

  12. Felipe Hernández Says:

    Javier excelente Articulo, yo en mi caso soy un joven de 16 años q apesar de mi edad, Manejo 7/10 html y css pues se me facilita, desde el año pasado conoci ruby on rails y me parecio un execelente framework eh leido muy poco sobre ror, y la verdad me llama muchisimo la atencion ademas ya q el otro año voy para la universidad si Dios quiere y mi inclinación es a estudiar Desarrollo Web (No tengo bn claro el nombre de la carrera que es de Desarrollo Web), en conclusión me gustaria que me ayudaras con libros online, por ultimo segui un screencast en ingles de como crear un blog y lo logre esto me motivo. más espero tu respuesta saludos.

    Felipe Hernández
    Colombia

  13. Javier Alvarez Says:

    Hola Felipe: Libros online… esta dificil :( Realmente la mayoria del contenido que encuentras esta en blogs o en articulos de sitios especializados. El resto esta en libros en pdf que puedes adquirir legalmente en sitios como el de Pragmatic Programers (http://pragprog.com/titles) o en cursos en videos como los de Peepcode (http://peepcode.com/). Por otro lado te sugiero visitar el sitio de Railscasts (http://railscasts.com/) el cual siempre tiene lo último en tips sobre Rails.

    Espero que esto te ayude a seguir avanzando en el uso de Framework. Yo por mi parte espero liberar mas videos la proxima semana, asi que atento al sitio.

  14. Felipe Hernández Says:

    Muchas gracias por responder tan rapido, si railscasts.com ya estube mirando videos , gracias de todas formas esperare tus videos saludos

  15. Omar Says:

    Jejeje….Yo vengo de Java, y francamente lo que puedo decir (ya que en Java es mucho de prueba por aquí y luego por acá, debido a que no hay un framework web default) es que lo uno necesita es saber las bases.

    ¿Quieres aprender web?…Sigue esto:
    HTML (inserte aquí versión más actual y version más utilizada)
    JavaScript (ahora páginas sin JS son incompletas).
    CSS
    XML

    Luego, buscar framework/lenguaje:
    ¿Eres programador de un lenguaje?, entonces investiga si hay un framework que te permita trabajar en web.
    ¿No eres programador?, aprende primero lógica de programación, seguido de un lenguaje de programación (el qué más te llame la atención).

    Seguido de:
    ¿Me convence este framework? y ¿Me permite hacer las cosas que necesito cómo necesito hacerlas?…Estos son dos factores interesantes, una vez me dijo un profesor del a universidad: “Para matar una mosca no hace falta un F-15″.

    Y por útimo, especializarse:
    Alguien alguna vez me dijo: “eso de decir ‘hola mundo’ en python, ruby, perl, java, c, lisp, prolog, bash, etc. no te hace mejor programador.”

  16. Obelich Says:

    Esta requete bien perron el post hehehe ya le hice publicidad en las redes sociales tambien a los screencast que estan haciendo sobre Ruby espero con ancia los de Rails cuando se termine los de Ruby ^_^

  17. Isman Says:

    Muy bueno y muy realista un abrazo desde argentina

Leave a Reply

Promoviendo el uso de Software Libre para Desarrollo Web