Pregunta

Últimamente he estado pensando en la estimación de software y tengo un montón de preguntas sobre el tiempo dedicado a la codificación.Tengo curiosidad por saber de personas que hayan tenido al menos un par de años de experiencia en el desarrollo de software.

Cuando tienes que estimar la cantidad de tiempo que dedicarás a trabajar en algo, ¿cuántas horas del día dedicas a codificar?¿Qué ocupa las otras horas sin codificación?

¿Consideras que dedicas más o menos horas que tus compañeros de equipo a codificar?¿Sientes que estás haciendo más o menos trabajo que ellos?

¿Cuáles son sus condiciones de trabajo?¿Oficina privada, oficina compartida, sala de equipo?¿Codificar solo o en pareja?¿Cómo ha cambiado su condición laboral la cantidad de tiempo que dedica a codificar cada día?Si puede trabajar desde casa, ¿eso ayuda o perjudica su productividad?

¿Qué metodología de desarrollo utilizas?¿Cascada?¿Ágil?¿El cambio de una metodología a otra ha tenido un impacto en sus horas de codificación por día?

Más importante:¿Estás satisfecho con tu productividad?Si no, ¿qué cambio haría usted que tendría el mayor impacto?

¿Fue útil?

Solución

Soy un desarrollador corporativo, del tipo que Joel Spolsky llamó "deprimido" en un par de podcasts de StackOverflow.Debido a que mi empresa no es una empresa de software, tiene pocas razones comerciales para implementar muchas de las medidas que los expertos en software recomiendan que adopten las empresas para mejorar la productividad de los desarrolladores.

No tenemos oficinas privadas ni monitores duales de 30 pulgadas.Nuestro sistema de control de código fuente es Microsoft Visual Source Safe.Basta de charla.Por otro lado, puedo hacer muchas cosas que llenan mi día y añaden algo de variedad a mi trabajo.Me involucro en análisis de negocios, gestión de proyectos, desarrollo, soporte de producción, implementaciones internacionales, soporte de capacitación, planificación de equipos y mejora de procesos.

Yo diría que dedico el 85% de mi día a codificar, cuando puedo concentrarme y tengo una tarea de programación importante.Pero con mayor frecuencia dedico aproximadamente el 50% de mi día a codificar.Si el soporte de producción (no relacionado con la codificación) es intenso, es posible que solo dedique el 15% de mi día a codificar.

La mayoría de las empresas para las que he trabajado no participaban activamente en la evaluación de procesos ágiles o el desarrollo basado en pruebas, pero tampoco hicieron un buen trabajo en cascada;la mayoría de sus desarrolladores trabajaron con impunidad como vaqueros de cortar y pegar.

En ocasiones trabajo desde casa y con niños, es horrible.Soy más productivo en el trabajo.

Mi productividad es buena, pero podría ser mejor si se eliminara el factor de interrupción y el costo del cambio de contexto mental.El soporte de producción y los gastos generales de gestión de proyectos crean ese tipo de interrupciones.Pero ambas son partes necesarias del trabajo, así que no creo que pueda deshacerme de ellas.Lo que me gustaría considerar es una reestructuración del equipo para que las personas en los proyectos puedan concentrarse en los proyectos mientras que los demás puedan bloquear las interrupciones dedicándose al soporte.Y luego intercambiar cuando finalice el proyecto.

Desafortunadamente, nadie quiere brindar soporte, por lo que la otra medida de mejora de la productividad que desearía sería una de las siguientes:

  • Mejores herramientas/metodologías de prueba para acelerar las pruebas unitarias
  • Mejores herramientas/habilidades de análisis empresarial para mejorar la calidad del nuevo desarrollo y limitar sus contribuciones a la carga de soporte de producción.

Otros consejos

De manera realista, probablemente el promedio sea de 4 o 5 horas por día.Aunque es "grumoso", puede haber días en los que podría haber 8 o 9 horas.

De todos los desarrolladores de software que conozco, los que escriben código de producción (a diferencia de la investigación), 4 a 5 parecen ser el máximo de codificación real.Hay muchas otras cosas que suceden.

Y para ser honesto, hay mucha procrastinación.Creo que es un poco como el bloqueo de los escritores.A veces es difícil empezar, pero luego una buena sesión de 2 horas significa MUCHO trabajo realizado.Es simplemente toda la preparación por la que tienes que pasar, la experimentación para asegurarte de que estás adoptando el enfoque correcto.La interminable cantidad de mirar por la ventana y revisar el correo electrónico, etc.

Trabajo 37,5 horas a la semana.
Se supone que 30 de esas horas (80%) las debo facturar a nuestros clientes.
En realidad, encuentro que uso alrededor del 60% de la codificación en sistemas de clientes reales, el 20% experimentando con nuevas técnicas y leyendo blogs, y el 20% se desperdicia en política de oficina y "socialización".

¿Estoy feliz por eso?
¿Me gustaría poder mirar la pantalla 30 horas a la semana codificando las tareas que me asignaron?

Bien.Dado que el 20% del tiempo lo uso para mejorar mi oficio, en el 60% que es codificación efectiva probablemente produzco más de lo que produciría en el 90% de mi tiempo si no lo hiciera.
Por otra parte, intenta explicar ese hecho a los superiores;)

Bueno, generalmente llego en al menos quince minutos tarde, ah, uso la puerta lateral, de esa manera, Lumbergh no puede verme, je je, y, después de eso, solo me espacia durante aproximadamente una hora.

...Sí, sólo me quedo mirando mi escritorio;Pero parece que estoy trabajando.También hago eso durante otra hora después del almuerzo.Diría que en una semana dada probablemente solo hago unos quince minutos de trabajo real y real.

Para mí, cambiar de proyecto es una gran causa de procrastinación.Cuando acabo de terminar un proyecto tiendo a postergar el inicio del siguiente requisito que se me asigna.Mi mente todavía se siente como si estuviera en modo de codificación, pero primero tengo que estimar los gastos para crear una especificación.Así que tengo que pasar de codificar a llamar a los clientes y cosas por el estilo, lo cual me resulta incómodo.

Lo que más me ayuda a ser productivo es eliminar cualquier distracción en las primeras horas del día y comenzar inmediatamente con la tarea más importante del día.Necesito entrar en la corriente lo antes posible.


Recomiendo echar un vistazo a The Programmers' Stone:

Sabemos que el estrés perjudica algunas funciones cognitivas.La pérdida de esas funciones puede explicar precisamente por qué programar es difícil y mostrarnos muchas otras oportunidades para mejorar la forma en que organizamos las cosas.Las consecuencias llegan a tocar el lenguaje, la lógica y las normas culturales.Haga clic aquí para ver la Introducción...

Paso alrededor del 40% de mi día codificando.El 40% se destina a actividades que no son de codificación (como pelear con nuestro servidor de compilación incompleto o descubrir por qué NUnit falló sin ningún mensaje de error nuevamente o tratar de descubrir por qué nuestro código dejó de comunicarse con el servidor Oracle de abajo...basura como esa).El otro 20% suele gastarse procrastinando o en reuniones.

¿Estoy contento con mi productividad?Absolutamente no.Trabajo 7 horas al día y dedico aproximadamente 2,5 de esa cantidad a codificar.Preferiría pasar de 5 a 6 horas de mi día codificando, con solo una hora dedicada a todas las demás cosas (lamentablemente, lo único que haría que eso sucediera: que el PM dejara de jugar con los scripts de compilación todos los días). - no va a suceder).Lamentablemente, como soy desarrollador corporativo, la dirección no cree que se esté desperdiciando el tiempo.Como hago mucho más en ese 40% de mi día que la mayoría de los drones del edificio en una semana (incluido el PM), piensan que soy productivo.

@Bernard Dy:Probablemente he pasado el 30% de mi carrera en entornos corporativos (no lo estoy en este momento).Por lo general, es después de alguna idea inicial fallida (o no fallida, pero fallida), o algún tipo de agotamiento/cambio.Está bien por un tiempo, es agradable conocer gente de orígenes totalmente diferentes (quién hubiera pensado que sería tan divertido pasar el rato con abogados y actuarios), pero al final, me resulta demasiado difícil conseguirlo. levantarse por la mañana con motivación (o después de las vacaciones, con el temor de regresar), probablemente por razones como las que usted define (solo falta de cuidado).Pero es una buena experiencia y al menos una fuente de ideas.Y puedes conocer gente brillante en todas partes (no sólo los programadores son inteligentes; siempre intenté buscar quiénes eran los verdaderos cerebros detrás de un negocio).

Curiosamente, la única vez que practiqué agile/XP estricto fue en un entorno corporativo; en ese caso, probablemente 7 horas al día fueron código práctico (en un par). Nunca me había sentido tan agotado después de un día así.No estoy seguro de si eso es algo bueno, tal vez simplemente soy un vago.

Para responder algunas de mis propias preguntas:

El equipo actual en el que estoy solo realiza estimaciones brutas de tareas, por lo que es difícil realizar un seguimiento de las horas por día.Yo diría que, en mi carrera, el tiempo dedicado a la codificación ha oscilado entre el 25% (principalmente gestión) y el 85%+ (trabajar desde casa 4 días a la semana, reunirse para una reunión durante medio día una vez a la semana).Sin embargo, si tuviera que adivinar, el promedio probablemente rondaría el 60%.

Para mí, la mayor influencia en el tiempo que dedico a codificar es la presencia o ausencia de reuniones.Cuando trabajaba en proyectos ágiles con todos en la misma sala, las reuniones tendían a ser puntuales y muy cortas, por lo que el tiempo dedicado a la codificación era muy elevado.También sentí que pasaba menos tiempo (a veces mucho menos) haciendo cosas no relacionadas con la codificación cuando estaba en una sala de equipo, porque es mucho más fácil perder el tiempo, accidentalmente o de otra manera, cuando nadie tiene una vista clara de su monitor. .:)

Hago subcontratación y básicamente codifico todo el día, tengo dos proyectos y no tengo mucho tiempo para hacer nada más, lo que significa que no puedo trabajar más porque no pude terminar nada, esa es una buena política. debes tomar lo que puedas.

Recuerda también que debes tener tiempo libre y lo más importante es descansar lo suficiente porque si no no serás muy productivo.La clave aquí es la planificación y la disciplina.

En mi tiempo sin codificación lo pasé con mi esposa, también me gusta salir de la ciudad y tratar de no pensar en mis proyectos, cuanto más hago este equilibrio, más productivo soy.

Cuando no trabajo mucho me gusta leer blogs de programación y también me gusta estudiar programación.

Y finalmente me gustaría decir que en mi humilde opinión nuestra carrera no debe verse como un trabajo, sino como algo divertido.

Soy desarrollador de software en un departamento de I+D y trabajo 40 horas a la semana.

Paso como...El 10% de mi tiempo realmente codifica.En mis horas de no codificación, principalmente pruebo, evalúo, comparo y anoto resultados.También paso mucho tiempo escribiendo especificaciones para el código que escribiré e investigando el código que escribiré, participo en reuniones de lluvia de ideas para los proyectos actuales, etc.

Podría decir que de mis compañeros (también desarrolladores de software) soy quien más codifica en estos momentos;pero depende de en qué tarea trabajemos en cada momento.No cuantificaría la codificación como un trabajo duro.Si hay una buena especificación, una investigación adecuada y una buena comprensión del proyecto, la codificación es solo una formality y continúa casi sin problemas y rápidamente.

Aquí tenemos una oficina compartida, con dos equipos.Principalmente codificamos solos, rara vez en pareja.Mi trabajo cambia mucho la cantidad de tiempo que estuve codificando;En el pasado pasaba la mayor parte de mi tiempo codificando, sin una muy buena comprensión de la codificación.Si tuviera una tarea, inmediatamente comenzaría a codificar y volvería a codificar cada vez que me diera cuenta de que hice algo mal, etc.Y fue muy ineficaz.

La metodología de desarrollo se encuentra ahora en algún lugar entre la creación de prototipos y la espiral.Ha cambiado claramente el número de horas que codifico.

Estoy contento con mi productividad, relacionada con mis plazos y objetivos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top