Inicio > .NET, General, programadores > Las 10 cosas que más fastidian a los programadores

Las 10 cosas que más fastidian a los programadores

buenas noches!!, el día de hoy en geeks.ms me encontré un muy buen post, que la verdad me ha hecho reír un poco, porque estoy muy de acuerdo con lo que ahí se menciona, a continuación les dejo el post original. Aquellos que se muevan por el mundo del desarrollo me imagino que estarán de acuerdo con mas de uno de los puntos aquí comentados.

Aaarg!Me ha parecido muy interesante y divertido el post de Kevin Pang, “Top 10 Things That Annoy Programmers“, en el que obtiene los factores más irritantes para los desarrolladores combinando su propia experiencia con los resultados de una pregunta realizada en StackOverflow, la famosa comunidad de desarrolladores promovida por los populares Joel Spolsky y Jeff Atwood.
Además de estar casi totalmente de acuerdo con los puntos expuestos en su post, que enumero y comento a continuación, añadiré algunos más de propia cosecha de agentes irritantes.

  • 10. Comentarios que explican el “cómo” y no el “qué”. Tan importante es incluir comentarios en el código como hacerlo bien. Es terrible encontrar comentarios que son una simple traducción literal al español del código fuente, pues no aportan información extra, en lugar de una explicación de lo que se pretende hacer. Muy bueno el ejemplo de Kevin en el post original… ¿eres capaz de decir qué hace este código, por muy comentado que esté?
    r = n / 2; // Set r to n divided by 2
    
    // Loop while r - (n/r) is greater than twhile ( abs( r - (n/r) ) > t ) {    r = 0.5 * ( r + (n/r) ); // Set r to half of r + (n/r)} 
  • 9. Las interrupciones. Sin duda, el trabajo de desarrollador requiere concentración y continuidad, y las interrupciones son las grandes enemigas de estos dos aspectos. Una jornada de trabajo llena de llamadas, mensajes o consultas de clientes, proveedores, jefes o compañeros puede resultar realmente frustrante, a la vez que la distracción que introduce suele ser una fuente importante de errores en las aplicaciones.
  • 8. Ampliación del ámbito. Una auténtica pesadilla, sobre todo cuando se produce durante el desarrollo, consistente en el aumento desproporcionado del alcance de determinadas funcionalidades o características del software a crear. Es especialmente desmotivador si, además, no viene acompañado por el aumento del tiempo o recursos necesarios para su realización.Kevin incluye en su artículo un ejemplo, algo exagerado pero ilustrativo, de sucesivas ampliaciones de ámbito que convierten un requisito factible en un infierno para el desarrollador; seguro que os recuerda algún caso que habéis sufrido en vuestras propias carnes:
    • Versión 1: Mostrar un mapa de localización

      — Bah, fácil, sólo tengo que crear una imagen; incluso puedo basarme en algún mapa existente que encuentre por ahí

    • Versión 2: Mostrar un mapa 3D de localización— Uff, esto ya no es lo que hablamos; tendré que currarme bastante más el diseño, y ya no será tan fácil partir de alguno existente…
    • Versión 3: Mostrar un mapa 3D de localización, por el que el usuario pueda desplazarse volando— ¡!
  • 7. Gestores que no entienden de programación. Otro motivo común de irritación entre los desarrolladores es la incapacidad de gestores para comprender las particularidades de la industria del software en la que trabajan. Este desconocimiento genera problemas de todo tipo en una empresa y suponen un estrés terrible para el desarrollador.
  • 6. Documentar nuestras aplicaciones. Lamentablemente, en nuestro trabajo no todo es desarrollar utilizando lenguajes y tecnologías que nos divierten mucho. Una vez terminado un producto es necesario crear guías, manuales y, en general, documentación destinada al usuario final que, admitámoslo, nos fastidia bastante escribir.
  • 5. Aplicaciones sin documentación. A pesar de que entendamos y compartamos el punto anterior, también nos fastidia enormemente tener que trabajar con componentes o librerías partiendo de una documentación escasa o nula. Si lo habéis sufrido, entenderéis lo desesperante que resulta ir aprendiendo el significado de las funciones de un API usando el método de prueba y error.
  • 4. Hardware. Especialmente los errores de hardware que el usuario percibe como un fallo de la aplicación son normalmente muy difíciles de detectar: fallos de red, discos, problemas en la memoria… por desgracia, hay un amplio abanico de opciones. Y lo peor es que por ser desarrolladores de software se nos presupone el dominio y control absoluto en asuntos hardware, lo que no siempre es así.
  • 3. Imprecisiones. Aunque Kevin lo orienta al soporte al usuario, el concepto es igualmente molesto en fases de diseño y desarrollo del software. Las descripciones vagas y confusas son una causa segura de problemas, sea en el momento que sea.Son irritantes las especificaciones imprecisas, del tipo “esta calculadora permitirá al usuario realizar sumas, restas, multiplicaciones y otras operaciones”… ¿qué operaciones? ¿divisiones? ¿resolver ecuaciones diferenciales?

    Tampoco es fácil encajar un mensaje de un usuario tal que “me falla el ERP, arréglalo pronto“… A ver. El ERP tiene cientos de módulos, ¿fallan todos? ¿podríamos ser más concretos?

  • 2. Otros programadores. Como comenta Kevin, el malestar que provoca a veces la relación entre programadores bien merecería un post independiente, pero ha adelantado aspectos que, en su opinión, hace que a veces el trato con los compañeros sea insoportable:
    • Personalidad gruñona, hostilidad
    • Problemas para comprender que hay que dejar de debatir la arquitectura del sistema y pasar a realizar las tareas
    • Falta de habilidad para mantener una comunicación efectiva
    • Falta de empuje
    • Apatía hacia el código y el proyecto
  • 1. Tu propio código, 6 meses después. Sí, es frustrante estar delante de un código aberrante y darte cuenta de que tú eres el autor de semejante desastre. Y tras ello llega la fase de flagelación: ¿en qué estaba pensando cuando hice esto? ¿cómo fui tan estúpido? uff…Este hecho, sin embargo, forma parte de la evolución tecnológica, personal y profesional; todos estos factores están en continuo cambio, lo que hace que nuestra forma de atacar los problemas sea distinta casi cada día.

Siempre acaba pagándola el más tonto...Y hasta aquí la lista de Kevin en su post, ni que decir tiene que comparto sus reflexiones en la mayoría de los puntos. Por mi parte, añadiría los siguientes agentes irritantes que conozco por experiencia propia o de conocidos:

  • Extra 1. Requisitos evolutivos, como una ampliación del ámbito del punto 8😉, que son aquellos que van cambiando conforme el desarrollo avanza y que obligan a realizar refactorizaciones, descartar código escrito, e introducir peligrosas modificaciones, afectando a veces por debajo de la línea de flotación del software. Más rabia produce, además, cuando se atribuyen una mala interpretación por parte del desarrollador de una especificación imprecisa.
  • Extra 2. Problemas en el entorno. Nada más frustrante que cortes en el suministro eléctrico, cuelgues, problemas en el hardware, lentitud en los equipos de trabajo o de acceso a información… a veces parece que tenemos que construir software luchando contra los elementos.
  • Extra 3. El “experto” en desarrollo de software. Clientes, gestores y otros individuos que utilizan frecuentemente, y sin conocimiento alguno de causa, expresiones como “Esto es fácil”, “Una cosa muy sencilla”, “¿Eso vas a tardar en hacer esta tontería?”…. A veces no es fácil hacer entender que la percepción externa de la complejidad es absolutamente irreal, y suele ser una causa frecuente de desesperación para los desarrolladores.
  • Extra 4. Usuarios corrosivos, que lejos de colaborar durante el desarrollo o la implantación de un sistema, aprovechan la ocasión para arremeter contra la aplicación, organización, jefes, compañeros, el gobierno, o lo que se ponga por delante. Es de justicia decir que muchas veces este comportamiento es debido a una mala gestión interna del proyecto, pero desde el punto de vista del profesional del sofware que sólo quiere realizar lo mejor posible su trabajo son una auténtica pesadilla.

En fin, que ya a estas alturas es fácil ver que hay bastantes cosas que fastidian a los desarrolladores, y seguro que podríamos añadir muchas más; algunas son evitables, otras son inherentes a la profesión y hay que aprender a convivir con ellas, pero en cualquier caso son un interesante motivo de reflexión.

¿Y a tí, qué es lo que más te fastidia?

Espero sus opiniones y que sumen a esta lista de lo que a ustedes como programadores les molesta o fastidia.

Post Original: http://geeks.ms/blogs/jmaguilar/archive/2008/10/19/las-10-cosas-que-m-225-s-fastidian-a-los-programadores.aspx

Fuente: http://geeks.ms

Categorías:.NET, General, programadores
  1. Edgar
    octubre 29, 2008 a las 11:55 pm

    jajaja me gusto mucho tu blog yo estoy empezando en el medio de la programacion y los sitemas y si tienes razon en especial en donde es muy molesto cuando salen errores en el sistema o que cuando estas haciendo un programa y se alarga el tiempo y te das cuenta en tus errores de programacion que afecta el funcionamiento te molestas y quieres reventar todo😄 pero en fin recuerda que no todo es perfecto …………

  2. noviembre 16, 2008 a las 6:42 pm

    Deseo compartir con ustedes una información, que puede contribuir notablemente a su formación como desarrolladores de sistemas.

    Se trata de una Documentación Técnica suficiente, como para que cualquier profesional del área de desarrollo de sistemas, que conozca como mínimo, un lenguaje de programación, una Base de Datos y un Modelador de Base de Datos, pueda construir un Sistema para un Banco o cualquier Institución Financiera.

    Esta Documentación Técnica permite el desarrollo de 6 Módulos: CLIENTES, AHORROS, CRÉDITO Y CARTERA, DEPÓSITOS A PLAZO, CUENTAS CORRIENTES Y CAJA.

    Cada Módulo está compuesto de los siguientes elementos: Las Bases de Datos y sus estructuras completamente detalladas, todos los Formatos de entrada / salida (pantallas y reportes) y la Narración descriptiva, de cada una de los procesos y transacciones que le corresponden. Todo esto explicado gráfica y didácticamente.

    En resumen, cualquier técnico que conozca las 3 herramientas mencionadas, más esta Documentación Técnica, estará en condiciones de Desarrollar un Sistema para una ONG, una Cooperativa, una Caja de Ahorros o un Banco.

    Quienes han escrito esta documentación, tienen una amplia experiencia en el desarrollo e implementación de Sistemas para Bancos.

    Comparto ésta con ustedes, porque estoy absolutamente convencido de vale la pena enterarse y analizar la posibilidad de aprovecharla o no.

    La página web es http://www.naelyn.com

    Daniel Newman

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: