Nunca, ni siquiera una vez, tuve que escribir el pseudocódigo de un programa antes de escribirlo.
Sin embargo, de vez en cuando he tenido que escribir un seudocódigo después de escribir el código, lo que generalmente ocurre cuando trato de describir la implementación de alto nivel de un programa para que alguien se ponga al día con el nuevo código en un corto período de tiempo. Y por "implementación de alto nivel", quiero decir que una línea de pseudocódigo describe 50 o más líneas de C #, por ejemplo:
Core vacía un grupo de archivos XML en una carpeta y ejecuta el process.exe
ejecutable con algunos parámetros de línea de comandos.
El process.exe lee cada archivo
Cada archivo se lee línea por línea
Las palabras únicas se extraen del archivo almacenado en una base de datos
El archivo se elimina cuando finaliza el procesamiento
Ese tipo de pseudocódigo es lo suficientemente bueno para describir aproximadamente 1000 líneas de código, y lo suficientemente bueno como para informar con precisión a un novato de lo que el programa está haciendo en realidad.
En muchas ocasiones, cuando no sé cómo resolver un problema, me encuentro dibujando mis módulos en una pizarra en términos de muy alto nivel para tener una idea clara de cómo interactúan, dibujando un prototipo de un esquema de base de datos, dibujando un estructura de datos (especialmente árboles, gráficos, matrices, etc.) para obtener un buen manejo sobre cómo atravesarlo y procesarlo, etc.