HOLA!!!
Disculpen que revivo el tema, solo quiero aportar una cosa mas que me sirve mucho a mi cuando programo y creo que al que lea el tema le van a servir tambien.
Aparte de todo lo que te dicen a mi lo que me rinde mucho a la hora de programar es primero hacer el cascaron del programa y despues darle vida, luego vestirlo y enseñarle a resolver errores

.
Que quiero decir...
Muchas veces lo primero que hago es hacer la interaz grafica entera del programa antes de programar una sola linea, poniendo nombres descriptivos y comentarios talves.
Cuando tengo todos los formularios hechos, agrego un Modulo bas que se llama Procesos_y_Funciones.bas en el cual pongo todas las funciones que uso en el proyecto asi las generalizo y puedo llamarlas desde cualquier sitio.
Agrego otro modulo bas con el nombre de Variables.bas y ahi dentro ubico las variables de uso general para que el programa funcione.
Una vez hecho esto me pongo a programar de la siguiente manera:
1 Empiezo con los forms de ABM (Alta baja y modificacion) todos con funciones generalizadas asi puedo reutilizar el codigo para otros forms.
2 Reportes varios, aca me pongo a hacer los reportes de impresion y consultas.
3 Formularios Especificos, aca programo los formularios con acciones especificas, como por ejemplo un backup, conneciones de red o acceso a internet y actualizaciones.
4 Cuando ya tengo todos los forms funcionando me pongo a rediseñar la interfaz (que al principio siempre es rustica) y a ponerla linda.
5 Comienzo el testeo y optimizacion de algoritmos.
6 Hago ErrorHandling Asi queda un soft para idiotas.
7 Le doy el programa a una persona que no sabe mucho de pcs para que lo pruebe y asi se que esta habilitado para que cualquier persona lo use.
8 Logo, Iconos, Splash Screen y Acerca de.
9 Ayuda nunca hice ni hare por que es lo peor del mundo.
10 Descanzar hasta que el cliente caiga con un bug que no vi yo.
GRACIAS POR LEER!!!