¿Qué puede ralentizar a un desarrollador? [cerrado]


12

¿Qué cosas tienden a ralentizar a un desarrollador?

Intente abstenerse de publicar respuestas que:


@ Mark Trapp: ¿Eh? Eso no es un duplicado en absoluto ...: -S
Tamara Wijsman

1
Si la pregunta no resulta útil, la eliminaré en un futuro próximo, las personas están enumerando distracciones que ya están cubiertas por otra pregunta mía. Así que tiendo a buscar cosas que no distraigan ... TheLQ y Bill son buenas respuestas de ejemplo.
Tamara Wijsman

Huh, la URL se destrozó. El duplicado es ¿Qué distracciones pueden suceder durante la programación?

Elegido para dejar la pregunta abierta porque se trata de cosas que no son distracciones ...
Tamara Wijsman

11
Stackoverflow, SuperUser, Programmers ... sí, básicamente sitios como este :)
bedwyr

Respuestas:


49

Oh, esto es fácil:

  1. Reuniones
  2. Más reuniones
  3. Reuniones sobre la última reunión
  4. Reuniones para prepararse para la próxima reunión
  5. Desarrollar una presentación en power point para una reunión
  6. El desarrollo de una presentación de power point para una reunión que discuta características que no se han implementado, no debería implementarse, y por cualquier razón, ese tipo de ventas saltará por completo. No puedo predecir qué documento desea que se muestre en la aplicación en función de su ubicación actual sin una conexión a Internet o acceso a su disco duro. No realmente, solo deja de pedirlo también.

44
en resumen: ¿gestión? ; o)
n1ckp

11
@ n1ck No, no. Una buena gestión puede acelerar un desarrollador. La mala programación de los tiempos de un programador (es decir, un aspecto de ser un administrador) realmente puede retrasar el desarrollo.
wheaties

3
lo que me mata es cuando mi empresa hace esto: reuniones, más reuniones, reuniones sobre la última reunión, reunión para prepararse, reunión para discutir por qué no podemos lograr nada. ¿Por qué no podemos lograr nada? ¡Tienes cuarenta desarrolladores sentados en una habitación escuchándote!
Mike M.

2
Tenga en cuenta que esta respuesta casi encajaría en una diapositiva de PowerPoint.

44

Mismo problema aquí
pramodc84

1
Me compraría una computadora portátil lo antes posible y trabajaría en eso si estuviera en esa situación, suponiendo que la compañía lo permitiera.
adamk

Las computadoras lentas tienden a ser la causa de una distracción. Cada vez que el programador espera puede entrar en modo de distracción y no volverá al programa hasta algún tiempo después.
edA-qa mort-ora-y

Reemplazaron mi computadora hace un par de semanas. Es menos poderoso que el de 4 años al que reemplaza. Agradable.
MetalMikester


25

StackOverflow, programmers.stackexchange.com, etc. :)


44
¡Discrepar! StackOverflow ayuda a resolver problemas, por lo que acelera el desarrollo.
Asistente

3
Tonterías ofensivas. Por cada minuto que he "desperdiciado" en SO, me ha vuelto a comprar 20.
MIA

11
+1. No es ofensivo en absoluto. SO es muy bueno para la dilación. Es mi nuevo facebook. :)
back2dos

@ back2dos Por favor, no compare la genialidad de SO con la pieza de ... eso es Facebook.
adamk


15

Cualquier intento de seguir un proceso que no es adecuado para la tarea en cuestión.

Esto puede ser todo tipo de cosas, pero las más comunes que veo incluyen:

  • probar metodologías que no se ajustan al código que se está probando
  • Procesos que son dramáticamente más ágiles o tradicionales que los entregables.
  • directrices que están destinadas a un conjunto de herramientas diferente al conjunto de herramientas seleccionado
  • Principios de diseño que están fuera de escala con las necesidades del proyecto.
  • utilizando un conjunto de herramientas que no es adecuado para la tarea

Todas estas cosas pueden ser inmensamente valiosas en algunos proyectos o en algunas situaciones, pero algunas organizaciones intentan hacer todo de una manera y eso lleva a un mal ajuste en otros proyectos, que a menudo es la muerte de la productividad.


13

Política

por ejemplo: cuando más de una persona posee los requisitos (o peor, dos intereses creados diferentes), y realizan cambios competitivos y conflictivos a los requisitos mientras el desarrollo está en marcha.


9

Conversaciones de otros.

y ruido en general

Muchas respuestas hablan sobre el cambio de contexto y salir de la zona, y el ruido, especialmente la conversación, es una de esas cosas que me lleva a eso.

En mi mundo cúbico, estoy rodeado de ruido y conversación por todos lados. Una vez más, el equipo de mainframe mantiene reuniones de planificación constantes en la fila del cubo. A veces, se reúnen con consultores en una oficina a lo largo de la pared, y eso tiende a provocar gritos, gritos y risas, y tengo que ir y pedirles que cierren sus puertas.

Por otro lado, la mesa de conferencias del equipo web está al otro lado de mi pared del cubo oeste, así que soy parte de cada reunión, nos guste o no. También hay una impresora en el otro lado de la pared del cubo sur, y eso siempre es bueno para charlar con personas que pasan el rato esperando sus impresiones.

La respuesta inmediata y obvia de " ¿No puedes conseguir auriculares con cancelación de ruido?" No ayuda cuando lo que quieres es silencio.

A veces, para las revisiones de códigos, llevo mi montón de papeles a la cafetería (a la hora del almuerzo, por supuesto), pero hay una televisión que suele sonar. Lo apagaré si nadie está mirando. De lo contrario, iré a buscar un cubo vacío en otro departamento en otra parte del edificio.

Si desea que sus programadores hagan el trabajo que necesitan hacer, que es predominantemente pensar, reflexionar y considerar, necesitan un entorno en el que puedan hacerlo.


A veces se pone demasiado tranquilo donde estoy. Empiezo a centrarme en los clics de los ratones y en las personas que respiran con dificultad, etc. Es como acostarse y escuchar un grillo.
kirk.burleson

8

Escribir demasiadas líneas de código sin pruebas adecuadas.


Esta es la causa número uno de que las cosas se detengan en mi experiencia.
Paddyslacker

1
@Paddyslacker: ¿más prueba = más productivo? ¿Eh? Solo para personas que no deberían estar en la programación en primer lugar. La prueba puede ser útil pero "¿la causa número uno de que las cosas se detengan? ¿En serio?
n1ckp

1
@ n1ck: Sí, lo digo en serio. El código entra en un estado que no se puede mantener y la falta de pruebas y la capacidad de prueba de la base del código significa que cada nueva característica se vuelve cada vez más difícil de agregar. Me parece divertido que pienses que crees que las personas que escriben más pruebas "no deberían estar en la programación en primer lugar". ¿Entonces Roy Osherove, Michael Feathers, Tío Bob, Kent Beck, etc. no deberían estar en la programación?
Paddyslacker

@ Paddyyslacker: No lo sé. Nunca los vi codificar. Tal vez deberían ser mejores en la gestión de su descripción? ¿Y por qué el código no se puede mantener debido a la falta de prueba exactamente? ¿La prueba hace que el código pobre sea genial por algún tipo de magia tal vez?
n1ckp

1
@ n1ck, las pruebas no pagan cuando se escribe el código inicialmente, pero hace una gran diferencia al tener que mantener el código más tarde.

5

Falta de café de alta calidad.


O falta de buen refresco. ¡Echo de menos tanta coca cola de cereza dietética descafeinada! En mi país solo puedo obtener Coca-Cola Light, o Coca-Cola descafeinada, y no Coca-Cola en absoluto :-(
Wizard

1
@Wizard: solía trabajar para una empresa que proporcionaba Coca-Cola Light. No estoy seguro de por qué me fui. Si sientes tu dolor.
JeffO

2
@Wizard: solo compra un frasco de cerezas al marrasquino y agrega un poco de jarabe a tu bebida. Ahora puedes hacerlo tan fuerte como quieras ... (mismo truco para la vainilla: la coca de vainilla real es muy superior a las cosas premezcladas)
Shog9

@Señor. C: El problema es que necesito dieta + Coca Cola descafeinada, una combinación que no está disponible en mi país.
Asistente

5

tener que hacer estimaciones perfectas que no deben desviarse una vez que comienza el desarrollo, en mi opinión, es un escenario de huevo de gallina


Si te encuentras con eso mucho, te sugiero que pases un tiempo no trivial estudiando estimados. Entonces puede responder "si es una estimación, es, por definición, no la cantidad de tiempo que realmente tomará".
MIA

oh, he usado ese antes, la respuesta siempre es que soy malo para estimar, si no se puede dividir en tareas visibles de 2 a 4 horas, aparentemente lo estoy haciendo mal
MetaGuru

5

Arreglando la construcción rota de otra persona


Parece que alguien no está orientando bien a su compañero de trabajo.
Nombre para mostrar el

@ negrita: puede suceder naturalmente por asincronía. Digamos que el tiempo de corte diario de la construcción es a las 5 a.m., y revisa la última versión a las 9 a.m. (En otras palabras, no puedes evitar que la gente venga a trabajar temprano)
Rwong

4

Reuniones sin agenda.

Una maquina lenta.

Falta de un segundo monitor.

Un ratón viejo que tiene una bola en lugar de las nuevas y bonitas.

Falta de acceso a Internet en la máquina, lo que hace que las consultas MSDN / stackoverflow / etc. sean un poco molestas.


Relacionado con la reunión sin agenda está el secuestrador de la reunión. Ya sabes ... lo pones en el calendario durante una hora, pero incluso si el tema se completa en 20 minutos, ese tipo continúa buscando otros temas para completar los 20 minutos. Te votaría a favor, pero luego te tendría que votar a ti por la "falta de un segundo monitor" como una desaceleración. Es conveniente, pero no tenerlo en ocasiones no me ha frenado.
MIA

4

Pasé demasiado tiempo programando

Incluso si realmente te gusta programar, pasar demasiado tiempo en él eventualmente te quemará ...


4

Evita todo lo que te saque de "la zona". Eso significa su bandeja de entrada de correo electrónico, su aplicación emergente de Twitter, su chat corporativo, etc.

Tener una condición de trabajo silenciosa significa también evitar ese ruido de escritorio .


3

Cualquier solicitud de cambio que hubiera sido más fácil de implementar si lo supiera de antemano.


"Caminar sobre el agua y desarrollar software a partir de una especificación es fácil si ambos están congelados"
back2dos

1
Cita tonta. Caminar sobre hielo no siempre es fácil.
Peter Boughton

1
@ Peter Boughton: Si elegimos una escala, donde desarrollar software a partir de especificaciones fluctuantes es difícil y congelar es fácil, caminar sobre hielo siempre es fácil. Puedes enseñarle a un niño de 6 años a hacer eso. Pero supongo que lo sabes, solo te agrada el juego inteligente.
back2dos

Y también puede enseñar a un niño de seis años a trabajar a partir de especificaciones fluctuantes. No está siendo inteligente, es irritante por el uso excesivo de citas como esa, que no son útiles. Las especificaciones congeladas no son fáciles de desarrollar si están equivocadas (ya que no se pueden arreglar), y cambiar las especificaciones está bien si sabe de antemano qué partes están en flujo (ya que puede atenderlo).
Peter Boughton el

3

Código pobre

Tener que reescribir la parte de otra persona que podría haber hecho bien el trabajo en primer lugar es el mayor sumidero de tiempo que pueda imaginar.


2

The Much That Slow You Down es una buena publicación de blog para esto.

...

Muchos proyectos repiten características centrales de nivel de infraestructura una y otra vez, lo que ralentiza a la empresa al ofrecer características que la diferencian de sus competidores.

...

Es inevitable que los productos y las innovaciones ayuden a reducir el tiempo que los desarrolladores dedican a tareas no diferenciadoras. La pregunta es qué forma tomarán esos servicios y herramientas.

...


+1: Gran respuesta. Dejé un trabajo porque la empresa no estaba dispuesta a dedicar tiempo para reducir la deuda técnica. Los desarrolladores se vieron obligados a "repetir una y otra vez las características básicas del nivel de infraestructura".
Jim G.

2

Bueno, últimamente la mayor desaceleración es porque estamos desarrollando varias cosas simultáneamente que deberían haberse hecho en un orden específico. Así que estoy esperando hasta que (los nombres cambien para proteger al inocente) John termine su componente que necesito para mi paquete SSIS y Harry se demore esperando que importe los registros porque necesita algunos datos para ver para probar su exportación (alguna vez intente escribir un informe de exportación complejo cuando no hay datos en ninguna de las tablas?) y todo el mundo se ralentiza porque el diseño no está hecho y las tablas de la base de datos que necesitamos para realizar nuestras tareas aún no se han creado y es posible que ni siquiera terminen siendo lo que dijeron que iban a ser, etc.


1
Parece que estás hablando de cuellos de botella causados ​​por la difusión del trabajo demasiado débil entre los miembros del equipo.
MIA

1
No es tanto que el equipo esté disperso, sino que la gerencia no pensó en las dependencias en la asignación de proyectos. Y algunas cosas que se suponía que estaban listas en el momento en que la otra gente fue asignada al proyecto no fueron una vez que la gente intentó usarlas realmente.
HLGEM

2

Responde preguntas en stackexchange.com, como esta.


Puede considerar mejorar sus habilidades de escritura táctil, entonces.

2

A pesar de que pidió no enumerar las distracciones, pueden ser un factor importante. Observe su entorno de trabajo, verifique si están siendo interrumpidos con frecuencia o si se les pide que hagan otras cosas que no están relacionadas con el proyecto.

A veces, un desarrollador puede quedarse atascado porque está haciendo algo que nunca antes había hecho y no sabe dónde buscar ayuda. Si se trata de un equipo pequeño o individual, puede ser aún más difícil. Tendemos a ser un tanto orgullosos y no nos gusta admitir cuando no sabemos cómo hacer las cosas. Además, no nos gusta pedir ayuda a otros. No hay una manera fácil de lograr que un desarrollador lo admita, excepto tal vez para preguntar si pueden cumplir con la fecha límite, o qué necesitan para cumplir con la fecha límite, y luego esperar que sean honestos. Es posible que deba ofrecer traer otra ayuda o encontrar a alguien que pueda ayudarlo.

Falta de requisitos claramente definidos, lo que los lleva a tener que resolver las cosas o tomar decisiones.


2
  • Tener que esperar unos 15 minutos para que la PC arranque en un estado utilizable
  • Esperando a que la PC cambie de aplicación
  • Siendo la única persona en la oficina que tiene que hacer su propio té / café.
  • Un teclado roto (¡arreglado!)
  • Trabajar fuera de la oficina del Director Gerente (CEO de EE. UU.) (Y tampoco en una oficina), con solo una partición intermedia (especialmente cuando hay una reunión)
  • Solo se puede acceder al jefe por correo electrónico, pero todos los demás están en el edificio
  • No se me permite usar un VCS, aparentemente debería estar en mi cerebro
  • Pantalla pequeña
  • No permitir tiempo para descansos que no sean almuerzo
  • Tener que hacer copias de seguridad del servidor remoto a pesar de tener un administrador de sistemas en el edificio
  • Que me digan que haga dichas copias de seguridad manualmente.
  • Ser obligado a usar un estúpido sistema de gestión del tiempo que es innecesariamente complicado
  • Solo tengo una idea vaga de los requisitos dos meses después del trabajo

Podría seguir, pero es viernes y quiero olvidarme del trabajo.


¡Parece que necesitas salir de allí!
adamk

2
  • Falta de documentación (Sistema, Empresa, etc.)
  • Falta de código comentado
  • Una comprensión incompleta del sistema.
  • Política (es decir, reuniones innecesarias, papeleo, obstáculos por parte de la administración ...)
  • Documentación de requisitos incompleta
  • ¡Facebook!
  • ¿Demasiado sueño?

1

Demasiada gente en el proyecto.

Se ha visto varias veces que la administración decide, basándose en datos no reales, que necesitan agregar más personas al proyecto. Eso termina en la gente que sabe lo que está pasando necesitando detener todo para tomar las manos de personas que saben poco sobre lo que está pasando. He visto más de un proyecto de tamaño de hongo y luego voy al baño rápidamente desde allí, mientras que antes iba bien, aunque tal vez un poco lento.

Así que pasas de llegar un mes tarde debido a que no hay suficiente velocidad / demasiado para hacer y no lo haces en absoluto porque arruinaste totalmente el presupuesto de todas esas personas adicionales.


0

Además de las cosas mencionadas por otros, el largo camino entre decidir compilar y ejecutar su código y obtener un resultado positivo / negativo . Idealmente, este RTT sería solo un segundo, pero he visto un ejemplo de horas. Por cierto, las pruebas unitarias intentan resolver este problema.

Otro relacionado con esto es una latencia general de su entorno de trabajo. Imagine que necesitaría trabajar a través de una conexión de escritorio remoto a la computadora en el otro lado del mundo, a través de una conexión espeluznante. He estado allí. He odiado esto


0
  • Papeleo excesivo

  • Tener una dependencia de alguien que nunca está cerca (como su jefe, si necesita hacer una pregunta pero siempre está en reuniones)

  • Herramientas y equipos inadecuados.

  • Las personas empujan su remo sin razón (cualquier cambio visible en la interfaz de usuario está sujeto a esto) o simplemente discutiendo sobre cosas triviales.

  • Cafetera rota

  • Ser asignado las tareas incorrectas


0

El aire acondicionado no funciona.

Por lo tanto, la temperatura en la oficina alcanza los 40 grados en el verano de -5 en el invierno.

El -5 no es bueno para escribir, ya que no puedo usar guantes y escribir. Los 40, solo ralentizan mi pensamiento.


0

Esta es una opinión muy personal y quizás controvertida, pero planea y piensa demasiado sobre el diseño inicial o escribir código de "calidad" todo el tiempo. Hay un dicho que dice que "semanas de codificación pueden ahorrarle horas de planificación" que podría ser cierto en algunos casos.

Sin embargo, a menudo veo que los programadores intentan esbozar un buen diseño antes de comenzar a codificar. Me parece que es más fácil "comenzar", ya que a medida que programa aprenderá más sobre su problema y solución, lo que le permitirá refactorizar su solución rápidamente en un buen diseño. La mayoría de los problemas que surgen son prácticamente desconocidos al comienzo de la codificación (al menos para mi débil mente), por lo que perder mucho tiempo diseñando por adelantado es solo una pérdida de tiempo.

Esta es también la razón por la que no me gusta TDD, pierdes demasiado tiempo escribiendo pruebas, lo que hace que sea menos probable que refactorices o que tomes mucho tiempo para reescribir las pruebas. Las pruebas unitarias son excelentes para algunos casos y algunas etapas de un proyecto, pero el comienzo de uno no es uno de ellos en mi humilde opinión :)

Haga que algo funcione rápidamente y mejórelo.


-1 Puedo entender tu pensamiento, pero el objetivo de la etapa de diseño es limitar la necesidad de refactorizar. También facilita las pruebas unitarias, que son excelentes todo el tiempo para asegurarse de que algo que funcionaba no se rompa y se libere. Si no planificas, harás más difícil el trabajo de todos los demás cuando tengan que tratar de mantener lo que inevitablemente será un código mal diseñado.
adamk

¿Quién dice que tendrá una arquitectura pobre? Solo digo que no desea una fase de diseño excesiva y necesita hacer muchas refactorizaciones y arquitecturas durante un proyecto para llegar a un código de calidad. Por otro lado, para que esto funcione, debe tener responsabilidades de código claramente delimitadas en las que diferentes personas no se están burlando del código de los demás.
Homde

La experiencia dice que tendrá una arquitectura pobre. Volar por el asiento de tus pantalones y la codificación del vaquero son probablemente las peores cosas que puedes hacer durante el desarrollo. Tener una fase de diseño que durará una semana, le ahorrará meses de programación y conducirá a un código que hace lo que se supone que es la primera vez. La idea detrás de TDD es que no cambie las pruebas. Esas pruebas están destinadas a emular la usabilidad del mundo real, y si su código no puede finalizar la prueba, entonces su código está equivocado.
Mike S

Mi experiencia dice lo contrario, pero supongo que depende del vaquero y del equipo :) He aprendido más de una semana de codificación y he hecho un código para mostrarlo. Por supuesto, tendrá una arquitectura deficiente si no realiza una refactorización extrema y continua y tiene un equipo / vaquero que sea lo suficientemente ágil como para mantenerse al día. Pensar que puedes hacer una "fase de diseño", aprender todo y hacerlo bien la primera vez es simplemente ingenuo. El valor real de un prototipo son las lecciones que aprendes, las tiras y lo haces bien. Hazlo varias veces y rápido :)
Homde

0

Bloqueo del programador : a diferencia de otras ralentizaciones, esta es más difícil de resolver.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.