Entradas etiquetadas ‘productividad’
La necesidad de descansar y desconectar
Una cosa que he aprendido desde que comencé a trabajar es que la productividad crece si se consiguen introducir períodos de descanso y de desconexión a lo largo del día y de la semana. He tardado mucho en aprender la lección y todavía sigo cayendo en muchas ocasiones en el error de no parar y tener siempre en la cabeza tareas que tengo pendientes de realizar o problemas sobre los que hay que intentar buscar una solución. Cuando esto sucede la culpa es exclusivamente mía, aunque mi profesión dificulte en demasiadas ocasiones el proceso de desconexión.
Es necesario para poder renovar las ideas y para fomentar la creatividad tener períodos de descanso, no puedo dar una fórmula sobre cuando es más apropiado tomar esos descansos, ya que cada persona es un mundo y conoce cuáles son sus límites y cuáles son sus necesidades. Acumular horas y más horas de trabajo sin dedicarnos un mínimo de tiempo, termina tarde o temprano pasando factura y cada vez se es menos productivo debido al cansancio y porque el trabajo cada vez más genera más ansiedad y menos satisfacción.
Es cierto que no siempre somos dueños de nuestro tiempo y que las circunstancias laborales y el entorno pueden provocar que buscar esos oasis de tiempo sea complicado, pero aunque sea difícil necesitamos buscar ese resquicio de aire fresco que proporciona descansar y desconectar, ese oasis permitirá que al ser más productivos y saber valorar mejor el tiempo, se consiga cada vez encontrar con más facilidad ese paréntesis tan necesario para cada uno de nosotros.
La respuesta a muchos problemas que se presentan en el trabajo se resuelven a partir de la creatividad, si ésta se ve anulada por el cansancio quiere decir que no seremos capaces de resolver esos problemas, que los resolveremos peor o que tardaremos más en resolverlo, lo que a su vez genera más trabajo y se cae en un círculo vicioso de difícil salida. Si echar más y más horas no permite salir de esta laberinto, ¿por qué no probar a descansar y desconectar un poco más y ver cuáles son los resultados?.
Automatiza, reutiliza y prueba que algo queda
Todo lo que sea huir de métodos artesanales en los procesos de desarrollo de software supone tiempo y dinero o lo que es lo mismo dinero y dinero.
1) Intenta que todos los desarrollos de la empresa sigan un mismo framework siempre que sea posible (en ocasiones las imposición de una determinada arquitectura o tecnología por el cliente lo impide, pero en el resto de casos, siempre que se pueda, haz uso del framework). El framework además es recomendable que esté recogido en un libro blanco de desarrollo (que va más allá del framework, lógicamente) y mantener ese libro blanco actualizado. Este framework único facilita la movilidad de los programadores entre proyectos y la mantenibilidad de los sistemas. No tengas miedo en actualizar el framework o el libro blanco, si aparece o encuentras alguna librería, componente, arquitectura, etc… mejor que la que usas, más estable, más robusta y/o que te permite una mayor productividad no dudes en cambiar el framework, eso sí, debe hacerse con prudencia y con un espacio de tiempo razonable entre cambio y cambio.
2) Intenta que el framework se base en estándares.
3) Si además del framework base, se tienen componentes software concretos y completos que resuelven problemáticas cada uno de ellos en diferentes tipos de proyectos, mejor que mejor.
4) Si se tienen productos completos que simplemente requieren su personalización en función del cliente, todavía mejor.
5) Siempre se habla de reutilizar código, pero si se consiguen reutilizar requisitos de proyectos o lo que es lo mismo la experiencia, también resulta de gran importancia. Para esto hay que documentar y establecer mecanismos que permitan localizar en la documentación de proyectos lo que se quiere y de esta forma obtener conocimiento.
6) La documentación de los proyectos queda obsoleta por la evolución de los mismos y resulta muy costosa mantenerla, por lo tanto, lo mejor es tener poca documentación pero buena y mantenerla actualizada. Por otro lado, toda aquella documentación que se pueda automatizar bienvenida sea y toda aquella documentación que se pueda sustituir mediante la aplicación de ingeniería inversa sobre cualquiera de los elementos del programa, sustitúyase.
7) Si existe software de gestión de versiones, MAVEN y herramientas software para definir entornos de integración continua, utilícense. Eso sí, bien. De nada te vale tener los fuentes en SVN si no tienes una buena política de etiquetado, de nada te vale usar MAVEN si no estrujas su potencial para automatizarte tareas, etc…
Independientemente de que se definan buenas prácticas hay que verificar que se siguen. Si puedes ten uno o más arquitectos que vayan sondeando el estado tecnológico de cada proyecto.
9) Ten documentado como es el proceso de implantación de software en tus clientes, permitirá ahorrar mucho tiempo.
10) Nunca es una pérdida de tiempo cada minuto que dediques a probar la aplicación antes de entregarla al cliente.
Anotar las tareas pendientes
Desde hace años tengo la práctica de anotar las tareas que tengo pendientes de realizar y reconozco que a día de hoy no podría trabajar de manera adecuada sin hacer uso de esa técnica.
¿Qué me aporta?
1) Recibo peticiones de diferentes personas y temáticas, las cuales en su mayoría requieren un tiempo moderado para su realización. La anotación de las mismas permite, reducir el riesgo de que se me olvide hacer algunas de las tareas y me permite priorizarlas.
2) Tener las tareas anotadas y poder verlas en su conjunto favorece el proceso de priorización que he comentado en el punto anterior y además simplifica la agrupación de tareas y la reflexión sobre las mismas, lo que permite tomar mejores decisiones sobre las mismas.
3) La anotación de tareas y la señalización de las que están hechas, es un elemento de motivación muy importante.
4) Disminución del tráfico mental. Si tengo la tarea anotada, disminuye o desaparece la necesidad (sensación) de tener que recordar que hay que hacerla, ya que si se olvida está registrada en un sitio que voy a mirar seguro.
Me he referido en este post a lo que es el hecho de anotar las tareas sin indicar qué instrumento utilizar para realizar dichas anotaciones, ya que entiendo que lo importante es el hecho de la anotación en sí, por encima de la herramienta que se utilice, aunque el uso de una herramienta adecuada puede hacer todavía más productivo si cabe el proceso de la anotación de tareas.
En mi caso utilizo un método un tanto rudimentario, como es un cuaderno. He hecho algunas pruebas con algún software pero no han sido positivas por falta de disciplina por mi parte, ya que como me muevo mucho, me resulta mucho más cómodo anotar las tareas en mi cuaderno y no tener que trascribirlas a continuación a una aplicación. En cualquier caso reconozco que tengo que evolucionar en este sentido e ir más allá al uso del cuaderno, pero independientemente de eso, también tengo que reconocer que desde hace mucho tiempo, el uso del cuaderno me ha traído muy buenos resultados.
Otro aspecto que considero también importante es el repaso semanal de las tareas pendientes, ya que favorece esa visión global de las tareas que comenté anteriormente y por consiguiente ayuda a la priorización, agrupación y reflexión sobre las mismas.
Sprint final
Ya nos pasó a todos cuando estudiábamos. Cuando más conseguíamos rendir era en los días previos a los exámenes. Muchas veces ese sprint final permitía que llegásemos al aprobado o consiguiéramos mejores notas, pero si se dejaba todo en manos de ese último impulso podría ocurrir que no diera tiempo de estudiarnos todo el temario con la suficiente profundidad y suspender (o no sacar la nota que nos habíamos marcado como objetivo).
Los seres humanos somos así, la cercanía del momento decisivo hace que nos pongamos las pilas y empecemos a rendir con el nivel que hubiéramos deseado desde el principio.
En el proceso de desarrollo de software se repite, como no podría ser de otra forma, esta máxima, normalmente la proximidad de una fecha de entrega mejora el rendimiento y productividad del equipo (por regla general, también la cantidad de tiempo que se dedica al proyecto, empujado por la necesidad de querer cumplir los plazos). También es cierto que la mala evaluación de las fechas de entrega, siendo demasiado exigentes en muchos casos, obliga en gran cantidad de ocasiones a hacer este sprint final por mucho que se apriete o se mantenga un nivel alto de rendimiento en todo el proyecto.
Por tanto, el sprint final va a ser necesario en la mayoría de los proyectos de desarrollo de software (esos famosos picos de trabajo), que va a durar más cuanto peor esté estimado el proyecto en tiempo y/o recursos (picos de trabajo continuos (y que darán lugar además de tener quemado al equipo del proyecto a una merma en la calidad del producto y a un más que probable retraso en la entrega)) pero que en cualquier caso es necesario mantener un ritmo constante para terminar el proyecto en fecha, ya que si no se ha avanzado lo suficiente antes del sprint final será muy complicado que se puedan cumplir los plazos con un nivel de calidad aceptable.
Overhead. La regla de los dos minutos
Dentro de la gestión del tiempo y de la productividad, existe una regla denominada “Regla de los dos minutos” que dice que toda aquella tarea que llegue, cuyo tiempo estimado de ejecución sea de dos minutos o inferior, se realice de forma inmediata, ya que el coste de mantener dicha tarea en el listado de pendientes es superior al coste que tendría su ejecución al instante. Además, nos da la sensación de avance en el trabajo, un intangible que ayuda muy mucho a nuestra productividad personal.
La regla de los dos minutos es muy simple y trato de ejecutarla siempre que me es posible y los resultados están siendo satisfactorios.
Como acabo de comentar mantener una tarea en el listado de pendientes (ya sea este listado físico, digital o mental) tiene un overhead, que es la suma de una serie de tiempos (algunos, en función de la tarea, pueden no existir o ser poco significativos): el tiempo de anotación de la tarea, el tiempo que se necesite para reorganizar o repriorizar la tarea conforme vayan llegando otras, el tiempo que mentalmente se dedica a dar vueltas a esa tarea que todavía no se ha ejecutado, el tiempo que se requiere para contestar a aquellas personas que demandan la realización de la tarea o preguntan por la misma, etc…
Estos tiempos pueden hacer que en muchos casos el overhead supere incluso al tiempo que se requiere para realizar la tarea. Por eso, independientemente de que exista una regla muy probada y que por tanto produce buenos resultados, como es la de los dos minutos, es conveniente, siempre que sea posible, dar salida con la mayor celeridad posible a aquellas tareas que tengan corta duración o bien que teniendo una duración mayor llevan mucho tiempo encoladas.
Productividad y aislamiento
Existen determinadas tareas de vez en cuando tengo que realizar que no las puedo ejecutar de forma eficiente (sobre todo en términos de tiempo) en mi puesto de trabajo, ya que requieren de un nivel de concentración superior al umbral máximo que puedo alcanzar en el mismo.
En estos casos, la única solución es el aislamiento, en mi caso tengo la suerte de que me permiten realizar estas tareas desde casa y poder compensarlo después, en otras situaciones eso no será posible (por ejemplo porque por políticas de empresa no se permita), pero por lo menos habría que arbitrar algún mecanismo para ofrecerle al trabajador ese entorno que durante un tiempo necesita para poder hacer frente a una tarea que requiere un alto nivel de concentración. Como es lógico el trabajador, cuando se encuentre en este tipo de situaciones, debe hablar con su jefe para exponerle la necesidad (otra cosa será que te den una solución, pero si no se pide, seguro que la solución no llega).
En estos casos ganan las dos partes organización y trabajador, ya que permite el desempeño de esas tareas concretas con una mayor productividad, por lo que la primera (que debe ser la mayor interesada) en intentar conseguir siempre el mayor nivel de productividad, no debería poner reparos en proporcionar los medios adecuados para poder ejecutar este tipo de tareas en las circunstancias más óptimas posibles.
La planificación, organización y delegación de tareas reparten dividendos
Eso de trabajar muchas horas (se entiende trabajar muchas horas, trabajar muchas más horas que las que me pagan), es algo que tengo asumido y que digiero más o menos en función de la ilusión y motivación que me transmitan los proyectos y el apoyo de la institución en darme los medios necesarios para sacar adelante los mismos. Y claro, esto es senoidal.
Sabiendo que tengo mucho trabajo que hacer y que sufro múltiples interrupciones por la naturaleza de mi trabajo, sólo me queda ir aprendiendo poco a poco a planificar, organizar y optimizar mi trabajo.
Aplicando estas técnicas he conseguido de manera importante hacer mi trabajo más eficiente, de manera que consigo sacar más trabajo adelante en menos margen de tiempo. Ese tiempo extra que gano, es tiempo que gano para mi tiempo libre y sobre todo para ganar un poquito de tranquilidad, ya que uno de los problemas que tenemos los que nos dedicamos al desarrollo de software es que por muchos medios que pongamos para evitarlo siempre nos llevamos el trabajo en la cabeza.
He aprendido que el tiempo invertido en planificar, organizar los trabajos y comunicar cláramente a usuarios, proveedores y compañeros qué es lo que necesito o quiero es tiempo que después recupero multiplicado por unas cuantas unidades.
También he aprendido a delegar (esto cuesta más), a que no se puede estar en varios sitios al mismo tiempo y a centrarme en tareas que se corresponden exclusivamente a mi trabajo o a mis proyectos.
Dejar las cosas para mañana
Otra de mis asignaturas pendientes en el ámbito laboral es reducir mi procrastinación, es decir, la tendencia de dejar cosas para mañana que puedo resolver hoy. Bien es cierto que he mejorado mucho en este aspecto, pero todavía tengo margen de mejora.
En muchos casos la procrastinación llega por la aplicación de ese famoso dicho de “deja para mañana lo que puedas hacer hoy”. En mi caso la procrastinación no se produce por eso, sino por la tendencia a postergar la realización de tareas que me gusta menos hacer.
Es muy humano centrarnos en lo que nos gusta y evitar lo que nos gusta menos, somos así y yo no iba a ser una excepción, no obstante, lo que sí he conseguido aprender es que tarde o temprano las cosas que retrasamos su ejecución se tienen que hacer y este retraso, en ocasiones, causa más problemas y más quebraderos de cabeza que si se hubiera ejecutado la tarea sin más, voy más lejos, en ocasiones, genera mucho más trabajo “no agradable” que el que hubiera tenido que hacer si la tarea la hubiera abordado cuando debiera.
Lo que sí tengo claro es que además de seguir reduciendo mi procrastinación, es que no hay que obsesionarse con ello una vez que se es consciente de que la productividad mejora conforme reducimos la procrastinación, es decir, una vez que somos conscientes de que hay que mejorar en este sentido. Por tanto la toma de conciencia del problema, terminará poco a poco por ir resolviéndolo (tal vez no de forma completa, pero sí de forma que se noten beneficios).
¿Por qué digo de que no hay que obsesionarse? Pues porque puede ser peor el remedio que la enfermedad, la obsesión por llevar todo al día provoca stress y como consecuencia la típica sensación de bloqueo (hay veces que por necesidad en el trabajo hay que llevar las cosas completamente al día, pero esto solo es mantenible en períodos razonables de tiempo, más allá de esto, los resultados son más negativos que positivos). Por tanto, en ocasiones procrastinar puede ser beneficioso (si uno está muy saturado y puede dejar una tarea para mañana (o pasado) que no resulta prioritaria y que no apetece hacer, ¿por qué no realizar otra aunque sea incluso menos prioritaria pero que se nos apetezca más?).
El mérito: Sacar el máximo provecho de los recursos disponibles
Hace bastante tiempo comenté en un artículo que mis mayores logros profesionales hasta la fecha han sido conseguidos gracias a trabajar con el equipo de personas con el que he colaborado en cada uno de mis proyectos.
También comento muchas veces que es bastante fácil conseguir títulos con el Barcelona o con el Madrid, pero que lo difícil es conseguirlo con un equipo de tercera división. Yo tengo la suerte de trabajar con personas de nivel de Champion League, por lo que el resultado de los trabajos tiene ese nivel y si alguna vez no se consigue la culpa no es exclusiva del equipo (todo gran equipo juega, en ocasiones, malos partidos), también lo es mía (en gran parte) y del público (el conjunto de usuarios).
Lo que es complicado realmente es sacar rendimiento de personas que carecen de ese nivel y conseguir que ejecuten un trabajo más que digno y a la altura de personal con mayor talento. Esas personas, las que son capaces de conseguir sacar los proyectos hacia adelante buscando recursos hasta debajo de las piedras y sacándoles el máximo partido son las que realmente tienen mérito.
Es evidente que una organización debe buscar siempre contratar el personal con el mayor talento y nivel de implicación posible, pero hay veces que se falla, que el mercado no ofrece más o bien que es necesario que pase un período de transición y aprendizaje (que puede durar más o menos tiempo, en función de cada persona) y es sacar el mayor partido posible de estas personas donde está la clave y el mérito, ya que al fin y al cabo a la organización le suponen un coste y son recursos que no pueden ser sustituidos por otros, por lo que la clave está en darles su sitio, asignarles un trabajo en el que puedan rendir y ser provechosos para los proyectos, ¿qué a veces pueden resultar un lastre? sí, pero si no se intenta poner un remedio, si no se trata de buscar una solución, el lastre continuará siempre ahí, si se intenta por lo menos se da la oportunidad de revertir la situación y que la persona sea cada vez más de utilidad para el proyecto. Si una persona puede ahorrar al resto del equipo de proyecto una hora diaria de trabajo, ¿no será mejor esto que no ahorre nada de trabajo?, ¿y si dentro de un mes ahorra una hora y media?, ¿y si dentro de dos ahorra una hora y tres cuartos?. Conozco personas que empezaron de grabadores de datos y hoy en día son directores regionales de importantes empresas TIC (y por méritos propios), por eso nunca hay que menospreciar la capacidad de progresión de una persona y la posibilidad de sacarles el mayor rendimiento, hay personas que son capaces de rendir extraordinariamente a la semana de empezar a trabajar y otras que necesitan un par de años.
Muchos de vosotros, pensaréis, ¿no será mejor echar a quién no rinda y contratar a alguien que sí rinda? Evidentemente esa es la solución más fácil, pero no siempre se puede aplicar. Hay circunstancias donde si la personas después del rodaje siguen sin funcionar (sobre todo por falta de implicación o voluntad) es recomendable que se prescinda de ellas, ya que a mi juicio gran parte de la falta de talento se puede suplir con trabajo y voluntad, pero si no existe esa voluntad por mejorar o ese nivel de implicación con la empresa lo mejor es que cada cual, empresa y trabajador, busquen caminos distintos. Lo mismo la empresa o sus superiores no han sido capaces de motivar al trabajador o el trabajador no ha sido capaz de motivar a la empresa sobre su continuidad (nunca la culpa es de alguien al 100%).
Por tanto, tan importante son las personas que son capaces de sacar proyectos hacia adelante con las mayores ganancias posibles, como aquellas que son capaces de hacer madurar a los recursos humanos de la organización, haciéndolos mejores y más válidos.
Avisando de las vacaciones
Otras de las cosas que suelo hacer antes de irme de vacaciones es avisar a mi entorno laboral, a los directores usuarios, a mis diferentes interlocutores de los proveedores y al grupo de usuarios más activo, cuándo comienzan y cuando terminan mis vacaciones y quiénes son las personas de contacto con las que se tienen que comunicar en mi ausencia en el caso de que sea necesario. De esta forma se reducen las posibilidades de que tengan que ponerse en contacto conmigo por teléfono durante las vacaciones y por otro se evita pérdidas de tiempo por parte de las personas a las que aviso ya que por un lado saben que no estoy y por otro saben con quién tienen que ponerse en contacto, de esta forma no tienen que andar de un lado para otro preguntando quién se encarga de esto o enviando correos que tal vez tarden en tener respuesta.
Sé que hay mucha gente que no le gusta pregonar cuál es su período vacacional y lo respeto, simplemente lo que comento es algo que llevo a la práctica, que me da buenos resultados y que por lo tanto aconsejo. Además es algo que da (en mi opinión) buena imagen, ya que las personas de contacto pueden comprobar que existe una continuidad en el servicio y que ésta ha sido propiciada de forma proactiva.