Historias
Slashboxes
Comentarios

Login Barrapunto

Login

[ Crear nueva cuenta ]

¿Cómo documentar proyectos?

editada por Candyman el 06 de Enero 2006, 11:07h   Printer-friendly   Email story
desde el dept. con-mucho-cuidado
Duncan nos cuenta: «Soy un programador y después de haber realizado varios proyectos para la empresa en la que me encuentro me veo en la difícil e ingrata situación de comenzar a documentar cada uno de ellos. Guia de usuario, diagramas, comentar código, todo... ¿Por dónde se comienza, qué herramientas se suelen utilizar, cómo hacerlo y qué es realmente útil documentar y qué no?» Es una buena pregunta, porque hay muchas cosas que parecen evidentes a quien lleva tiempo haciéndolas y no lo son para quien empieza.

Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • Los viejos cuentan...

    (Puntos:5, Inspirado)
    por Janete (13965) el Viernes, 06 Enero de 2006, 11:18h (#671923)
    ...que existe una leyenda que dice que se empieza por la documentación y se termina por la implementación :P
  • Es sencillo

    (Puntos:1, Troll)
    por pobrecito hablador el Viernes, 06 Enero de 2006, 11:23h (#671927)
    Soy un programador y después de haber realizado varios proyectos para la empresa en la que me encuentro me veo en la difícil e ingrata situación de comenzar a documentar cada uno de ello

    Si hubieras hecho todo eso cuando correspondia, que es a la vez que se va haciendo el codigo, y los diagramas antes de nada; ahora no tendrias este problema.
    A priori no es facil documentar un proyecto ya hecho y mas si lleva hecho cierto tiempo.
    Las cosas es mejor hacerlas cuando corresponden.
    Como tu has dicho, eres programador. Un informatico, que se supone que sabe de esto, hace todas esas cosas antes, porque es su secuencia logica.
    Si, ya se que soy un troll y no quiero que me respondan porque no hay que alimentar a los trolls. Solo queria desahogarme por toda esta intrusion que hay en España (en todo tipo de profesiones).
    Ale, ya me he quedado agusto, voy a ver que me han traido los reyes...
    • Re:Es sencillo

      (Puntos:4, Inspirado)
      por Dupre (22460) el Viernes, 06 Enero de 2006, 11:58h (#671946)
      Conocí a un ingeniero informático al que despidieron porque en la empresa en la que estaba trabajando se acumuló el trabajo y se decidió no documentar los proyectos para ganar tiempo. Mi amigo simplemente se quedó colgado y entró en un bucle sin fin, ya que no podia programar ni una línea de codigo sin los diagramas correspondientes y a la vez la empresa le prohibia escribir los mismos.

      Contrataron a un programador que desarrolló los proyectos y los entregó en el plazo. La empresa cobró los mismos y, con parte de ese dinero, le pagaron el sueldo convenido y, más tarde, en época de vacas flacas, terminó de documentar los proyectos.

      Esto es una fábula-cuento que nos enseña que:
      a) Un ingeniero informático debe poder desarrollar aplicaciones según le pida la empresa (por supuesto es infinitamente mejor desarrollar tal y como "Dios manda")
      b) Las empresas se adecuan al mercado, siendo este variable en cuanto a demanda (si te entran tres proyectos de golpe los cojes, y si siguen entrando más, la misma empresa puede que reconozca la necesidad de contratar a más gente, pero desde luego no lo harán a la primera de cambio).
      c) Ni todos los ingenieros son máquinas perfectas que desarrollan código perfecto ni todos los programadores de FP son monos que teclean sin conocimiento alguno de algoritmos. De todo hay en la viña del señor.

      Saludos

      PD. Yo he desarrollado aplicaciones que tenían que mantener luego otras personas, y me tocó escribir los diagramas, manuales de programación y también los manuales de usuario, así como la estructura de la BD. Y no me llevó un tiempo despreciable. El argumento de que una aplicación se desarrolla mas rápido si se documenta y tal no me convence (por lo menos según mis experiencias).
      [ Padre ]
    • Re:Es sencillo de pobrecito hablador (Puntos:2) Viernes, 06 Enero de 2006, 13:37h
    • AaaaaaH! Un Intrusoooo!! de pobrecito hablador (Puntos:2) Viernes, 06 Enero de 2006, 14:29h
    • Re:Es sencillo de eldaimon (Puntos:2) Viernes, 06 Enero de 2006, 12:00h
    • 4 respuestas por debajo de tu umbral de lectura actual.
  • La mejor parte es...

    (Puntos:2, Informativo)
    por Tromperri (13293) el Viernes, 06 Enero de 2006, 11:56h (#671945)
    Comentar código... que me parto... ¿donde ha quedado eso de escribir los comentarios antes que el código? Más que nada porque te obliga a pensar el código que vas a escribir de antemano....

    En fins, que si no tienes comentarios en tu código ... mal vamos...

    Yo te recomendaría NDoc, JDoc y comentarios basados en XML... hay implementaciones para cualquier lenguaje... Luego generas una documentación bastante decente y eso unido a unos diagramás de clases generados automaticamente pues listo...

    Pero anda que no tienes curro... te esta de puta madre por chapucero...

    Y fijate... no soy Informatico de los que tienen un titulo en la pared pero vamos que en los proyectos que dirijo algo como lo que tu has hecho no tiene cabida. Por ejemplo en C#... warning level a 4 y tratar warnings como errores de compilación y ni dios puede compilar nada que no tenga comentarios por lo menos asociados a las funciones y clases publicas... Eso unido a Entreprise Policies de Visual Studio y listo... no hay programador que se libre de comentar... Luego con el NDoc lo pones bonito... Segurisimo que lo mismo se puede hacer con Eclipse y Jdoc... En Visual C++ o VB tambien se puede...

    Asi que la culpa del jefe de proyecto, que no impone eso a priori...

    Por cierto escribir el manual de usuario antes de empezar a desarrollar más haya de prototipos iniciales es una técnica cojonuda para tener una captura de requisitos suficiente y no excesiva.
  • por faloma (21666) el Viernes, 06 Enero de 2006, 12:04h (#671952)
    ( http://barrapunto.com/ )

    Lo del manual de usuario, normal, puesto que normalmente se quieren incluir screenshots que no se tienen hasta el final del proyecto.

    Lo de los diagramas de diseño... pase, si no tenías ninguna herramienta a mano (lo que no quita que estén en papel).

    Pero lo de comentar el código... que no hayas comentado el código que has tenido delante de las narices durante todo el desarrollo... eso no tiene nombre. No me extraña que luego pongan a los ingenieros a programar xD

    Bueno, aquí va mi regalito de reyes para ti:

    Y para escribir documentación, pues el todopoderoso Word (si docbook no estuviese tan verde, te lo recomendaría, pero todavía le queda algo por madurar).

    Ah, una cosa más, a lo mejor deberías comentar en tu empresa que las cosas no se hacen así... a ver qué pasa xD
    --

    ~out of the closet!~
    • Oracle de YearOfTheDragon (Puntos:2) Viernes, 06 Enero de 2006, 13:01h
      • Re:Oracle de faloma (Puntos:1) Viernes, 06 Enero de 2006, 15:33h
    • Re:algunas herramientas de kiro (Puntos:2) Viernes, 06 Enero de 2006, 14:57h
  • Juas...

    (Puntos:2, Interesante)
    por pax01 (10710) el Viernes, 06 Enero de 2006, 12:11h (#671959)
    ( http://barrapunto.com/ | Última bitácora: Miércoles, 28 Diciembre de 2005, 12:49h )
    Pues, siento decirlo, pero si te encuentras con proyectos terminados por tí mismo y sin nada de lo que dices, simplemente es que la has cagado xD

    Lo primero de cualquier proyecto es definir los requisitos del usuario (lo que sirve de base a la documentación), luego preparar los diagramas esos... y sólo entonces ponerse a programar, ¡comentando el código sobre la marcha! xD

    Vamos, puedes repetir la receta cuantas veces quieras a lo largo de un mismo proyecto, pero si hubieses hecho las cosas como hay que hacerlas, ahora no estarías preguntando. Aunque, por otro lado, tal vez sólo acabas de hacer tu primero proyecto un poquito más grande que algo básico, quién sabe... por lo menos para la próxima ya sabes (y puede que tu empresa también, como se dén cuenta xD)

    Herramientas tienes bastantes, algunas en función del lenguaje y entorno: Javadoc, NDoc, PDoc, POD, phpDocumentor, diagramas autogenerados -o si no con dia, OpenOffice o cualquier otra cosa-, para más documentación OpenOffice, tex, docbook, páginas de man... en fin, que haberlas haylas a montones.

    Ahora solo faltaría que dijeses que eres titulado, y ahí sí que me iba a partir de risa xD
  • Proyecto Readyset

    (Puntos:3, Informativo)
    por miguser (18044) el Viernes, 06 Enero de 2006, 12:32h (#671977)
    ( Última bitácora: Jueves, 01 Febrero de 2007, 11:55h )

    Copio y pego la entrada de mi weblog [retratoensepia.com]:

    Dede hace un tiempo vengo utilizando las plantillas de documentación del proyecto readyset [tigris.org] de Tigris [tigris.org] (Los creadores de Argouml [tigris.org]. En su página web podemos encontrar templates para la especificación de requisitos, casos de uso, diseño y arquitectura, gestión de proyectos, pruebas, etc... A mi me han ayudado bastante, porque por muy pequeño que sea un proyecto, siempre hay que tener a mano la especificación de requisitos, un pequeño planning y la definición de los casos de uso si hablamos de un desarrollo orientados a objetos (en mi caso, siempre).

    Readyset [tigris.org] tiene un contenido bastante completo. Incluye plantillas para la documentación de los test xUnit. Son muy precisas, y abarcan toda la definición de los casos de prueba. Creo que es lo más interesante de este paquete, teniendo en cuenta que este paradigma de pruebas se está utilizando cada vez más en los procesos de desarrollo.

    Se puede acceder a las plantillas como un documento completo de desarrollo: Introducción, plan, requerimientos, diseño, calidad, testing, guia de usuario, etc,... No sigue ningún estándar de documentación al pie de la letra, así que el mejor uso que se le puede dar es como plantillas individuales que pueden ayudar durante el desarrollo, para luego ser integradas en la especificación final del proyecto.

    El proyecto sólo contiene plantillas en XHTML y CSS. No provee ningún tipo de medio para editarla, ni siquiera XSLT. Así que podemos elegir dos cosas: Copiar el contenido y utilizarlo en nuestro procesador de textos habitual o editar manualmente el código de las plantillas, mucho más práctico si la documentación tiene que ser visible por varios stakeholders.

    Enlaces:

  • Por no preguntar...

    (Puntos:2)
    por KraMMeR (9571) <reversethis-{moc.liamg} {ta} {otnuple}> el Viernes, 06 Enero de 2006, 12:40h (#671978)
    ... que no quede. ¿Alguien sabe si se usa doxygen en algun sitio profesionalmente?
  • cómo sois...

    (Puntos:2, Informativo)
    por pobrecito hablador el Viernes, 06 Enero de 2006, 13:19h (#671993)
    un par de programas -te recomiendo Umbrello-:

     · Konzept [cyblogic.de]

     · Umbrello [sourceforge.net]
  • Normal

    (Puntos:5, Inspirado)
    por pobrecito hablador el Viernes, 06 Enero de 2006, 13:58h (#672011)
    Vamos a ver, amigo mio.

    Si te piden la documentación ahora, significa que:

    a) El cliente la quiere. b) Lo quiere tu empresa por temas de calidad (aenor o lo que sea).

    Pues ves a saco y escribe.

    Si la haces ahora, significa que a tu empresa no le interesa un carajo hacer las cosas bien. (Como a la gran mayoria de las empresas de TI).
    Lo unico que le interesa es cumplir el plazo. ¿ Como se cumpla ? Eso es indiferente. La cuestion es que se cumple y ya está. Ahora viene la documentación. Pues escribe y escribe, haz hardcopys, ponle los logos de la empresa, una buena caratula de portada, etc...

    Es lo que piden la gran mayoria de empresas: Papel para archivar, que no leerá nadie, mas que aquel pringao que le digan: Vas a trabajar en este proyecto, anda!, vete leyendo el funcional.


    Uno que está hasta los mismisimos de la informatica.
    • Re:Normal de levhita (Puntos:1) Viernes, 06 Enero de 2006, 19:13h
    • Re:Normal

      (Puntos:4, Inspirado)
      por Molleradura (19661) el Sábado, 07 Enero de 2006, 00:35h (#672347)
      ( http://barrapunto.com/ | Última bitácora: Viernes, 28 Octubre de 2005, 22:19h )
      Uno que está hasta los mismisimos de la informatica.
      Haz las cosas mal, y te deprimirás.
      Haz las cosas bien, y ganarás autoestima, aprenderás, y disfrutarás con tu trabajo, influirás en tu empresa (y probablemente la abandones si no te hacen caso). En el mundo hay mucha gente que aprecia a los que trabajan bien, pero a veces hay que moverse.
      Tu tambien tienes parte de culpa de ser infeliz.
      [ Padre ]
    • 2 respuestas por debajo de tu umbral de lectura actual.
  • por wschutz (21130) el Viernes, 06 Enero de 2006, 14:33h (#672025)
    ( http://www.themountolympus.net/ | Última bitácora: Martes, 31 Octubre de 2006, 18:26h )
    Ya lo han comentado por aquí, pero bueno... no me podía resistir teniendo en cuenta que soy un amante de la IS.
    La cuestión no es cómo documentar un proyecto pues esa respuesta ya existe desde hace mucho tiempo: <A HREF="http://www.ambysoft.com/books/inceptionPhase .html">Proceso Unificado</A> (lo que verás corresponde a un libro pero sirve para coger la idea, no tengo algo más exacto porque lo tengo en papel, así que para esto he usado al todopoderoso Google); sino ¿cómo hacer un proyecto? Siguiendo los canones y patrones establecidos (habitualmente el PU) o continuando con la tradición... "uséase" programar a saco y luego al final ya haré algún papelujo.

    Ahora bien, tenemos ese problema, si nos ponemos a hacer un análisis y luego su posterior diseño para una vez tener una buena base y sobre dicha base programar, a corto plazo, el tiempo (y en consecuencia el coste) se dispara; pero a largo plazo obtendremos un producto más estable y sobre todo bien documentado... Por no hablar de que si está bien hecha la documentación del proyecto luego nos servirá para otros proyectos (famosa reutilización...) y nos ahorraremos tiempo (y dinero).
    Así que sería recomendable que en el futuro intentases hacer uso de las tecnicas que ofrece la ingenieria del software porque al fin y al cabo la programación no es más que una parte más del proceso de elaboración de un programa; ciertamente una parte imprescindible, y por eso creo que los pasos previos los solemos omitir, pero si queremos una programación sólida (no sólida en cuanto a fallos sino sólida en cuanto a cambios en el diseño del programa o cambio en los requisitos de la aplicación o cambios en cuanto a integrar nuestra aplicación con otra existente... o con una librería) necesitamos de un estudio previo, que es papel... pero que será muy útil.

    En todo caso, siempre pienso que aunque no se haga un análisis-diseño previo, en el fondo se está haciendo porque normalmente la persona que programa la aplicación lo va haciendo sobre la marcha y mentalmente. Quizá sea un poco estúpido, pero cuando te dicen en la empresa o alguien te contrata y te pide tal cosa; lo primero que haces es preguntarle que quiere (hacer un sondeo, más o menos, análisis de requisitos) y luego sobre lo poco que dice el cliente, y lo que tu crees que le puede resultar útil para lo que pide comienzas a darle a la tecla, pero para dar a la tecla, hay que tener cierta estructura, así que al final el proceso se realiza, eso sí, no con la rigidez e intensidad con la que debiera hacerse.

    Resumiendo, puesto que querías herramientas... aquí van (todavía no he encontrado una herramienta decente GNU/GPL... y mira que he buscado pero ninguna de las que he visto, me acaba de gustar):
    - IBM Rational Method Composer (la herramienta por excelencia...): <A HREF="http://www-306.ibm.com/software/awdtools/rup /">Link</A>
    - SPARX Enterprise Architect (una auténtica maravilla, completa aunque un poco compleja al principio): <A HREF="http://www.sparxsystems.com.au/products/ea.h tml">Link</A>
    - Together (muy útil también y conocido): <A HREF="http://www.borland.com/us/products/together/ index.html">Link</A>

    Estas son las que me vienen a la cabeza... en cuanto a comentar código... eso lo debes hacer, pero la tónica suele ser... comenta aquello que te esté costando programar y aquello de lo que no estés seguro que vayas a entender en un futuro... mientras más comentes mejor, eso sí, es un coñazo.
    Para la documentación de pantallas, pues nada de MS Word, con LaTeX te vale, y si no quieres usar LaTeX pues OpenOffice.

    .
    --
    So this is how liberty dies... with a thunderous applause (Star Wars III: Revenge of the Sith 2005)
  • Métrica 3

    (Puntos:3, Informativo)
    En la universidad nos enseñan a utilizar la metodología metrica 3 [csi.map.es] para desarrollar y documentar proyectos.

    En esta metodología se especifica cuando y como hay que escribir diagramas, documentación, manuales de usuario, etc.

    Se supone que el Estado Español exige la utlización de esta metodología en sus proyectos.
    --

    ----
    The Robot [wordpress.com]
    • Re:Métrica 3 de ONorOFF (Puntos:1) Viernes, 06 Enero de 2006, 20:38h
    • 2 respuestas por debajo de tu umbral de lectura actual.
  • por bufalo_1973 (13194) el Viernes, 06 Enero de 2006, 17:24h (#672124)
    ( http://barrapunto.com/ | Última bitácora: Viernes, 29 Junio de 2007, 18:25h )
    No digo que sea el caso, ya que no lo conozco, pero puede estar en la siguiente situación:

    - Llega nuevo a la empresa.
    - Le endosan unos cuantos proyectos que debían estar listos un par de meses antes de entrar él.
    - Tiene que acabarlos a la carrera porque "o lo acabas o ya veremos si alargamos el contrato (de mierda)"
    - Cuando ya los ha terminado a la carrera le piden la documentación, cosa que se les "olvidó" pedir cuando "había tanta prisa".
    - Se encuentra con 5 o 6 (por decir unas cifras) proyectos sin documentar por las prisas y con prisas por parte del jefe porque queden documentados, que "ahora" sí hace mucha falta esa documentación.

    ¿A alguien le suena algo así? No hace falta que sea programador.
    --

    La libertad se mide en la que le damos a los demás, no en la que nos tomamos nosotros.
  • herramientas

    (Puntos:1)
    por levhita (22587) el Viernes, 06 Enero de 2006, 19:09h (#672179)
    ( http://blog.levhita.net/ )
    Para documentar tu base de datos te recomiendo DBDesigner4(tiene funciones de ingenieria inversa).

    El código se comenta a mano, no hay de otra, dependiendo del lenguaje puedes conseguir parsers que convierten tus comentarios en documentación HTML.

    los diagramas generalmente no son necesarios, a menos que hallas desarrollado en base a casos de uso y en ese caso debiste diagramar antes, ahora simplemente te seria imposible y ademas inutil.

    El manual de usuario lo haces directo en OpenOffice no hay otra (bueno tambien esta word y HTML puro).
    --
    "La libertad viene en paquetes pequeños, usualmente TCP/IP"
  • Yo recomiendo

    (Puntos:2)
    por epoh (8012) el Domingo, 08 Enero de 2006, 02:13h (#672966)
    ( http://pinguino.dyndns.org/ )
    Tanto si tienes que documentar a posteriori como si lo haces a priori (que es lo ideal), te recomiendo MagicDraw [magicdraw.com]. No es software libre, y no se si eso realmente te importa, pero merece la pena, y la licencia no es demasiado cara.
    Es muy productivo, te recomiendo que al menos pruebes la versión community (es gratuita) y tu mismo verás lo rápido que se trabaja.
    Y si lo usas a priori, además tiene la ventaja de soportar generación de código y round-trip, es decir: una vez que tienes diagrama y código, si actualizas el diagrama te sincroniza el código, y si modificas el código, te actualiza el diagrama.
    Incluso tiene ingeniería inversa de diagramas de secuencia (es decir, se generan a partir del código tambien), que es una funcionalidad poco habitual y ahorra mucho trabajo.
    Para escribir manual de usuario yo trabajo con latex [latex-project.org]. Escribo toda la documentación con kile [sourceforge.net] (editor de latex) e incluyo los diagramas de magicdraw en formato vectorial. Inkscape [inkscape.org] ayuda bastante cuando hay que hacer diagramas que no son UML. Y con latex2html [latex2html.org] mantengo una versión navegable online del manual, para utilizar más en plan referencia mientras trabajas.
    Para el manual de referencia con la documentación de los API, utilizo doxygen [stack.nl].
    Esta es mi forma de trabajar, y resulta bastante bien incluso trabajando en equipo.
    --

    Los libros son las abejas que llevan el polen de una inteligencia a otra. James Lowell
  • Re:OFF Topic

    (Puntos:1)
    por Darko (22829) el Viernes, 06 Enero de 2006, 17:37h (#672130)
    ( Última bitácora: Sábado, 24 Diciembre de 2005, 23:16h )
    Muchas gracias por el aviso, acabo de buscar en la web de micro$oft dicho parche para el WMF [microsoft.com], no hay nada como hacer famoso un error para que intenten solucionarlo lo antes posible eh jejej.

    Nota: lo de comentarios que no salen tmb. me ha pasado.

    [ Padre ]
  • 15 respuestas por debajo de tu umbral de lectura actual.