En el desarrollo del Software, ¿a que dedicas tu tiempo?
Durante el pasado Summit, dónde nos reunimos la mayoría de MVPs del mundo junto a otras personas reconocidas mundialmente como los MVS o algunos invitados de excepción, tuvimos todos numerosas charlas cruzadas de pasillo dónde pudimos debatir no sólo de si un chuletón está mejor muy hecho o en su punto, si no de aspectos más precisos y relacionados con el propio desarrollo del Software y la informática en su más amplio espectro.
De hecho, recuerdo una conversación con Rodigo. La conversación fue muy general, apenas duró 1 minuto quizás, pero son de esas conversaciones que calan y que cuando acabas, te dices, debo escribir en geeks un comentario sobre esto. Y más aún después de leer el último mensaje de Rodrigo en su blog y una vez leídos los primeros comentarios, ya que indirectamente leo aspectos relacionados con lo que quiero tratar aquí.
La pregunta clave que debe hacerse todo informático independientemente de su rol, es… ¿a que dedicas tu tiempo cuando estás frente a un ordenador trabajando?. En el caso del desarrollo del Software, esta pregunta es aún más importante, porque el desarrollo del Software, es en mi opinión un trabajo creativo, algo en lo que coincidía en mi conversación con Rodrigo.
Es muy normal, que todo el mundo tenga hoy en día cien mil herramientas Software abiertas en su ordenador, y además muchas de ellas no son a lo mejor vitales para ejercer nuestro trabajo. Además, en un mundo tan interconectado como el nuestro, se suele tener muchas más herramientas cerca a las que se presta mucha atención y que no tienen porque estar directamente relacionadas con un ordenador o con nuestro trabajo diario. Pero no olvidemos también que hay aspectos generales del ambiente de trabajo, que pueden incidir positiva o negativamente al rendimiento diario de nuestro trabajo.
Expondré algún ejemplo sencillo para que se me entienda mejor: ¿cuántas personas tienen abierto el programa gestor de correo electrónico la mayor parte del tiempo cuando estamos trabajando?… levantad la mano y no tengáis vergüenza. Es normal que ocurra así en un mundo como el nuestro, cada vez más intercomunicado o interconectado. ¿Cuántas llamadas telefónicas recibes que nada tienen que ver con el trabajo diario?… puede que menos que el caso del correo electrónico, pero también contabiliza una buena cantidad de interrupciones.
Sirvan estos dos breves ejemplos, para incidir en un aspecto.
El desarrollo del Software es una tarea creativa, requiere una concentración y atención plena de lo que estamos haciendo. Interrupciones siempre las hay, pero cada interrupción, incide de forma muy directa en nuestra atención y por lo tanto en nuestro rendimiento.
En el desarrollo del Software, como comentamos en aquella ocasión en USA, se requieren procesos de atención continuada que forma una gráfica de una Distribución Normal continuada… lo que es una campana de Gauss unida a otra, y así consecutivamente. Cada campana compone una tarea, y es que cuando se desarrolla Software, lo normal es que uno preste especial atención a esa tarea y que cuando acabe, piense de nuevo en como ejecutar la siguiente, analice la situación nuevamente y comience el proceso de lo que es una nueva campana, así durante todo el proceso del desarrollo del Software.
En muchas ocasiones, cuando abordamos un proyecto de desarrollo del Software nos vemos inmersos en que según avanzamos en el desarrollo, nos acordamos de diferentes cosas o aspectos puntuales, ideas, que a lo mejor en ese punto no las apuntas, pero que aislados de todo lo que nos rodea, somos capaces de recordar. Esto entra dentro del propio proceso creativo del desarrollador.
El objetivo del desarrollo del Software, es conseguir el máximo rendimiento y provecho de todo nuestro trabajo. El rendimiento no obstante, tiene una relación muy estrecha con la motivación. ¿Quién no ha tenido un día pez o torpe de esos que no te sale nada de nada o que no te concentras lo suficiente?. Yo lo he tenido, y no me duele decirlo, yo por lo menos me considero un ser humano y no soy ninguna máquina (sería extremadamente aburrido sino). Como anécdota de esto último que comento, recuerdo incluso la ocasión en la que a una persona del equipo la dije que se fuera a su casa a descansar y a resolver sus problemas. Dicho así suena fuerte sí, y de hecho en un principio me miraba como si le hubiera menos preciado, pero tengo por costumbre explicar siempre el porqué de las cosas y de hecho en aquella ocasión, aproveché para explicar a esta persona que lo que quería es tenerle rindiendo contento, motivado, a gusto, y no pasando un día malo en el trabajo como el que va al campo a mirar los árboles y escuchar el canturrear de los pajaritos pensando únicamente en sus cosas, teniendo un problema rondándole en la cabeza y no rindiendo lo suficiente o no a como me tenía acostumbrado, no disfrutando del día a día, todos tenemos días malos como decía antes. El caso es que esta persona se fue a su casa o a donde fuera (tampoco me importaba la verdad), resolvió el problema que no le hacía estar al 100%, y al día siguiente estaba trabajando a un ritmo mucho mayor de ese 100% porque además se veía con la obligación moral de dar el do de pecho. Psicología o no, la motivación es necesaria, incluso para el jefe de proyecto, pero esto es otra cosa que da para otro mensaje más largo quizás porque no todo el mundo lo entiende, así que sigamos con lo que comentamos en este mensaje.
El problema de todo lo que os comento hasta aquí está en la productividad, la motivación y el rendimiento. Y el mayor enemigo de esto (el mayor, no el único) son las interrupciones, las paradas.
Las paradas e interrupciones, se pueden dar de muy diferentes formas. Aquí trato algunos de estos aspectos.
En la conversación que tuve con Rodrigo, hablábamos de que programas como los lectores RSS, los gestores de correo electrónico, los móviles personales no silenciados, etc., no sólo rompen el ritmo y la concentración del trabajo diario de una persona, sino que incluso a veces, rompe el ritmo de las personas que nos rodean.
En muchas ocasiones, tal y como ya esbozaba anteriormente, cuando desarrollas una aplicación tienes 3 ó 4 ideas que apuntar, pero estás inmerso en una de esas campanas de Gauss que comentaba, y piensas, cuando acabe esta tarea apunto esas ideas antes de que se me olviden, pero zás, llega una interrupción, pasan 5 ó 10 minutos sin que seas consciente del tiempo de interrupción, y luego ni te acuerdas de la mitad de las cosas que tenías para apuntar. A mí por eso, me gusta tener un papel cerca o un bloc de notas de Windows, dónde apuntar rápidamente con palabras muy generales esas ideas (3, 6 palabras por idea) y seguir desarrollando. Aunque reconozco que no siempre lo hago, porque a veces andas tan ocupado que casi no te da tiempo ni de hacerlo.
Me hace gracia ver que en muchos equipos de desarrollo del Software, se trata a las personas de determinados roles como máquinas, cachos de carne, gente o personas sin iniciativa, sin que puedan criticar o llevar la contraria en algo, o que crean estar en posesión de la verdad absoluta. También me hace gracia las personas que dicen admitir críticas, pero que luego por debajo te cruzan con una equis para el resto de tus días. O las personas que interrumpen constantemente las tareas de los desarrolladores preguntando como va tal tarea o como va tal proyecto, o que generan tensión en exceso, algo que se llega incluso a mascar en el ambiente. O bien aquellas personas que no entienden el desarrollo del Software como un trabajo creativo, el cuál obliga al desarrollador a pensar y ejecutar, pensar y ejecutar, y que para pensar, no debe estar necesariamente delante de un PC abriendo y cerrando la boca como un pez en una pecera, atado a la silla o leyendo la documentación y ejecutándola sin rechistar y sin opinar, pero tampoco es para que critique o cuestione todo y cada una de las cosas que se hace, que hay de todo en la viña del Señor.
Nadie dijo que el desarrollo del Software sea fácil o sencillo (esta frase creo que la digo cien mil millones de veces en mis mensajes en el blog), pero es que la gestión de los proyectos tampoco lo es, aunque mucha gente piense que habiendo hecho un postre, es capaz de hacer doscientos.
Cada proyecto es diferente. Sí es cierto que puede tener similitudes los unos con los otros, pero cada uno es independiente y diferente. Las variables que rodean a un proyecto son siempre nuevas, te pueden sonar o ser parecidas, pero son nuevas. La situación del equipo de desarrollo también lo es. Cada momento también, así como la tecnología a usar, y un enorme número de variantes que hacen que cada proyecto sea como decía, único y creativo. Es lo divertido y bonito de nuestra profesión y de nuestro trabajo.
El mayor enemigo no obstante, es o son siempre los mismos, la motivación, el rendimiento, la productividad y el ambiente de trabajo.
El programador debe tener iniciativa propia, es a mi modo de ver, fundamental… ¿a que todos hemos oído la palabra delegar?,… ¿cuántos realmente saben utilizarla?. La teoría es muy sencilla de contar, la práctica no lo es tanto.
- El desarrollo del Software es un proceso creativo que requiere pensar y ejecutar una acción general de forma repetitiva, pero no sólo ejecutar como máquinas. Pensar es necesario.
- Dejar que el programador o personas que forman parte del proceso de desarrollo del Software tenga iniciativa, no es malo, es justamente todo lo contrario, aunque es cierto que hay personas que piensan que eso está más cerca de cuestionar su autoridad de resposable de un proyecto que de otra cosa.
- Las interrupciones y la motivación inciden de forma directa en nuestro rendimiento. No sólo hay que decir como hay que hacer las cosas, también hay que explicar porqué hay que hacerlas así. Las interrupciones deben estar medidas para incidir en el rendimiento lo menos posible.
- Aceptar críticas no es signo de debilidad, sino todo lo contrario, demuestra apertura y ganas de mejorar. Todo el mundo puede aportar, y aportar es involucrarse en un proyecto, formar parte de él. El éxito de un proyecto está en que todas las personas que forman parte del mismo, se involucren sintiéndolo como propio.
- Tener un teléfono móvil personal conectado todo el día, absorve buena parte de nuestra atención y de aquellos que nos rodean.
- Si tienes que leer un mensaje de correo electrónico, no hace falta que tengas abierto el programa gestor de correo todo el día, basta que lo abras dos, tres o cuatro veces al día, a no ser que estés esperando un mensaje urgente o cosas parecidas.
- Si tienes un lector de RSS y no lo vas a abrir hasta el final del día para leer sus noticias, ¿no crees que es más sensato abrirlo directamente al final de ese día o justo antes de ir a comer y no tenerlo abierto todo el rato?.
- Programas como Skype o Messenger, nos facilitan la comunicación interna en muchas ocasiones, pero aunque es a veces indispensable para según que situaciones, su excesivo uso incide nuevamente o puede incidir en nuestro rendimiento.
Podría seguir enumerando aspectos como por ejemplo que cuando dentro de un proyecto se hace una promesa se ha de cumplir, u otras tantas cosas que deben tenerse en cuenta en el buen hacer del desarrollo del Software y que casi siempre es aplicable a casi todos los trabajos, pero me quedo con las conclusiones que he enumerado y que daría para más mensajes en el blog. Lo cierto es que como creo que verá la inmensa mayoría de personas, hay muchas tareas diarias que nos impiden avanzar de forma constante y normal en nuestros procesos.
Con todo esto, creo sinceramente que no estaría nada mal que en la carrera de informática, se diera una clase de psicología general (no se si se da hoy día, pero yo no la dí y no hace tantos años que terminé la carrera). Se que muchos me dirán que todo esto que decimos son aspectos de sentido común, pero la psicología en general obedece a aspectos del sentido común que en muchas ocasiones pasamos por alto.
Que conste que no trato de tomar mis comentarios como una ley de prohibiciones o mandatos de como se han de hacer las cosas, pero sí como para comentarlas, analizarlas, meditarlas, tenerlas en cuenta, hacerlas ver, y que cada uno debata y tome sus decisiones de acuerdo a sus responsabilidades.
¿Que opinas?. ¿A que dedicas tú el tiempo cuando desarrollas Software?. ¿Eres realmente productivo?. ¿Te consideras capaz de cambiar alguno de tus hábitos?.
7 Responsesso far
Hola Jorge!
Muy cierto lo que dices, sobre todo cuando eres freelance, y estas expuesto a más tipo de interrupciones.
Pero creo que todo es parte de la disciplina que puedas cultivar, y es que no creo que se trata que después de leer este post, cierres el messenger, el skype, el feedreader, el outlook, la página de foros que estabas revisando… y en fin todo este tipo de cosas que estabas haciendo fuera del trabajo, pero pasado lo vuelves hacer. A veces es incómodo tener que implantar reglas, como: -los que entran al msn se les amonesta, pero para llegar a eso es obvio que has tenido que estar metido en algún tipo de distracción y retrasando el cronograma proyecto, porque bueno si cumples con tu cronograma no creo que tu jefe de proyecto piense que estes con alguna distracción. Y tampoco es que nadie entra al msn, muchas veces es usado productivamente para hacer una consulta técnica o algo relacionado con el proyecto, pero si usas el msn para que juanito te cuente lo que hizo el fin de semana, como que no.. todo tiene su momento.
Y resumiendo, a mi parecer es parte de disciplina, y si tienes estas malas costumbres de perder productividad por realizar tareas que no tienen que ver nada con el proyecto, no es algo que digas mañana no uso nada eso, la disciplina es algo que tienes que cultivar.
P.D.: Podríamos hacer un ejercicio mucho más práctico, usar un cronometro en el horario de trabajo, y cronometrar cuantas horas del día realmente trabajas, es decir que cuando revises correos, leas noticias, entras al messenger, leas blogs (:$), detengas el cronometro, y lo continues cuando te pongas a trabajar, al final de la semana y al revisar los resultados se darán cuenta porque se retrasa tanto el proyecto 😉
Saludos,
Me encanta que hayas sacado a colación la palabra disciplina, porque además de que estoy de acuerdo contigo en que hay que cultivarla y no es algo que se tiene de la noche a la mañana, no se trata tampoco de que las empresas impongan una, sino de dejar al empleado que él mismo como persona responsable de su trabajo, se la imponga así mismo.
Es como las personas que se van a tomar un café cuatro veces al día, que las hay, sino, de que se hace durante ese tiempo. Hay quien utiliza el tiempo del café para hablar del fin de semana, y hay quien lo usa para discutir no se que cosa relacionada con el trabajo y que puede resolverle alguna duda o problema. Como todo en la vida, es cuestión de decidir y elegir que hacer con el tiempo y como hacerlo.
Todo esto de la disciplina y lo que comentamos, tiene especial relación con la iniciativa. Todo el mundo debe tenerla esté dónde esté dentro de la jerarquía de la empresa.
Lo del cronómetro me parece genial. Es una buena práctica para saber o contabilizar de alguna manera, todo ese tiempo perdido. Si lo hiciéramos, nos daríamos cuenta que todos (incluido yo el primero), perdemos tiempo en cosas que igual podríamos haber invertido en algo más productivo.
Había un libro que me recomendaron hace unos años y que finalmente no me compré ni leí, cuyo título era algo así como la «gestión del tiempo». Parece una tontería, pero al día perdemos mucho tiempo sin hacerlo productivo, o nos marcamos unas pautas y formas de priorizar tareas en el tiempo de forma errónea, y cuando digo sin hacerlo productivo no me refiero a estar trabajando, estar con la familia también lo es. 😉
Muchas gracias por tu aportación Sergio. Así nos enriquecemos todos y mucho. 🙂
Hola Jorge,
Tener cerradas las comunicaciones para centrarte en el desarrollo en mi opinión no sería una buana práctica. Porque si cuentas todo el tiempo que tardas para abrir y cerrar los programas de comunicaciones cada vez que los necesites pienso que eso si sería perder un tiempo precioso.
Sinceramente siento tener que decir que el día que me quiten internet no podría programar ni las mitad de las cosas que hago. Necesito las mayores fuentes de información posibles y cualquier mail, rss, navegador, IM que me aporte conocimiento y comunicación siempre será bienbenido, porque a mucho que me pese nunca tendre suficiente conocimiento de todo lo que esta sucediendo en mi trabajo.
Lo único que me ha quedado claro en estos años es que el proceso de desarrollo de software es dinámico. Encerrarse en si mismos en busca de concentración, como muchos hacen con sus cascos para escuchar música, es un sintoma que tu proyecto a dejado de atender a esos cambios.
Esta claro que la concentración es necesaria en nuestro trabajo pero como bien matiza Sergio debería ser fruto de una autodiciplina flexible nunca impuesta. A pesar de eso yo personalmente estoy en contra de someterse al exámen de un cronometro puesto que todos las cosas de las que estoy hablando las considero parte misma del desarrollo de las aplicaciones modernas.
Penser en los exitos que estan cosechando los desarrollos OpenSource que se regulan y autogestionan, esa palabra que tan de moda esta en otros ambitos como los deportivos, atraves de esa maravilloa herrmienta que llamamos Internet.
Todo lo que nos rodea cambia y nostros no podemos dar la espalda en ningun momento a nuestra realidad porque quizas cuando queramos ponernos al día ya sea demasiado tarde.
Quizas siempre acabe estando demasiado filosófico… jejeje
Saludos.
Bien bien bien… esto se anima. 🙂
Voy a dejar algo claro antes de continuar, por si acaso he dado con mis comentarios una impresión diferente.
En ningún momento he tratado de decir que la empresa debe implantar una disciplina, de hecho, los que me conocen saben como odio esas prácticas, como las de fichar para ir al baño y cosas así. Eso genera en mi modesta opinión un efecto precisamente contrario al buscado en cuanto a productividad y rendimiento.
En mis comentarios no hablé de normas rígidas, de hecho lo puntualizaba al final de los mismos «Que conste que no trato de tomar mis comentarios como una ley de prohibiciones o mandatos de como se han de hacer las cosas, pero sí como para comentarlas, analizarlas, meditarlas, tenerlas en cuenta, hacerlas ver, y que cada uno debata y tome sus decisiones de acuerdo a sus responsabilidades.», sino de lo que muy bien puntualiza Sergio y que recoje mi idea, la de la autoregulación. Todos somos responsables y todos sabemos como somos, los hay que se despistan con el vuelo de una mosca y los hay que no se enteran de que hablas con ellos hasta que les das en el hombro.
Sobre tus comentarios, te diré que yo no enciendo el gestor de correo y me quedo mirándolo. Lo enciendo, y sigo encendiendo más programas (lector de RSS, etc), y no se tarda tanto en hacer eso como lo que se tarda despistándonos cuando nos llega una notificación nueva que no es otra cosa que una interrupción.
Acerca de las aplicaciones que impulsan nuestra productividad, totalmente de acuerdo, pero considero que hay que precisar un poco más. No es lo mismo tener una duda y acudir al navegador Web o lector RSS en un momento dado, que tener abierto el lector de RSS o de noticias, o el gestor de correo que te avisa e interrumpe tu atención con las notificaciones.
Lo del cronómetro que indica Sergio, lo tomaría cada uno como algo peculiar en cuanto a contabilizar, pero no como jugadores de ajedrez o similares.
Respecto al tema de los cascos, estoy diametralmente en contra respecto a tu apreciación general. Es cierto que el vivir dentro de su mundo cuando uno se pone unos cascos puede no ayudar, pero eso no quiere decir o no tiene porque ser un síntoma de que un proyecto ha dejado de atender a los cambios. Hay a veces mucho ruido fuera alrededor que obliga a que uno trate de abtraerse de esa distración tratando de buscar un equilibrio de concentración que no encuentra escuchando música o similar.
Todo lo que discutimos, obedece a nuestra experiencia sin duda, y cada una puede ser dispar. Por eso animaba a participar en este mini-debate, porque sabía que era un tema polémico o cuanto menos, animado en cuanto a sus intervenciones.
Muchas gracias por tus opiniones. 🙂
Estoy totalmente de acuerdo con Jorge, y creo su intención al postear este artículo daba por sentado lo que aclara en el comentario sobre la disciplina.
Y en ningun caso dio a entender la necesidad de ponerle un límite a los empleados de una empresa.
Muy interesante Jorge…
Muy bueno e interesante!!! si es verdad que hay cosas que se dan por echas pero no lo tienes en cuenta y otras tener en cuenta.
Un Saludo
Hola Jorge Saludos…
Creo que te has dado cuenta que todas las personas que postearon, están de acuerdo con tu artículo, esto significa que existen dos fuerzas que están chocando… Te lo explico
Fuerza 1.-
Tengo un tiempo estimado o programado para entregar una aplicación o realizar una parte del proyecto x.
Fuerza 2.-
Soy administrador o moderador de un foro y ayudo a personas que tengan problemas o realicen preguntas.
Realmente cierto grupo de nosotros hace esto, estamos en nuestro trabajo (trabajando o desarrollando nuestra aplicación) y de cuando en vez entramos a algún blog o un forum para ayudar a personas, como nos ayudaron a nosotros.
Nuestro trabajo que nos da dinero y placer, pero nuestro placer que no nos da dinero pero nos da mucho placer (ayudar a personas con problemas, compartir opiniones, intercambiar código, etc.)
Creo que somos buenos desarrolladores y programadores, que ni siquiera sabemos programar nuestro tiempo y espacio.
Bueno saludos y realmente tremendo artículo.