Consejos
y Procedimientos Utiles
Para
el Diseñador de Sistemas Pequeñoss
|
-
Hay una especie de "regla de
tres" que el programador de sistemas pequeños siempre debe
tener en mente: hay que evitar los tratos con el dueño de la
empresa.
El dueño, que es el que finalmente paga los honorarios pretenderá sacar lo más que pueda a su dinero, regateará las
tarifas hasta el último centavo y esperará como cosa natural
obtener servicios de mantención gratis por tiempo indefinido.
Especialmente peligrosos son los empresarios que se hacen
amigos del programador y, los peores de todos, los que tienen el
hobby de la computación y creen ingenuamente que el programador
lo comparte. Esa es la regla número uno: hay que tratar siempre con el gerente,
no con el dueño
-
Al diseñar un sistema pequeño se parte
siempre por la salida, lo primero es hacerse una idea clara de
lo que el cliente quiere tener en sus manos como producto del
sistema.
El problema es que muy pocas veces el propio cliente
tiene esa idea y solo espera beneficios vagos como
"controlar", "ordenar" o cosas por el
estilo. Aquí es fundamental ayudarlo a definir productos
específicos que entregará el sistema, .Los
productos finales deberán estar especificados en todos sus
detalles antes de escribir la primera línea de código
-
El diseño de sistemas es uno de los pocos
campos donde no se aplica eso de "el cliente tiene siempre
la razón", las ideas del cliente solo deben ser una guía
general pero el diseño es siempre de responsabilidad del
programador.
Tal como un arquitecto se puede negar a diseñar
cierta estructura si piensa que se va a caer, un diseñador se
debe negar a hacer un sistema si le parece inseguro,
ineficiente, incompatible on la capacidad del hardware o, lo
más importante, más allá de sus conocimientos o capacidades.
Un buen diseñador solo acepta sistemas cuando sabe exactamente
que pueden hacerse y como hacerlos
-
Una vez en posesión de las
especificaciones del diseño, este debe completarse tal como fue
diseñado. Los cambios sobre la marcha, especialmente cuando
afectan a criterios fundamentales del diseño son una garantía
de fracaso. El diseño jamás debe desviarse de su objetivo
general ni de los específicos. En caso que se cambie de idea
sobre los objetivos hay que volver a comenzar todo a partir de
cero.
-
En sistemas pequeños el orden de
prioridades es mas o menos así:
Funcionalidad: que el sistema funcione
como se espera sin fallas
Simplicidad de uso: que cualquiera lo
pueda operar y mantener con mínimo entrenamiento
Tolerancia a errores humanos: que sea
tolerante a equivocaciones, que los errores se puedan
revertir y corregir con facilidad
Ergonomia: Presentacion visual cómoda,
bien organizada y que requiera de un mínimo absoluto de
acciones de parte del operador.
Simplicidad de diseño: minimizando los
menús y datos de entrada requeridos, la calidad de un sistema
pequeño es inversamente proporcional a la cantidad de capos de
ingreso de datos y menús.
Mantención cero: las tareas de
mantención deben ser automatizadas al máximo y simplificadas
de modo que los propios operadores puedan mantener los sistemas.
Eficiencia: en último lugar, la
eficiencia es muchas veces irrelevante en sistemas pequeños y
normalmente debe ser sacrificada cuando está en conflicto con
alguno de los criterios anteriores.
-
Documentación: los sistemas pequeños
pueden ser autodocumentados, pero al trabajar an Visual Basic
que es extremadamente permisivo con el programador
(deliciosamente permisivo, diría yo) es muy común la escritura
de codigo redundante, pobremente definido o inconsistenete. El
problema de la inconsistencia del código no está resuelto en
ningún lenguaje de programación conocido por lo que se debe
hablar de "niveles aceptables" cuando un sistema
comienza a ponerse complejo.
Con relación a esto existen excelentes programas robot que
analizan el código escrito, detectan problemas de
optimización, inconsistencia y estilo y hacen análisis
métrico de los programas. Su uso es sumamente recomendable y
una vez que nos aficionamos a ellos es dificil dejarlos.
|