Cuando se desarrolla un sistema de manera “apropiada”, el cliente esperará que se le consulte sobre cómo el programa va interactuar con el usuario, ¡a veces hasta sobre el color de las letras que aparecerán en la pantalla! Hay que recordar siempre que una de las cosas más peligrosas que un programador puede hacer es suponer lo que el cliente quiere. Interacción precisa con el usuario, lo que el programa hará cuando se produzca un error, cómo va a presentarse la información en la pantalla etc., todas son cosas sobre las que te garantizo que el cliente va a tener una opinión firme. Lo ideal es que toda esta información sea escrita y detallada en el documento de especificación de diseño funcional (FDS), incluyendo los diseños de las pantallas y detalles sobre las teclas a presionar en cada etapa. Los prototipos que se vayan generando serán utilizados para tener una idea de cómo el programa debe verse y como debería sentirse el usuario al utilizarlo.
Especificando el problema
Al considerar las especificaciones de un sistema hay que considerar tres cosas importantes:
- La información que fluye a través del sistema
- La Información que fluye a la salida del sistema
- Lo que el sistema hará con la información
La revisión del programa
Si con todo lo anterior te parece que le estas pidiendo al cliente que te ayude a desarrollar el programa, pues déjame decirte que, ¡estás en lo correcto! El cliente siempre esperará que una vez que hayas tomado la descripción del problema te dirijas a tu cueva de informático para regresar posteriormente con la solución perfecta. Sin embargo, esto no va a suceder. Lo que ocurrirá es que vas a regresar con un trabajo aproximadamente al 60% de lo idealizado por el cliente. El cliente te dirá con qué partes del programa está contento y cuáles de ellas quiere que modifiques. Entonces tú volverás a tu cueva de informático, murmurando en voz baja y entre dientes, para después regresar con otro sistema que deberá ser aprobado. La maldición de un estudiante de informática dice que de un 60% de las deficiencias modificadas, un 40% habrán sido corregidas con éxito, así pues, después de esto deberás aceptar de nuevo los cambios propuestos por tu cliente y regresar de nuevo a tu teclado.
El arte del programador
El cliente cree que el proceso antes mencionado es genial, lo cual te evocara el sentimiento de ser un sastre de lujo que consigue confeccionar el perfecto ajuste a la medida tras realizar numerosas modificaciones a la prenda. Todo lo que el cliente hace es considerar alguna cosa, sugerir cambios y esperar a que regreses con la siguiente revisión del programa para encontrar si hay alguna otra cosa que no le haya terminado de convencer. A veces, los clientes podrían sentirse un poquito molestos si llegando el plazo de entrega todavía no has aparecido con el producto final terminado, claro, ellos siempre pueden recuperar su estado de ánimo demandándote.
Es de suma importancia lograr que el cliente acepte la elaboración de las especificaciones del sistema. No importa si con tu fuerte insistencia sobre la elaboración de las especificaciones, logras que el cliente piense exactamente sobre lo que se supone debe hacer el programa y como va a funcionar, mejor aún haz logrado que el cliente te diga “Pero yo te estoy pagando a ti porque eres el experto en computadoras, Yo no sé nada sobre estas máquinas del demonio”. Esto no debe ser una excusa. Explícale con insistencia a tu cliente los beneficios de la filosofía “Lo que mal empieza, mal acaba”, y si esto no funciona siempre puedes sacar un revolver y obligarlo a aceptar las especificaciones.
Los buenos programadores son buenos comunicadores
Hablar con un cliente y saber lo que él o ella necesitan es simplemente un arte. Si lo que quieres es ser un buen programador entonces tienes que aprender a hacer esto. Una de las primeras cosas que debes erradicar de tu mente es la idea de “Yo solo estoy para escribir un programa para un cliente” y sustituirla por “Nosotros estamos creando la solución a un problema”. Tú no trabajas para tus clientes, tú trabajas con ellos. Es muy importante saber esto, particularmente cuando tengas que tratar con clientes sobre cuestiones de funcionalidades o precios.
Tu opinión es muy importante
¿Tú qué opinas al respecto? publica tu opinión en la caja de comentarios y comparte este articulo para conocer la de los demás programadores en todo el mundo.