Cuando trabajo en código, enfrento muchos de los mismos desafíos que enfrentan mis compañeros de equipo, y he escrito algunas funciones y clases útiles, y ellos también. Si hay una buena comunicación, escucharé sobre algo genial que alguien armó, y seis meses después, cuando lo necesite, lo recordaré y llamaré a esa función, ahorrándome tiempo. Si no lo recuerdo, o si nunca lo supe, probablemente reinventaré la rueda.
¿Existe una práctica particular de documentar este tipo de cosas? ¿Cómo los haces fáciles de encontrar?
Si su equipo no tiene dicha documentación, ¿cómo puede saber si su rueda ya existe?
EDITAR:
Hasta ahora, todas menos una de las respuestas se ocupan de una situación ideal, así que permítanme resumir esas soluciones: documentación y comunicación; wikis, reuniones de pie, etc. Esas son cosas geniales, pero dependen de que los programadores tengan el tiempo (y las habilidades) para escribir la documentación y asistir a las reuniones y tomar notas y recordar todo.
La respuesta más popular hasta ahora (la de Caleb) es la única que podría ser utilizada por un programador que no es capaz de documentar y reunirse, y que solo hace una cosa: programar. La programación es lo que hace un programador, y sí, un gran programador puede escribir documentación, pruebas unitarias, etc., pero seamos sinceros, la mayoría de nosotros preferimos programar a documentar. Su solución es una en la que el programador reconoce el código reutilizable y lo saca a su propia clase o repositorio o lo que sea, y por el hecho de que está aislado, se vuelve fácil de encontrar y facilita la curva de aprendizaje para usarlo ... . y esto se logró mediante la programación.
En cierto modo, lo veo así: acabo de escribir tres funciones, y se me ocurre que alguien más debería saber sobre ellas. Podría documentarlos, escribirlos, anunciarlos en una reunión, etc., lo que puedo hacer, pero no es mi fortaleza, o ... puedo extraerlos a una clase, nombrarlo bien, hacer que funcionen como un cuadro negro y pegarlo donde van los archivos de otras clases. Luego, un breve correo electrónico anunciando que es fácil. Otros desarrolladores pueden escanear el código y comprenderlo mejor de lo que lo harían con una función aislada utilizada en un código que no entienden completamente: ese contexto se elimina.
Me gusta esto porque significa que tener un conjunto de archivos de clase bien nombrados, con métodos bien nombrados, es una buena solución que se logra mediante una buena programación. No requiere reuniones y suaviza la necesidad de documentación detallada.
¿Hay más ideas en este sentido ... para desarrolladores aislados y con poco tiempo?