BLOG

¿Por qué a la mayoría de los programadores sólo nos gusta nuestro código?

Por [N4] jarboleya el | 13 Comments

¿Por qué a la mayoría de los programadores sólo nos gusta nuestro código?
Aunque hay excepciones, es cierto que los programadores somos muy celosos de nuestros desarrollos y muy críticos con lo que hacen los demás. ¿Por qué a la mayoría de los programadores sólo nos gusta nuestro código?

El feedback negativo

Lo primero que más nos cuesta es dar feedback positivo a lo que otro programador nos enseña sin añadirle feedback negativo acompañado de sugerencias y mejoras. Por ejemplo, nos enseñan una nueva funcionalidad en una aplicación y es muy fácil que el comentario que hagamos sea “está muy bien, PERO le falta esta funcionalidad”. A mi me cuesta dar sólo el feedback positivo ¿Y a ti? ¿Por qué nos empeñamos en aportar nuestro granito de arena siempre?

¿Nunca te ha pasado a ti recibir feedback negativo cuando estás enseñando algo con toda tu ilusión? ¿Qué has sentido cuando te lo han dicho?

Personalmente te puedo decir que yo lo hacía y desde hace un tiempo trato de corregirme y convertir en hábito el dar sólo el feedback positivo. No es fácil, porque cuando hablamos de programación nos pasa, sin embargo con otros temas no nos ocurre con tanta facilidad.

¿Qué yo tengo que usar y mantener el código de otro programador?

Volviendo al título del artículo hay un segundo aspecto muy generalizado entre los programadores. A ninguno nos suele gustar mantener el código de otro programador. Salvo por obligación preferimos rehacer el programa a nuestra manera antes de utilizar o mantener lo desarrollado por otros programadores.

¿Por qué?

Creo que hay dos grandes respuestas: el orgullo y la comodidad.

El orgullo

Es bueno sentirse orgulloso de lo que uno hace. Lo que no es positivo es creer que tus programas son los mejores del mundo y están desarrollados con los mejores criterios. Tampoco es positivo asumir que lo que yo no he programado o está mal o me costará más entenderlo que hacerlo, sin embargo, lo habitual es que entre aprovechar el código de otro programador y rehacerlo nosotros hay una clara victoria de la segunda opción.

La comodidad

Aquí es donde entra la comodidad. Nada es más cómodo que movernos por nuestras aplicaciones, todo está en su sitio, los criterios de organización y nomenclaturas son conocidos al 100% así como la relación de los objetos y procesos. Sin embargo, hacer un cambio en el programa de otro supone un esfuerzo extra, primero para conocer y comprender como está desarrollado y segundo para encontrar las cosas que están organizadas con otro criterio antes de poder modificarlas. Este desconocimiento lleva asociado el sentimiento de miedo a que la modificación que realizamos pueda tener efectos secundarios no previstos.

Beneficios

En definitiva, orgullo y comodidad se unen para hacer un frente común contra el uso de lo desarrollado por otros programadores. Y aunque, como es lógico, habrá ocasiones en que es mejor rehacer que reaprovechar, esta mecánica cognitiva hace que perdamos las grandes ventajas de usar programas de otros desarrolladores:

  • La suma de lo de todos me hace crecer más rápido.
  • Cuántas veces el código de otro programador me ayuda a aprender nuevas tecnologías.
  • Aprendo de los métodos de programación de otros y viceversa.
  • No tengo que mantener todos los módulos que uso e implanto.
  • Puedo focalizarme en mi especialidad.
  • Puedo vender mi código a otros desarrolladores.
  • Seré más rápido implantando soluciones.
  • Las mejoras de los demás mejoran mis soluciones implantadas.
  • Mi negocio será más rentable.

Obviamente obtener estos beneficios me obligan a pagar un precio y asumir que:

  • Lo que otros hacen no será igual que lo que habría hecho yo.
  • Siempre me faltarán o sobrarán cosas.
  • Debo buscar y aceptar la simplicidad que es lo complicado de conseguir.
  • Tengo que valorar el trabajo de los demás y el ahorro que eso me supone.
  • Aunque por dentro el código sea diferente, visualmente el usuario no debe notarlo.

En definitiva, aunque no sea como yo lo haría debo asumir que lo que sobra y falta se compensa con todas las ventajas anteriores. Para conseguirlo necesitaré usar herramientas comunes como:

  • Una guía de diseño de la interfaz.
  • Una guía con normas de programación.

Estamos en marcha

En Velneo ya hemos dado pasos en cuanto al diccionario de abreviaturas y normas de programación y estamos trabajando en una guía de diseño de interfaz. En todos los casos deberán tomarse como guías de recomendaciones que nos ayudarán a obtener los beneficios antes nombrados y que, a la vez, nos da flexibilidad para introducir nuestros propios criterios de programación.

¿Te sientes identificado con el perfil de programador descrito en el artículo?

Velneo es el entorno ágil para el desarrollo
de aplicaciones empresariales

PRUEBA VELNEO

13 Responses to "¿Por qué a la mayoría de los programadores sólo nos gusta nuestro código?"
  1. [N4] Pepeto dice:

    Totalmente,
    Prefiero desarrollar mis propias aplicaciones, por varias razones:
    1. conozco el codigo al 100%, casi de memoria, la posicion de los objetos, donde debo buscar y modificar y me preocupa que puedan surgir fallos no previstos
    2. miro el codigo de los demas para aprender, pero no suelo copiar y pegar lo que no entiendo, porque al final, es como si el codigo no fuera mio.
    3. no considero que lo mio sea mejor que lo de nadie, pero me cuesta menos trabajo rehacer lo mio que entender lo de otros y de paso lo organizo a mi manera.

    Pero hay que hacerse a la idea y aprender a colaborar, que tambien es muy importante.
    un saludo

  2. Víctor dice:

    Muy buen artículo.

    Recuerdo que hace tiempo trabajaba en una empresa que se decidieron a distribuir un ERP desarrollado por un laboratorio, entregaban el código y me toco hacer modificaciones. Me costo lo suyo pero nunca aprendí tanto.

    Al final acabas conociendo el código como si fuese tuyo, sabes para que se usa cada objeto y sabes reutilizarlos. En el momento que coges la dinámica puedes hacerlo con cualquier código.

    Hay que cambiar el chip, merece la pena el esfuerzo pero por regla general la comodidad nos puede y es facil caer en el error de que hacerselo todo uno mismo es lo más comodo.

    Un saludo.

  3. [N4] innovadb dice:

    Yo creo que hay otra cosa aparte del orgullo y la comodidad, y son las ganas de mejorar el software.

    Cuando nosotros publicamos BusinessCenter Free, podiamos haber reaprovechado todo ese código para la versión profesional, pero sabiamos que el resultado no iba a ser el mismo, así que se rediseñó toda la estructura de tablas, la interface, la nomenclatura de objetos etc… y si no lo hubieramos hecho a dia de hoy estarimos metiendo parche sobre parche.
    Cuando mostramos una aplicación y hacemos una demo de nuestro producto nos hacen observaciones que no siempre son positivas y eso nos hace mejorar nuestro producto, si todo son halagos y todo esta muy bien al final no mejoras el producto.

    Es nuestra humilde opinión,

    Un saludo

  4. Nacho dice:

    Buen dilema Jesús:
    y además una decisión estratégica, y por lo tanto fundamental para el futuro de la empresa. Nosotros lo tenemos claro desde el inicio de v7. COLABORACIÓN, ESPECIALIZACIÓN.
    Pero entiendo a los que optan por el otro camino, al final cualquiera el válido, si es rentable 😉

    Hay que decidir cual es la línea de negocio, y la forma de ser competitivos es la especialización, y no querer hacerlo todo uno.
    Por otra parte, si el código se hace pensando en ser usado por los demás (algo que deberíamos pensar siempre, por si acaso), no es tan complicado la reutilización. Y si funciona, por qué reescribirlo?.

    Un saludo
    Nacho

  5. [N3] ereitmann.forodeentrenamiento dice:

    La situación que describes es común en cualquier otra área, somos individuos singulares y cada cual quiere aportar su grano de arena y distinguirlo de entre los otros. Solo aquel que esta para enseñar.. debe conociendo esta condición humana, reutilizar o saber dirigir esta característica criticona.. para que el grupo al que enseña aprenda de los demás… Finalmente la base del conocimiento es esa.. todos copiamos algo de otros y le agregamos algo nuestro….

  6. [N3] cjribera.yahoo dice:

    En un ejemplo puntual de lo que se comenta, las Open Apps de Velneo, al no ser multidivisa, son en la práctica inservibles en un mundo cada vez mas globalizado (ej: al pagar a un proveedor asiático en su moneda o en dolares, el querrá el monto de capital mas intereses convenidos en esa moneda, sin importarte si tu moneda local fluctúa).

    Es decir, si ya tomar el código de otros es un reto, tomar una aplicación del tamaño de un ERP, pues supone un reto aun mayor, y mucho mas aun, si de entrada sabes que tendrás que volverlo Multidivisa.

    En Velneo se comenta que tomaría máximo 2 días el arreglo. Pero debe tomarse en cuenta que 2 dias para quienes lo desarollaron, alguien que no lo ha hecho, seguro que tardará mas.

    Ademas, se debe pensar de este modo: Si Velneo vuelve sus open apps empresariales (supuestamente, una de las mayores ventajas de la herramienta) multidivisa, invertirá 2 dias.

    Si espera que cada cliente vuelva esas Open Apps las vuelva Multidivisa, aun suponiendo que mágicamente todos puedan en 2 días, pues que tendremos algunos miles de días-hombre de trabajo invertido, cuando pudo haberse resuelto con 2 días de trabjo, y esos miles de días de desarrollo dedicarse a customizaciones especificas de cada cliente, y no a reinventar la rueda, no les parece?

    Creo que ese tipo de consideraciones debe tomarse en cuenta cuando uno espera que el codigo propio sea reutilizado, no creen?

  7. [N4] innovadb dice:

    @cjribera. En este caso el tema de la multidivisa es la parte fácil, pero la cosa se complica con los impuestos, con los precios con iva incluido, con el efecto de los documentos en según que almacenes, con si los clientes son comunes a todas las empresas o delegaciones, con la fecha de inicio del ejercicio y mil cosas mas.

    Esta fué la razón por la que nosotros no reutilizamos nuestra propia openapp, y la versión de pago tiene en cuenta todo esto y mucho más desde que nació.

    Un saludo

  8. [N3] cjribera.yahoo dice:

    @innovadb, pues entonces estas dando toda la razón a quien no quiere reutilizar algunas open apps.

    Si ustedes, con toda su experiencia en Velneo, no quisieron reutilizar su propia Open App, ya me contarás que ánimo va a tener otro desarollador en hacer su ERP a partir de ellas.

    Al menos en el caso de las Open Apps empresariales (vGestion, vConta y demás), que si, que son muy válidas como ejemplo y para aprender a usar Velneo.

    Pero yo pienso que tienen que estar bastante mas completas, antes de pensar siquiera en intentar reutilizarlas, especialmente si uno necesita proveer un ERP realmente profesional, que pueda usarse sin reparos en el mundo corporativo.

  9. Innovadb dice:

    @cjribera

    Precisamente no hemos reutilizado BusinessCenter FREE al entender que no es una plantilla profesional para poner en explotación sino que ha sido un desarrollo para poner al servicio de la comunidad como recurso de programación y aprendizaje para aquellos que se acercan a Velneo.

    Por eso mismo que tú dices hemos desarrollado la versión profesional BusinessCenter PRO, que sí está contemplada para poner en explotación de forma inmediata y contemplando las funcionalidades que comentas, multidivisa, multiempresa, multialmacén, tallas y colores, lotes y caducidades, numeros de serie, etc, etc.

    Con esto queremos decir que sí se puede reaprovechar el código, pero como bien dices hay que valorar si lo que se te ofrece es válido para tu negocio y tus clientes que al final son los que te dan de comer.

    Al final todos buscamos la manera de ser mas rentables y productivos y si me dan algo hecho que se adapta a lo que necesito prefiero utilizarlo que empezar de cero.

    Si estás interesado en ver una demo en funcionamiento estaremos encantados de enseñarte su potencial.

    Un saludo

  10. [N1] Nacho dice:

    @cjribera
    Estamos mezclando cosas. Una cosa son las Open Apps gratuitas, que pueden ser ejemplos para aprender, y otra cosa es hablar de módulos profesionales, con una base común para poder integrarlos entre sí.

    El fondo de la cuestión es si queremos hacerlo todo nosotros o queremos colaborar con otras empresas, para que cada una pueda tener una especialización, y pueda integrar módulos de otros en sus desarrollos.

    Por ejemplo:
    Si una empresa está especializada en CRM, para que voy a desarrollar y mantener yo uno mío.

    Claro que para eso tenemos que tener nexos comunes. El cliente no puede notar que son de padres totalmente distintos. Y los nexos comunes, entre otros, son:
    – Metodología de programación
    – Interfaz
    – Una parte de estructura de datos común. vBase.

    Luego por otra parte están vConta, vGestion,….
    Hay, estamos totalmente de acuerdo, que se necesitan mas funcionalidades para que sea una solución profesional. Y que sería estupendo que esas mejoras las incorporase de serie (desarrollado en “2 horas x Velneo”), y todos nos aprovechásemos de ello (y nos ahorrásemos esa 2 +x horas todos).

    Pero Velneo no es una empresa de desarrollo, por eso deben ser empresas de desarrollo las que aporten ese plus. Por que además están en contacto directo con la problemática.
    de las empresas

  11. [N1] Nacho dice:

    Por lo tanto por una parte están los nexos comunes, que es de lo que trata este post (metodología, interfaz), que deben existir para poder llegar a un segundo paso, en el que poder hacer negocios juntos (unas empresas con otras en colaboración)

    Al menos nosotros pensamos que ese es el camino.

  12. Lo que está claro que vBase es la clave y que todos tenemos que usarla si queremos colaborar entre nosotros. Yo creo que vGestión y vConta serán unas buenas herramientas para que todos podamos producir más y mejor.

  13. [N4] Emilio_garcia.gmai dice:

    Totalmente de acuerdo, aunque hoy día la vBase es mejorable el enfoque para mi está claro hay que utilizarla si queremos compartir en el futuro y poder integrar con vGestión y vConta

Deja un comentario

Esta web utiliza cookies. Si continúa navegando acepta dichas cookies y nuestra política de cookies. Gracias. ACEPTAR

Aviso de cookies