¿Cuáles son las mayores dificultades cuando se trabaja con desarrolladores de software?

Personalmente, diría que la mayor dificultad de trabajar con desarrolladores de software es encontrar un lenguaje común. Trabajo en una empresa de desarrollo de software (Neoteric) donde soy especialista en marketing.

Cuando vine a trabajar por primera vez en este mundo extraño, estaba muerta de miedo. O debería haberlo estado, porque en ese momento no estaba realmente consciente de lo que debía esperar. Me golpeó unos días después. No estaba muy seguro de por qué me contrataron y cómo debería hablar con el mundo exterior sin saber nada sobre el mundo dentro de la empresa.

La mayor dificultad para mí fue comprender a estas personas extrañas: saber de qué están hablando, aprender su jerga, familiarizarse con el código de cultura “tecnológica”. ¡Y ni siquiera estaba trabajando con ellos directamente! Quiero decir, no era ni gerente de proyecto, ni diseñador ni dueño de producto. Hice mi trabajo, ellos hicieron su trabajo y vivíamos en una simbiosis perfecta.

Sin embargo, durante los últimos 2 años tuve la oportunidad de observarlos, ver cómo funcionan, qué les gusta y qué no les gusta. Y creo que las mayores dificultades de trabajar con desarrolladores de software provienen de la falta de comprensión mutua . ¡Lo que se aplica tanto a los no desarrolladores que no entienden a los desarrolladores como a los desarrolladores que no entienden a los no desarrolladores!

Las personas no técnicas a menudo tienen problemas para comprender a los desarrolladores. No solo su trabajo en sí mismo (código y todas esas cosas técnicas), sino también la forma en que trabajan: su motivación, sus excentricidades y rarezas.

Hay algunas cosas que a la mayoría de los desarrolladores simplemente no les gusta. No les gusta ser interrumpidos (es algo sobre el “flujo” mágico), no entender cosas (como cuando se les dice que hagan algo sin que se les diga por qué hay que hacerlo), o trabajar en tareas aburridas y repetibles. (Más cosas con más explicaciones: ¿Qué odian los programadores?)

Por eso es importante tener a alguien que pertenezca a estos dos mundos alternativos . Como un buen gerente de proyecto que entiende las necesidades del negocio pero que también tiene suficiente experiencia técnica para llevarse bien con los desarrolladores.

Recientemente escribí un artículo con 10 cosas para evitar al trabajar con desarrolladores – basándome en mi respuesta anterior de Quora a lo que odian los programadores. ¡Mira esto!

Por último, pero no menos importante, aquí hay algunas pautas básicas para ayudarlo a encontrar un hilo de entendimiento con los programadores:

1. Nunca interrumpas

Mientras no haya fuego en el edificio, no haya llamadas telefónicas del hospital o de la policía, puede esperar. Cuando hablas y el desarrollador no responde pero sus dedos están constantemente escribiendo algo en el teclado, probablemente esté teniendo una conexión con alguna dimensión diferente. Respetarlo

2. No seas demasiado mandón

Mientras el proyecto se apegue al plan y su equipo no desperdicie su presupuesto, no tiene nada de qué preocuparse. Si los desarrolladores quieren gastar su dinero trabajando en algún problema relacionado con su proyecto, todo está bien. Y todavía está bien cuando al día siguiente llegan a la oficina al mediodía. (A menos que tengan alguna reunión programada, entonces no está bien en absoluto).

3. Da una razón

Cuando les pidas que hagan algo (o que no hagan algo), diles por qué es importante para ti. Recuerde que está tratando con el grupo con una gran necesidad de entender el mundo. Por cierto, ya se demostró que razonar sus solicitudes puede mejorar significativamente sus posibilidades de cumplirlas. El experimento realizado en 1977 por Ellen Langer (Experimento de atención plena de Xerox) demostró que mientras la solicitud sea pequeña, dar una razón para una solicitud, incluso la más absurda, es una estrategia mucho más efectiva que no dar ninguna razón. ¡Lo peor para recordar!

4. No seas ignorante

Vea lo que significa el ‘programador’ y en qué se diferencia del soporte técnico o del administrador, haga una hoja de trucos de las tecnologías y aprenda la diferencia entre un lenguaje y un marco. Eso debería funcionar desde el principio.

Y si realmente no puede evitar hacer nada de lo anterior, al menos muestre su simpatía .

No estoy seguro de si es la mayor dificultad, pero puede ser intimidante cuando un ingeniero usa una gran cantidad de términos que están muy por encima de tu cabeza. Sospecho que a menudo no se dan cuenta de que estos términos no se usan normalmente en conversaciones casuales y cotidianas fuera del mundo del software. Aquí están algunos ejemplos:

  • SECO – “No te repitas”: el código seco es bueno. Un concepto dado solo debe representarse en su código una vez, una fuente de verdad. Esto se usa comúnmente como un verbo, por ejemplo, “probablemente deberíamos secar un poco este código”
  • WET – “Write Everything Twice”: el código húmedo es malo. Si tiene código húmedo y necesita hacer un cambio en cómo funciona algo, necesitaría hacer ese cambio en varios lugares. El código húmedo es más difícil de mantener.
  • No-Op : significa “no operación”, lo que significa no hacer nada. Algo es un “no-op” si no requiere ningún trabajo adicional, como una característica que obtienes de forma gratuita porque la funcionalidad ya se ocupó en otra historia.
  • YAGNI – “No lo vas a necesitar”: No desarrolles una complejidad adicional solo porque podrías necesitar algo algún día.
  • Código de autodocumentación : código que se escribe con tanta elegancia que no necesita documentación ni comentarios solo para descubrir cómo funciona. Las especificaciones (pruebas) realmente buenas también ayudan a los ingenieros a comprender lo que se supone que debe hacer una determinada sección de código.
  • Olor de código : código con ciertas propiedades que posiblemente refleja un problema más profundo. Hay algunas características del código que pueden indicar un mayor riesgo de errores o problemas futuros. Código mojado? ¿Código que necesita documentación solo para entenderlo? Esos son olores.

También hay una gran publicación de blog de Ken Norton titulada “Cómo trabajar con ingenieros de software” que definitivamente vale la pena ver.

La mayor dificultad que tienen la mayoría de los no programadores es no tener una base sólida en lo que es técnicamente posible. No me estoy refiriendo tanto al usuario final como a los Tweeners entre usuarios que realmente definen lo que se supone que debe hacer el programador.

Aprende el panorama del sistema. No puedes simplemente mirar las pantallas y entender lo que está sucediendo.

Pretender comprender lo que hacen los programadores.

Creación de plazos artificiales.

No cumplir con las responsabilidades de las pruebas. Los programadores son pésimos probadores.

Comunicarse con los programadores de la misma manera que lo hace con los usuarios. Cuando trabaje con tablas, use los nombres de columnas y nombres de tablas, no algo como el número de orden de compra o el nombre del cliente.

Estos son solo algunos errores que cometen los Tweeners.

Desde la perspectiva de un desarrollador de software itinerante desde hace mucho tiempo, mi mayor desafío es convocar la empatía para colaborar con compañeros de equipo distraídos por cosas nuevas y brillantes en lugar de mantener el enfoque en la producción de productos que aborden los dolores y las ganancias de las personas.

More Interesting

Si usted es un desarrollador de software, si trabajó en un lugar donde no se siguieron los rigurosos estándares de software, los requisitos estaban mal escritos, las pruebas estaban mal hechas, ¿se iría automáticamente? ¿Qué pasa si la paga, el viaje y otros factores fueron muy buenos?

¿Cómo es un desarrollador de software que vive en Manhattan?

¿Qué habilidades y software necesito para hacer una aplicación de Android?

¿Cómo te convertiste en un desarrollador de software independiente?

¿Es cierto que el desarrollo de software es un trabajo sin salida después de los 30, y que la mayoría de los desarrolladores de software solo pueden sobrevivir al iniciar sus propias empresas?

Después de que detuviste la programación competitiva, ¿te olvidaste de algoritmos simples o ese entrenamiento riguroso hizo que te quedara para siempre?

¿Por qué no hay más desarrolladores de software en el 1% superior de los que obtienen ingresos?

El almacenamiento en caché (cómo "hacer") al escribir programas no está cubierto en ninguna parte como un tema en sí mismo. ¿Cómo puedo estudiar esta área de manera integral?

¿Cómo mantenemos los datos confidenciales lejos de los desarrolladores de software?

¿A qué edad se jubilan la mayoría de los desarrolladores de software en el Área de la Bahía?

¿Puede una persona con experiencia laboral como analista conseguir un trabajo como desarrollador de software?

¿Cuál es mejor, un desarrollador de software que escribe las pruebas unitarias pero no cumple con la fecha límite del proyecto o un desarrollador de software que ignora las pruebas unitarias y cumple con la fecha límite del proyecto?

Mi amigo dijo que no debería construir una startup si quiero convertirme en un buen desarrollador de software porque no tendría tiempo para hacer negocios y programar al mismo tiempo, ¿verdad?

¿De qué sirve tener una interfaz como tipo de retorno en Java?

Como desarrollador de software, ¿cuáles son sus planes cuando la IA toma su trabajo o reduce en gran medida su salario al simplificar el desarrollo?