Desarrollo de software. Ed Yourdon. El camino es la calidad del software.

Nadie puede poner en duda el prestigio de Edward Nash Yourdon (más allá del hecho de que fallara sus predicciones sobre las consecuencias del efecto 2000), un profesional que lleva trabajando más de 45 años en el mundo del desarrollo de software, tanto en el ámbito privado como en la investigación universitaria y que ha sido autor o coautor de más de veinticinco libros y quinientos artículos.

Una trayectoria tan larga, lo llevó en un principio al trabajo e investigación en análisis estructurado y más tarde al diseño y programación orientada a objetos. En los últimos años sus trabajos están más orientados a la gestión de proyectos y a las metodologías de desarrollo.

En su libro “Rise & Resurrection of the American Programmer” hace la siguiente reflexión: “Si crees que tu jefe no sabe lo que hace o que tu organización desarrolla una mierda de software de baja calidad que te avergüenza, entonces márchate”.

Os pongo la cita original: “If you think your management doesn’t know what it’s doing or that your organisation turns out low-quality software crap that embarrasses you, then leave.”

Ya hice referencia a este tema en el artículo: “Desarrollo de software. Bob Martin. Artesanía sobre ejecución” en el que indicaba que este autor propuso un quinto principio al manifiesto ágil, que inicialmente se denominaba “Artesanía sobre mierda” y más tarde, para ser más políticamente correcto, se cambió su denominación por “Artesanía sobre ejecución”.

Pensar solo en sacar trabajo adelante sin tener en cuenta en la factura de los desarrollos es uno de los principales males de nuestra profesión y que hace que nuestros proyectos estén generalmente infravalorados. Cuando nos demos cuenta de que la mejora de nuestras condiciones pasa por el desarrollo de software de calidad, probablemente las circunstancias empiecen a cambiar.

11 comentarios
  1. Ricardo dijo:

    Los modelos de calidad que yo conozco son CMAMI e ISO, y no me parece que sea muy compatible con el manifiesto ágil, que oone en segundo olano los procesos y la planificacion. A parte, se supone que la baja calidad de hoy es por la artesanía.

    • jummp dijo:

      La calidad puede ser vista desde muchos puntos de vista.

      En el mundo del software y en mi opinión la calidad tiene que ver principalmente con conseguir la satisfacción del cliente. En un segundo plano se sitúan otros factores como: el acabado técnico del producto (en el sentido de que sea lo más sencillo de mantener posible), el hecho de que desarrolle con un presupuesto acorde a la naturaleza del proyecto y en unos plazos razonables.

      Ed Yourdon en su cita se refiere principalmente a calidad como cumplimiento de las expectativas del usuario con un buen acabado técnico (lo primero no implica lo segundo como bien indica Bob Martin).

      El proceso es una herramienta, pero no el fin. Seguir un proceso o metodología no implica un producto de calidad, hay que sumar más factores (entre ellos la elección de la metodología adecuada al sistema que se va a desarrollar).

      La artesanía no es Cowboy coding, antes al contrario. Artesanía es la capacidad de adaptación de un proveedor a las necesidades de un cliente y de un proyecto (es una definición demasiado general, pero puede valer) y no es culpable en absoluto de una percepción en el mercado de una baja calidad en los productos, de hecho si un desarrollo es de baja calidad no debe considerarse artesano por más que la empresa así se considere.

      La artesanía es más una forma de enfocar los proyectos de desarrollo de software y las relaciones con el cliente, buscando una factura técnica acorde a las posibilidades del proyecto.

  2. Ricardo dijo:

    Perdona que mi anterior mensaje no estuviera bien escrito, lo hice desde un móvil. y algunas palabras me las ha cambiado.

    Al asunto…
    Sinceramente, las palabras calidad y artesanía no me acaban de cuadrar en la misma frase.

    En cualquier clase de calidad del software de ingeniería informática, precisamente se enseña a alejarse del concepto de artesanía.
    De hecho, CMMI nivel 1, es el peor nivel, que es precisamente un taller de artesanía donde hay caos, descontrol, no repetibilidad…
    http://en.wikipedia.org/wiki/Capability_Maturity_Model_Integration

    ¿Dónde se aplica la mejora continua (o filosofía Kaizen) con unos artesanos que cuando se van de la empresa se llevan todo lo aprendido dentro de sus cabezas?

    A parte de todo esto, hay otro punto, que es la profesionalización o industrialización.
    Y es la repetibilidad.
    ¿Qué ocurre cuando un artesano se larga de una empresa? Pues que la empresa queda tocada, a veces incluso de muerte.
    ¿Qué ocurre cuando un taller de artesanía contrata gente (ya sea porque crece o porque se ha ido alguien)? Pues que ese nuevo, en ser productivo y aprender las peculiaridades de esa empresa
    ¿Qué ocurre cuando dos artesanos hacen las cosas diferentes y tienen que ponerse de acuerdo (ni que decir tienen ya si son egocéntricos, y mira que hay programadores así)?

    En resumen, no me cuadra la forma de plantear la calidad usando la artesanía, y no estoy muy de acuerdo con Bob Martin, y supongo que mucha gente dedicada a la gestión a la calidad en el software tampoco (yo sólo soy un humilde desarrollador).

    Otra cosa, parece que la notificación por correo no te funciona, ya que no me avisa.
    PD: Felicidades por el blog, me gusta la mayoría de los posts, aunque con alguno que otro no esté muy de acuerdo 😉

    • jummp dijo:

      Soy de la opinión de que diferentes visiones sobre un mismo tema nos hace crecer a todos, además de que resulta complicado que todos los que nos dedicamos a esto tengamos un mismo enfoque, ya que hemos pasado por proyectos diferentes, en organizaciones distintas, trabajado con personas diferentes y esto nos hace haber vivido experiencias distintas que sin duda nos hace contemplar de manera distinta las diferentes variables que envuelven a un proyecto.

      Sin embargo, nuestra divergencia en este caso es simplemente por el enfoque distinto que le damos al término artesanía, ya que en realidad estamos de acuerdo en lo mismo, por ejemplo, a todas esas cuestiones que planteas en tu comentario no puedo dar una respuesta diferente a la que estás pensando.

      Mi visión del término artesanía no es hacer las cosas sin un método y sin un orden, es más, sin lo anterior no hay artesanía posible. Artesanía es adaptación no improvisación, cuidando los detalles dentro de los niveles de calidad exigibles a la disponibilidad presupuestaria y plazos del proyecto, cuidando la relación con el cliente y las expectativas del usuario. Es una forma, por tanto de enfocar el desarrollo de software y las relaciones cliente/proveedor.

      Sobre este tema he escrito algunos artículos:

      La artesanía y el desarrollo de software.
      Consultoría y desarrollo de software. La tendencia hacia lo artesano

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 )

Google photo

Estás comentando usando tu cuenta de Google. 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 )

Conectando a %s

A %d blogueros les gusta esto: