
Me senté un maldito día sobre la tarea. Era necesario diseñar un módulo independiente, y las personas con una forma severa de perfeccionismo no deberían recibir tareas de diseño.
Tuve una semana, todo un infinito, que no tenía suficiente. Una y otra vez, revisé las opciones para usar lo que tenía que hacer, pero la imagen del módulo ideal no se pegó. Siempre hubo un caso que se mostró bien: tal diseño es una mierda. Pensé, toqué la guitarra, traté de escribir, estúpidamente en el monitor, busqué en Google, jugué con niños, pensé de nuevo: la cabeza siempre estaba ocupada por un módulo estúpido.
El último día que llegué al límite, pasé veinte horas en el trabajo sin salir. Y ahora, el domingo por la noche, tengo muchas ganas de dormir, pero todavía estoy sentado y tratando de encontrar un nombre adecuado para alguna clase en mi pseudocódigo, cuyo diseño, por supuesto, va a la basura tan pronto como lo termino, porque es demasiado imperfecto Unas pocas horas antes de la deducción, no tuve nada más que la semana, que fue eliminada por las búsquedas.
El lunes por la mañana envié una solicitud de extracción. Fue recibido con entusiasmo. Pero la forma en que fui ... nunca pensé que me atrevería a hacer eso.
Dicen que el desarrollo es un trabajo colectivo. Yo diría de otra manera: todo tiene un desarrollo colectivo, excepto el desarrollo mismo. Un resultado colectivo, discusiones colectivas, syncaps, donde se habla de planes. Pero el proceso de trabajar en el código en sí mismo simplemente está aislado de otras personas.
Cuando se distribuyen las tareas (y la descripción de la tarea es el 1% del caso), cada una por sí mismo. Piensa solo en su código, escríbalo solo, y Dios no permite que nadie mire a su monitor en este momento. Te vuelves loco con las personas cuando ya tienes algo que mostrarles. Discuten y luego se aíslan nuevamente en su soledad.
Mostrar boceto no preparado: un desastre. Es como si te vieran no solo desnudo, sino sin piel, sin una calavera. Verán todos tus pensamientos imperfectos habituales que aún no han tomado forma en decisiones inteligentes.
Es decir, el "trabajo colectivo" no es una especie de organismo de diez cerebros, donde todo junto, todo es diez veces más rápido, mejor y se baña en sinergia. El trabajo en equipo es todo el mismo trabajo solo, solo con el ritual de deshacerse solo en un montón.
En los proyectos terminados, las líneas de cientos de personas se mezclan y, al fusionarse en un solo archivo, pierden la autoría. Pero no puedes venir al equipo y decir "aquí tienes mis manos, el cerebelo y el arco derecho del cerebro, tómalo, escribe el código con ellos". En un equipo, cada uno hace lo suyo de manera independiente. En general, la soledad de la conciencia es algo terrible. Nos reímos de la idea del solipsismo, como si fuera una religión de miembros estúpidos. Pero aquí está la ironía: todo lo que tenemos que refutar es solo nuestra propia percepción subjetiva.
Para sentirse parte del equipo, necesita traer los resultados del equipo, hablar sobre ellos y escuchar. Siempre es el camino de miles de compromisos. Y tengo grandes problemas con los compromisos.
Este es uno de los peores: si desea trabajar bien, a veces necesita escribir un código incorrecto para cumplir con los plazos. Lo intenté y no pude. No sé si es una enfermedad, costos u otra cosa, pero no puedo cometer lo que considero una mierda. Por un lado, parece que esto no es un problema. La calidad de mis decisiones crea mi reputación como un tipo que trabaja de manera justificada durante mucho tiempo. Nunca me dan acertijos que arden, porque inmediatamente comenzaré a "joder el cerebro de todos". Me preguntan por qué durante tanto tiempo, les explico claramente qué problemas intenté resolver, por qué no es trivial y por qué era importante hacerlo de una manera realmente de alta calidad. No me escuchan, pero me creen.
Por alguna razón, es tan importante que la gente piense, no solo mis resultados son perfectos, sino también mis pensamientos. Y si alguien ve mi proceso de pensamiento en código sin procesar, inmediatamente me expondrán.
Por supuesto, con demasiada frecuencia me encontraba en situaciones en las que no tenía suficiente comprensión o cerebro para hacer que la tarea fuera perfecta. Pero siempre creí que solo los débiles piden ayuda. Esto también es parte del autoengaño. Supuestamente, para ser digno de un equipo, debes ser completamente independiente.
En otras palabras, para sentirme lleno, quiero estar tanto en el equipo como solo dentro de él. Siente la contradicción? Yo también, pero no puedo hacer nada. Y el camino del engaño y el autoengaño siempre me pareció más agradable que el camino del compromiso.
Tengo un amigo, también desarrollador. Nunca trabajamos en un solo trabajo, tenemos pilas completamente perpendiculares, pero discutimos mucho la programación. Trabajando en aproximadamente las mismas posiciones, nos gustaba mucho reunirnos, y cambiarnos, cuán geniales somos todos en nuestro trabajo.
El momento en que te llamaron Senior, jodido, sucedió con nosotros al mismo tiempo. Charlando, ridiculizamos a nuestros colegas (a veces inventados), porque nuestra amistad con él siempre contenía un alto grado de competencia y respeto mutuo. Era imposible simplemente venir y decir: "Antokha, pero hoy realmente me equivoqué". Somos dos impostores que inflan su autoestima a una escala astronómica para ser salvados de su inutilidad.
Pero cuando mi semana para el diseño del módulo llegó a su fin, no había escapatoria de la inutilidad.
Antokh me llamó por Skype. Quería hablar sobre lo bueno que estuvo hoy porque fue grosero con PMU, que no entiende cómo funciona el desarrollo. Aparentemente, estaba tan desesperado que la autoestima no funcionó. Simplemente busqué en la pantalla, abrí la descripción de la tarea y pregunté: "¿Cómo puedo hacer esto?" Fue una violación poderosa del contrato tácito de nuestra amistad, pero Antokha simplemente dijo: "abre el IDE".
El código tenía que estar escrito en C #, con el que nunca había funcionado, por lo que pasó por mi cabeza: pasaré mucho tiempo en vano. Es mejor dormir, y en un plano para decir que la estimación era incorrecta, continuaré trabajando. El archivo de texto se acaba de abrir en el IDE, donde describí la última versión del diseño del módulo. Y Antokha de inmediato: "Yo llamaría a esto así". Puedes enganchar, el nombre salió perfectamente.
Comenzó a hacer preguntas: por qué es así, qué es, cómo están conectadas estas cosas. El trabajo comenzó a hervir. Discutimos mucho en el proceso, pero es como un código de revisión interactivo, y uno que se hace con honestidad (cuando no solo señala problemas, sino que también ofrece una solución). Rápidamente dejamos el pseudocódigo. Solución, Carpetas, Interfaces, Dock, Implementaciones, IoC. El módulo no funcionó perfecto, resultó ser bueno, y el hecho de que no fui el único en pensarlo, fácilmente derrotó mi perfeccionismo.
Hicimos una semana de trabajo en unas pocas horas. Sin cerrar Skype, me complació conducir en git commit, push. Juntos escribieron una descripción para la solicitud de extracción. Le dije que era un honor trabajar juntos y me fui a la cama.
Al día siguiente, comencé a reflexionar sobre todo esto y me di cuenta de que algo había sucedido. Antokha no conoce C #, nunca trabajó con una subred, pero trabajó conmigo en igualdad de condiciones, si no mejor. Resulta que, gilipollas, ¿es mejor que yo o qué?
Inmediatamente quise hacer su trabajo con él, para ponerme a prueba una vez más. Pero cómo proponer esto, no lo sabía. Decidí esperar, luego se preguntaba a sí mismo, comenzando a estudiar en secreto su pila. Y él preguntó. Revolvió la pantalla y mostró dónde estaba atrapado. Inmediatamente vi varias soluciones. Comenzaron a discutir, él comenzó a codificar. Rápido y genial. Soy un js nick, como un gopher genérico, pero realmente lo ayudé. El rábano picante sabe cómo funciona, pero desde entonces, cada vez que escribo el código, tengo un Antokha imaginario en mi cabeza que me ayuda. Intenta involuntariamente la forma en que piensa su pareja, y poder pensar de manera diferente es una cualidad muy valiosa para el desarrollador.
Sin embargo, hay un problema. NDA loco. La ignoro porque creo que Antokha no se apresurará a subir el IMessageReceiver a mi Instagram.
Pensé durante mucho tiempo por qué esto funciona, y decidí que no era un aspecto nuevo. Cada desarrollador aborda las tareas a su manera. Hay cosas que una persona con mi forma de pensar decide en un minuto, pero hay otras en las que mi cerebro simplemente se conduce a un laberinto desesperado de decisiones incorrectas.
Pero el concepto de trabajo en equipo que existe ahora no funciona. Cuando tiene miedo de ser un eslabón débil, da miedo darse cuenta de que su contribución es menor que la de los demás. ¿Qué pasa si eres débil en algo? El equipo te echará.
Escuché que los guionistas que se sientan juntos y conspiran en la trama colectiva tienen el término "desnudez emocional". Este es un estado en el que las personas no tienen miedo de pensar en voz alta y públicamente, y los pensamientos de otras personas suenan como propios. Por lo tanto, si encuentra un socio con el que puede trabajar tan fácilmente como con usted mismo, considere que todos sus problemas profesionales se han resuelto.
La cura más fuerte para todas las dudas y llagas profesionales es cuando alguien trata su imperfección normalmente.