ir al contenido

Sobre el proceso de Desarrollo de Software y Sitios Web

Publicado hoy

Este es la primera entrega de una serie de artículos que he escrito sobre el proceso de desarrollo de software y sitios web. Con esta serie planeo exponer algunas de las conclusiones, ideas y anécdotas que he recopilado de libros, artículos y algunas experiencias personales y otras de personas de mi entorno. Mi principal objetivo es brindar una pequeña guía a modo de resúmen sobre un tema que muchas veces no es tocado lo suficiente, o a veces demasiado. Son muchos los sitios que hablan sobre como programar en una tecnología o como hacer que aparezca un efecto en nuestro sitio web. Pero de nada servirán si es que no son acompañados de un marco general que permita a aquellos que se inician en esta vía ubicar cada pieza del rompecabezas.

Comencemos con una historia

Arturo Álvarez regresó aquel día de una entrevista con un nuevo cliente. El nuevo proyecto sonaba bastante bien para él y la reunión que había tenido le había dado una idea sobre lo que debería hacer. Sin pensarlo dos veces, se sentó en su equipo, aquel computador que tanto esfuerzo le había costado armar y comenzó a programar. Clase tras clase, función tras función, comenzó a bosquejar el sistema. Y todo estaba bien.

Al día siguiente, tras haber trabajado toda la noche, se presentó a su cliente con un prototipo funcional. El cliente estaba realmente sorprendido: su anterior conocido le había estimado casi dos meses de trabajo para hacer lo que aquel "tigre" había hecho en un día. Revisó la pantalla, le pareció que estaba bien y lo felicitó. Cancelo también un buen porcentaje del monto definido.

Esa noche Arturo celebró con un par de pizzas, palitos de queso y una sesión de World of Warcraft. Y todo estaba bien.

Como ya había avanzando bastante lo que había acordado, decidió darse unas merecidas vacaciones. De todas formas, le quedaba todavía cuatro semanas -el tiempo que había estimado para la entrega.

Días después continuo con el trabajo. Ya había finalizado la base de datos, las pantallas y terminó finalmente enlazándolas. Contento, acudió a entregar el sistema a su cliente.

Este lo revisó, y le pareció que estaba bien. "Sólo una cosa más, Arturo. Este sistema lo utilizará el Jefe de Operaciones y el de Logística. Por favor, muéstraselos a ellos para ver si no falta algún detalle". Y todo no estuvo bien.

Cada Jefe respectivo revisó el sistema, y lo encontró totalmente errado. Cambios y cambios se fueron acumulando y nuestro amigo Arturo se empezó a preocupar. Ambos Jefes hicieron también que lo revisaran sus subordinados. Y los cambios fueron aumentando. Rehacer la interfaz, agregar estos datos, cambiar la forma de ingresar las órdenes -¡tener diversos tipos de órdenes! Y ya que estaba en eso, ¿porqué no agregar la capacidad de integrarse con sus sistema de correos?¿Y si lo agregan a la Intranet?¿Pueden agregarse luego más procesos, no? ¿La información no la podemos jalar de los proveedores? ¿Y si los empleados la ingresan desde sus casa?

No es necesario mencionar que para este punto, Arturo se encontraba ya con una pistola en la sién, maldiciendo la hora en que decidió ser un programador y preguntándose si no lo aceptaría su hermano en su empresa de procesamiento de papel reciclado.

¿Suena familiar? Desgraciadamente es un escenario muy típico entre los elegimos alguna vez dedicarnos al desarrollo.

¿Necesitamos una metodología?

 La respuesta que muchos le dan es afirmativa. Yo creo que antes de poder responder eso, necesitamos entender qué es una metodología. Existen muchas definiciones sobre el término,  pero principalmente, muchos la describen como el conjunto de recomendaciones para realizar un proceso, extraídas de la experiencia y el juicio de expertos en el tema y que son aceptadas por las personas como tales. Son aquellas buenas prácticas basadas en la experiencia de ajenos que nos ayudarán a evitar errores (o disminuir su incidencia).

Sin embargo, nos enfrentamos a un punto importante: no existe una metodología perfecta. Si aceptamos eso como tal, nos libraremos de muchos problemas. Lamentablemente, el mundo está lleno de personas que adoptarán su metodología como su razón de ser y aunque puedo comprender que sientan que han encontrado el Santo Grial, no hay una única metodología, y no hay ninguna que sea perfecta, así como nngún software lo es.

Revisemos otro punto adicional: cualquiera que sea la metodología que adopten en un proyecto o en la empresa en general, no son recetas que uno puedo utilizar y esperar los resultados de forma directa. No hay verdades absolutas.

¿Pero porqué habría de servirnos una metodología? Por son un conjunto de prácticas y pasos que han sido validadas por el consenso de varios profesionales. Han sido aceptadas como tal porque muestra un seguimiento lógico, entendible y propio.

Realizar un desarrollo de software o de sitio web utilizando una metodología nos permite mantener un orden y estructura sobre cómo hacer el proceso. Nos permite concentrarnos en la lógica y el giro del negocio al que nos abarcamos y no ya en como haremos el seguimiento de los clientes; nos permitirá tener una guía para saber cuando y en qué manera obtener los requerimientos de nuestros clientes y como saber atenderlos.

En la siguiente entrega hablaré sobre en qué casos no aplicaría una metodología, la diferencia (si es que la hay) entre una metodología de desarrollo de software y de sitios web y continuaré con la introducción al tema.     

Apuntes similares

Comentarios

6 comentarios. Deja el tuyo

  1. XKlibur dijo el el 16 de July a las 9:38 am

    Otro post largo ¬¬. Todos sabemos que el de la historia eres tú U_U. Esperaré tu otro artículo antes de omitir una opinión respecto al uso de metodologías.

    Abusan del pobre Yari, digo…Arturo (que puedes ser tú U_U) porque lo ven enclenque (si no sabes qué es enclenque PTJ ^^). Pero la verdad es que es una situación de mala definición de los límites y alcances del proyecto. Es cierto que hay cosas que se observan mejor cuando el proyecto es funcional y que en ocasiones hay aspectos que pueden haberse omitido y ser importantes pero eso de rehacer todo no sólo trae las complicaciones de adaptación, para no perder todo el trabajo, sino que vuelve el sistema propenso a bugs y es realizar algo adicional que no incluía el contrato. Tampoco se pueden aceptar todas las exigencias y caprichos de los clientes “gratis” y en el mismo plazo U_U.

  2. XKlibur dijo el el 16 de July a las 9:40 am

    Geez, escribí omitir en lugar de emitir

  3. Alvaro Pereyra dijo el el 16 de July a las 1:21 pm

    No es largo si lo ves como un artículo. Y no, yo no soy Arturo. Arturo es una creación compuesta de experiencias ajenas y comentarios aprendidos. Felizmente he tenido la suerte que haber aprendido gracias a éstas experiencias ajenas. No dudo que en algún momento me enfrente a problemas como éstos, pero si espero poder aprender algo más de la experiencia.

    Y definitivamente es un problema de defición del alcance, una palabra tan mencionada y muchas veces poco comprendida por los clientes. Y consecuentemente, tema de la siguiente entrega que debe estar siendo publicada esta semana.

  4. Gerardo dijo el el 19 de July a las 4:06 pm

    Muy bueno tu articulo! espero que sigas con esta onda.

  5.   Sobre el proceso de Desarrollo de Software y Sitios Web by recetas.yaPEROya.com dijo el el 29 de July a las 6:55 am

    [...] esperar los resultados de forma directa. No hay verdades absolutas. … articulo continua en Alvaro Pereyra traido usted por YAperoYA y [...]

  6. sitios web dijo el el 6 de November a las 7:52 pm

    Excelente articulo y los errores que no se deben cometer en el desarrollo de soluciones.

    Excelente blog! Saludos.

Comentar

(*)

(*)


* (obligatorio)



developer-at-work

Developer At Work es un blog de Alvaro Pereyra Rabanal

Puedes contactarme a mi dirección electrónica alvaro.pereyra@srdperu.com, agregame a twitter o visitar el sitio de mi empresa srdperu.

Algunos derechos reservados, 2009. Un proyecto SRDPERU