¿Cómo es la programación con un equipo en contraste con la programación sola?

Depende del tipo de proyecto y de cómo se gestione el equipo. Algunos equipos valoran varias manos en cada línea de código. Otros prefieren que cada módulo sea de propiedad y esté aislado. No importa dónde aterrice su equipo en ese espectro, tendrá que esperar lo siguiente:

  • Tendrá que interactuar con otros en su entrada, salida o estructuras subyacentes.
  • Habrá conceptos unificadores que harán que el código funcione a pesar de todas las diferentes manos.
  • Los sistemas de colaboración serán críticos para la comunicación y la coordinación.
  • En algún lugar del montón de código habrá algo que usted posee, por elección o por decreto.

El conflicto puede ocurrir, pero rara vez es útil. Las comunicaciones casi siempre mejoran las cosas, y debe comprender de dónde vienen sus colegas. Esta es probablemente la mayor diferencia que programar solo.

Los equipos junior tienden a necesitar que cada línea de código se toque dos veces en el entorno. Estas personas necesitan el mayor apoyo y diversidad de revisión y pueden obtenerla entre sí. Los errores necesitan muchos ojos para atrapar y manos para arreglar.

Los equipos superiores son mejores con aislamiento y modularidad. Ofrezca a estos expertos grizzly espacio para hacer magia y hacer pequeñas gemas maravillosas. Deben tener la experiencia suficiente para construir interfaces adecuadas con las que otros puedan trabajar fácilmente.

Todo esto estará fuertemente aromatizado por el liderazgo y la arquitectura. Los diseños altamente interconectados y complejos tenderán a requerir más manos en cada línea de enfoque de código. Los diseños más simples con aislamiento e interfaces e interacciones bien definidas necesitarán aislamiento modular para tener éxito. Lo curioso es que OO promocionó su capacidad para lograr la simplicidad de la interfaz, la modularidad y el aislamiento, pero la mayoría de los diseños de OO en la actualidad son monstruos complejos en comparación con los diseños funcionales.

Mi experiencia trabajando con un equipo fue en un proyecto a gran escala en un entorno ágil bien administrado. Fui uno de los dos analistas de negocios del equipo. Nuestro trabajo consistía en escribir las 15 a 20 historias que los desarrolladores programarían cada sprint. Cada historia representaba una pequeña tarea independiente que podía completarse en unos pocos días. Cada desarrollador en el equipo seleccionaría qué historias quería completar ese sprint. Durante este proceso de selección, el equipo habló sobre los puntos de contacto entre las historias y cómo abordarían cualquier problema de interfaz. Todos los problemas, inquietudes, obstáculos fueron discutidos y resueltos cada día durante la reunión diaria de pie.

Nuestro proceso funcionó no solo por toda la comunicación formal incorporada, así como por una gran cantidad de comunicación continua e informal, sino también porque nos adherimos al principio de responsabilidad única que establece que cada módulo o clase debe tener responsabilidad sobre una sola parte de la funcionalidad provista por el software, y esa responsabilidad debería estar completamente encapsulada por la clase. Cada clase era “propiedad” de un desarrollador específico que era el “goto guy” cada vez que se invocaba esa clase.

La programación del equipo es muy diferente.

  • Primero, no eres el único que tiene que entender tu código. Inevitablemente, otras personas tendrán que cambiar, usar o implementar su código, y deben poder entenderlo para hacer esas cosas. Codificación sin comentarios Debe usar comentarios para ayudar a las personas a comprender.
  • En segundo lugar, debe dividir la carga de trabajo. Esto puede ser bastante complicado, confía en mí. Sin embargo, puede significar que hay una parte del código que no desea crear, pero alguien más lo hace: es posible que tenga que codificar menos y encuentre insatisfactorio.
  • Por último, lo hace mucho más rápido que solo. Obvio y autoexplicativo.

Codificar con un equipo, aunque hay problemas, generalmente es mejor que codificar solo.

Creo que la mayor diferencia es que tendrás diferentes opiniones sobre cómo hacer las cosas, a menudo fuertemente sostenidas, porque los programadores son un grupo de opinión.

En su mayor parte, esto es algo bueno, porque en teoría puede tomar las mejores ideas y ejecutarlas, que a menudo no serán suyas. Sin embargo, esto puede ser un desafío para navegar, porque los egos y las personalidades pueden interferir.

El mejor consejo que puedo dar es asegurarme de que todos puedan dar su opinión y ser escuchados, incluso si las mejores ideas tienden a provenir de uno o dos lugares. Si los miembros del equipo no sienten que están siendo escuchados, la moral sufrirá y sus contribuciones disminuirán.

cuando trabajas solo eres el jefe

pero tendrás que escribir cada línea de código

por tí mismo

cuando trabajas en equipo

puedes dividir el trabajo

esto solo hace el trabajo más rápido

y cada persona es responsable de

su parte