1 de junio de 2011

Sobre el proceso del software

Después de otro par de meses secuestrado por mis actividades académicas, decido regresar con esta entrada que habla sobre el llamado proceso del software.

Hace una semana hice entrega de un breve documento con toda una reflexión sobre el tema del proceso de desarrollar software haciendo uso de la metodología Personal Software Process (PSP), en base a la lectura de un artículo publicado en cierta revista de renombre, a solicitud de uno de los doctores en el posgrado, cuyo tema de investigación ha sido la Ingeniería de Software.

Fue hasta cierto punto divertido y hasta cierto punto frustrante a la vez, el intentar leer el rostro del doctor cuando tuvo frente a él este trabajo. Si bien su rostro no reflejó emoción alguna, tuve el privilegio de que mi trabajo fue leído con detenimiento de principio a fin.

Recuerdo que en una entrada anterior que trataba sobre Software orgánico, les conté sobre una antigua discusión que tuve con un amigo acerca de este tema, en donde presentaba algunos puntos de vista y mi postura ante esta temática.

Sin más preámbulos, he aquí un extracto de mis reflexiones en este trabajo que he presentado en el posgrado, titulado "La disciplina en el proceso del software":


El software no se produce, se desarrolla. Esta frase que se encuentra en el artículo no puede definir mejor a las actividades que realizan aquellos que ven en el software una caja mágica en la cual, pareciera que se puede obtener de ella cualquier cosa imaginable por cada persona, grupo de personas o empresa. Todo es posible.

Esta labor ve un lienzo en blanco o un bloque de mármol en cualquier necesidad que se tenga de una aplicación informática. Se puede entender entonces que se requiere de ciertas condiciones subjetivas para iniciar con los trabajos de transformar la nada en algo tangible, basados en la imagen de lo que hemos idealizado.

Hasta este punto, podemos decir que el desarrollo de software es un arte y que las personas que se dedican a este menester pueden ser considerados artesanos. Sin embargo, al igual que los alfareros o que los mimbreros, la técnica se debe de perfeccionar en busca de, por ejemplo, demorar menos en la materialización de esas ideas. Lo mismo debe de perseguirse con respecto al buen uso de las materias primas.

Es así que el llamado artesano debe de enfrentarse a un proceso más que a una actividad lúdica, en el cual, debe de adoptar una disciplina en sus actividades y tiene que establecer métricas para asegurarse de que su técnica va mejorando.

Como bien lo apunta el artículo, la diferencia entre los estudiantes y los ingenieros incorporados al ámbito profesional consiste en producir resultados de calidad que sean consistentes a lo largo del tiempo y por consiguiente, que puedan llegar a ser predecibles.

El trabajar con el proceso personal de software en el postgrado ha sido una decisión muy adecuada, ya que el alumno en esta etapa tiene la madurez suficiente para comprender el fin que persigue el implementar una disciplina en el proceso de desarrollo de software y el adoptar esta metodología.

No ocurre así en un nivel académico inferior en donde el alumno, al igual que lo hace el artesano, primeramente busca el tener el poder de materializar una idea mediante la experimentación con diversas herramientas y materiales, para formar una técnica primigenia que, si pudiera darse el caso, habrá de perfeccionarse con el tiempo.

La disciplina en el proceso del desarrollo de software efectivamente introduce a la ingeniería con sus números en esta labor que es considerada hasta cierto punto cálida y artesanal, pero marca la pauta entre lo subjetivo y lo objetivo, entre la incertidumbre y la confiabilidad. Da inicio pues a la transformación del burdo artesano en el refinado ingeniero de software.


Después de haber conocido y experimentado con PSP, queda claro que una disciplina en el proceso de desarrollo mejora la productividad y la calidad del software. Lo anterior se encuentra estadísticamente demostrado.

Lo que no podemos pensar es que un modelo de calidad de software termine por asesinar, literalmente, aspectos tan humanos como la creatividad y la personalidad, en la búsqueda de una producción indiscriminada, orientada al consumo.

No es lo mismo la búsqueda de mejorar las formas en las que se desarrolla el software, que la búsqueda de erradicar por completo el factor humano. El software se desarrolla, no se produce.


Los veré en la siguiente entrada.


Charles

6 comentarios:

  1. De acuerdo con el casi Maestro Carlos, no obstante deberé decir lo siguiente (argumentando que soy de esos artesanos de mano de obra en proceso de mejoramiento que menciona nuestro estimado autor de este blog):

    Mi suegro pertenece a las primeras 3 generaciones de programadores en México en cuyo tiempo segun él me platica se programaba en tarjetas perforadas, se acostumbraba la buena práctica de la clásica "prueba de escritorio" en papel, no había muchas funciones que englobaran un monton de instrucciones para lograr una cosa tardada y recurrente, todo se hacía casi de manera "arcaica", de bajo nivel, todavía mas artesanal que lo de hoy y por eso el defiende la postura de que los programadores de hoy ya no piensan, ya no usan el cerebro, solo usan cosas que ya están hechas para crear el programa sin saber como funciona en realidad. A esto se le llama abstracción, es como una televisión, todos sabemos prenderla aunque la mayoría no comprendemos a fondo todos los complicados mecanismos que suceden dentro de ella para cumplir su función.

    El desarrollo rápido de software implica hoy necesariamente un cerebro potente o funciones abstractas, se pierde el porque de las cosas, pero se logra rapidéz!!!

    ¿¿¿Entonces es bueno o es malo???

    Lo que se sugiere es que el programador trata de aprender en sus "ratos libres" los fundamentos de bajo nivel de los lenguajes de desarrollo sin dejar de aprovechar las funciones abstractas para poder desarrollar rápido.

    Saludos, nos vemos en la proxima entrada. Atte Iván Caballero Cano.

    ResponderBorrar
  2. yo tambien creo que un producto hecho a mano es mejor que uno hecho en serie por maquinas y robots pero lo malo es que el hecho a mano es mas caro que el hecho en serie y deberia de haber un subsidio para los artesanos para que puedan competir con las maquinas ya que su producto es mas "humano"....saludos y keep on working

    ResponderBorrar
  3. Estimado Webster:

    Al poco tiempo de establecer esa idea de un régimen de 1000 años de capitalismo, las personas han puesto su mirada en otras alternativas. Tal es el caso de los productos denominados orgánicos.

    No se requieren de subsidios para competir con las máquinas, ya que simplemente no existe competencia.

    ¿ O crees que Deep Blue le ganó a Gary Kasparov sin intervención humana ?

    En todo caso, debe de entenderse que el software es un proceso que requiere de capital humano y por lo tanto, que se tiene la justificación para destinar recursos.

    A esto le llamamos inversión, ya que no solo se obtiene un producto de software sino que además se genera conocimiento.

    Saludos

    ResponderBorrar
  4. y cuando pasa un artesano a convertirse en artista o cuando se convierte una artesania en una obra de arte y quien lo decide???

    ResponderBorrar
  5. Estimado Mario,

    Para decidir cuándo un artesano se transforma en un artista o cuándo una artesanía se vuelve una obra de arte, existen las llamadas certificaciones.

    Así, una persona que tuviese una certificación PSP implica que ya ha pasado de artesano a artista, continuando con la lógica de tu pregunta.

    Ahora, si bien puedo leer entre líneas lo que nos comentas, existen entidades certificadoras que son quienes se encargan de validar dicha metamorfosis.

    Si me preguntas quiénes son ellos para validar a los demás, pues solo me queda decirte que son ellos los que desarrollaron los modelos y que por lo tanto, tienen hasta cierto punto la autoridad de ver qué personas o qué empresas los han adoptado de manera correcta.

    Saludos !

    ResponderBorrar
  6. En intento de respuesta para el mencionado Estimado Mario en cuanto a que "cuando pasa un artesano a convertirse en artista".

    Y el intento dice:
    Una cosa es una cosa y otra cosa es otra cosa,
    Un artesano sigue un metodo y lo perfecciona, repite los mismos pasos y perfecciona velocidad, costos, quizas materiales...
    Un artista no sigue unos pasos establecidos, el artista se define por la habilidad de improvisar segun lo requiere cada situacion, el artista no perfecciona sus "obras" pues todas
    son unicas y de ahi que ya sean perfectas.

    Saludos.

    ResponderBorrar

De antemano, muchas gracias por tus comentarios. Tu opinión cuenta en TILogía.