Estilo de gestión del kernel Linux Este breve documento describe el estilo de gestión preferido (o inventado, según a quién le preguntes) para el kernel Linux. En teoría debería seguir el formato del documento CodingStyle [EstiloProgramacion] hasta cierto punto, y se ha escrito sobre todo para evitar responder (*) a las mismas preguntas (o parecidas) una y otra vez. El estilo de gestión es muy personal y mucho más difícil de cuantificar que las reglas de estilo de programación, así que este documento puede tener o no que ver con el mundo real. Empezó como un divertimento, pero eso no quiere decir que no pueda ser verdad. Tendrás que decidir por ti mismo. Por cierto, cuando se habla de "gestor del kernel", es sobre las personas que llevan el liderazgo técnico, no la gente que hace gestión tradicional en las empresas. Si firmas órdenes de compra o tienes alguna idea sobre el presupuesto de tu grupo, casi seguro que no eres un gestor del kernel. Estas sugerencias pueden o no aplicarse a tu caso. Primero de todo, sugiero comprar "Siete Hábitos de Gente Exitosa", y NO leerlo. Quémalo, es un gesto simbólico estupendo. (*) Este documento lo consigue no tanto respondiendo a la pregunta, sino haciendo insufriblemente obvio para el que la hace que no tenemos ni la más remota idea de cuál es la respuesta. Bueno, pues ahí va: Capítulo 1: Decisiones Todo el mundo piensa que los gestores toman decisiones, y que tomar decisiones es importante. Cuanto mayor sea la decisión y más penas provoque, más grande debe ser el gestor que la tome. Esto es muy profundo y muy obvio, pero resulta que no es cierto. La gracia del juego es _evitar_ tener que tomar decisiones. En particular, si alguien te dice: "elige (a) o (b), necesitamos que tú decidas esto", estás en un lío. La gente que gestionas debería conocer los detalles mejor que tú, así que si vienen a ti para que tomes una decisión técnica, estás jodido. Está claro que no eres competente para tomar la decisión por ellos. (Corolario: si la gente que gestionas no conoce los detalles mejor que tú, también estás jodido, aunque por una razón completamente diferente. En este caso es que estás en el trabajo equivocado, y son más bien _ellos_ los que deberían estar gestionando tu brillantez.) Así que la gracia del negocio está en _evitar_ las decisiones, por lo menos las más gordas y penosas. Tomar decisiones pequeñas y sin consecuencias está bien, y hace que parezca que sabes lo que haces, así que lo que un gestor del kernel tiene que hacer es convertir las decisiones gordas y penosas en cosas pequeñas que a nadie le importan. Hay que darse cuenta de que la diferencia crucial entre una decisión gorda y una pequeña es que puedas cambiar de decisión más adelante. Cualquier decisión puede hacerse pequeña si te aseguras de que si te equivocas (y te vas a equivocar _seguro_), siempre puedes deshacer el daño más tarde volviendo sobre tus pasos. De repente, eres el doble de gestor por tomar _dos_ decisiones sin importancia: la errónea _y_ la correcta. Y la gente hasta verá eso como liderazgo puro (*cof cof* ni de coña *cof cof*). Así que la clave para evitar las grandes decisiones es evitar hacer cosas que no tengan remedio. No dejes que te arrinconen sin escapatoria posible. Una rata arrinconada puede que sea peligrosa -- pero un gestor arrinconado es patético. Resulta que, ya que nadie va a darle a un gestor del kernel mucha responsabilidad financiera en _ningún_ caso, echar atrás suele ser fácil. Dado que no vas a ser capaz de gastar ingentes cantidades de dinero que luego no puedas recuperar, la única cosa en la que puedes tener que echar atrás es en una decisión técnica, y ahí lo tienes fácil: sólo tienes que decirles a todos que eres un cretinazo incompetente, que lo sientes, y deshacer todo el trabajo inútil que por tu culpa han tenido que hacer durante el último año. De repente la decisión que tomaste hace un año no es tan gorda como parecía, porque se ha podido deshacer fácilmente. Resulta que hay gente a la que no le gusta este enfoque, por dos motivos: - admitir que has sido un idiota es más difícil de lo que parece. A todo el mundo le gusta mantener las apariencias, y salir en público a decir que te has equivocado puede resultar dificilillo. - que alguien te diga que aquéllo en lo que has trabajado durante el último año no sirve para nada, después de todo, puede ser duro para los pobres ingenieros de a pie, y mientras que el _trabajo_ se puede deshacer fácilmente con sólo borrarlo, puede que hayas perdido sin remedio la confianza de este ingeniero. Y recuerda: las cosas "irrevocables" son justo lo que intentábamos evitar desde el principio, así que tu decisión sí que era gorda después de todo. Por suerte, ambos puntos se pueden mitigar bastante: basta admitir de primeras que no tienes ni puñetera idea, y diciéndole a la gente antes de empezar que la decisión es preliminar, y podría ser un error. Deberías reservarte siempre el derecho a cambiar de idea, y que la gente sea _muy_ consciente de ello. Además de que es más fácil admitir que eres estúpido cuando no has hecho _todavía_ la cosa estúpida de verdad. Después, cuando resulta que sí que era estúpida, la gente pone los ojos en blanco y dice: "Vaya, lo ha vuelto a hacer", y listo. Esta admisión preventiva de incompetencia puede que sirva también para que la gente que tiene que hacer el trabajo se piense dos veces si vale la pena hacerlo. Después de todo, si _ellos_ no están seguros de si es una buena idea, está claro que tú no deberías animarlos prometiendo que su trabajo se va a incluir. Haz que al menos se lo piensen dos veces antes de embarcarse en una misión de envergadura. Recuerda: más les vale conocer los detalles mejor que tú, y normalmente ya piensan que se saben todas las respuestas. La mejor cosa que puedes hacer como gestor no es inspirarles confianza, sino más bien inyectarles una buena dosis de pensamiento crítico sobre su trabajo. Por cierto, otra forma de evitar una decisión es lloriquear: "¿no podemos hacer las dos cosas?" y poner aspecto patético. Hazme caso, eso funciona. Si no está claro cuál de las dos formas es la buena, ya se darán cuenta. La respuesta puede ser que los dos equipos acaben tan frustrados por la situación que abandonen. Esto podría sonar a fracaso, pero en realidad suele ser un signo de que ninguno de los proyectos iba bien, y la razón de que la gente implicada no pudiera tomar una decisión es que los dos estaban mal. Sales de la situación oliendo a rosas, y de paso has evitado otra decisión donde podías cagarla. Capítulo 2: Gente La mayoría de la gente es idiota, y ser un gestor quiere decir que tendrás que tratar con ellos, y más importante todavía: que _ellos_ tendrán que tratar _contigo_. Resulta que, aunque sea fácil deshacer errores técnicos, no es tan fácil deshacer los trastornos de la personalidad. Tendrás que vivir con los suyos -- y con los tuyos. Sin embargo, para prepararte como gestor del kernel, lo mejor es no quemar los puentes, no bombardear a la población civil ni alienar a demasiados desarrolladores del kernel. Alienar a la gente es sorprendentemente fácil, y des-alienarlos es complicado. De forma que "alienar" inmediatamente entra en la categoría de "no reversible", y por tanto cae en la región tabú que vimos en el capítulo 1. Sólo hay que seguir unas reglas sencillitas: (1) no llames a la gente gilip*llas (al menos no en público) (2) aprende a pedir perdón cuando se te olvide la regla (1) El problema con (1) es que es muy fácil caer en ello, porque hay un millón de formas distintas de decir "eres un gilip*llas" (*), a veces sin darte cuenta, y casi siempre con una convicción férrea de que tienes razón. Y cuanto más convencido estés de que tienes razón (y reconozcámoslo, puedes llamar casi a _cualquiera_ gilip*llas, y muchas veces con razón), más difícil es tener que pedir perdón luego. Para resolver este problema, sólo hay dos opciones: - volverte bueno de verdad en pedir disculpas - ser tan generoso con tu "amor" que nadie sienta que se le tiene enfilado injustamente. Si aplicas la inventiva suficiente, puede hasta que se se lo tomen bien. La opción de ser educado en extremo no existe realmente. Nadie confiará en alguien que oculta de forma tan palmaria su carácter verdadero. (*) Paul Simon cantó "Cincuenta Formas de Perder a Tu Amante", porque francamente: "Un Millón de Formas de Decir a un Desarrollador que Es Un Gilip*llas" no tiene la misma sonoridad. Pero seguro que lo pensó. Capítulo 3: Gente II - La Buena Gente Si aceptamos que la mayoría de la gente es idiota, el corolario es que por desgracia tú también lo eres, y que mientras podemos recrearnos con la certeza de que somos mejores que la media (porque seamos francos, nadie piensa que sea peor que la media o ni siquiera igual a la media), también tendríamos que admitir que no somos tampoco la pajita más larga, y que siempre habrá por ahí gente que es menos idiota que tú. Hay gente que no reacciona bien ante las personas inteligentes. Otros se aprovechan de ellas. Asegúrate de que tú, como mantenedor del kernel, estás en el segundo grupo. Hazles la pelota, porque son los que te facilitarán tu trabajo. En particular, tomarán las decisiones por ti, que es lo que buscamos desde el principio. Así que, cuando encuentres a alguien más listo que tú, síguele. Tus responsabilidades como gestor se limitarán a decir: "Parece buena idea - dale caña", o "Suena bien, pero ¿qué pasa con xxx?". La segunda versión en particular es una forma estupenda de o bien aprender algo nuevo sobre "xxx", o bien parecer _extra_ gestor por señalar algo que la persona más lista no había pensado. En ambos casos sales ganando. También es importante darse cuenta de que la grandeza en un área no siempre se traslada a otras. Así que puedes espolear a la gente en direcciones específicas, pero reconozcámoslo, pueden ser buenos en lo que hacen, y malos en todo lo demás. Las buenas noticias son que la gente tiende naturalmente hacia lo que hace bien, así que no estás haciendo nada irreversible cuando les espoleas en cierta dirección; pero no aprietes demasiado. Capítulo 4: Echando culpas Las cosas saldrán mal, y la gente querrá tener alguien a quien echar la culpa. Zas, te la quedas tú. No es tan difícil aceptar la culpa, sobre todo si la gente se da más o menos cuenta de que no es _todo_ culpa tuya. Lo que nos trae a la mejor forma de aceptar culpas: hacerlo por otro. Te sentirás bien por cargártela, él se sentirá bien por que no le culpen, y el colega que perdió sus 36 GB de porno por tu incompetencia tendrá que admitir que por lo menos no has intentado escaparte. Después encuentra al desarrollador que la ha cagado y hazle saber _en privado_ que la ha cagado. No sólo para que no lo haga más, sino para que sepa que te debe una. Y, más importante todavía, seguramente sea la persona que sabe arreglarlo. Porque, seamos francos, tú seguro que no eres. Aceptar culpas es también lo que te hace gestor, para empezar. Es parte de lo que hace que la gente confíe en ti, y te concede la gloria potencial, porque eres el que dice "La cagué". Y, si has seguido las otras reglas, a estas alturas seguro que eres bastante bueno diciéndolo. Capítulo 5: Cosas a evitar Hay algo que la gente odia más todavía que que los llamen "gilip*llas", y es que los llamen "gilip*llas" con voz santurrona. Por lo primero puedes pedir perdón, por lo segundo seguramente ni te dejen. Lo más probable es que no lleguen ni a escucharte, aunque por lo demás hagas bien tu trabajo. Todos pensamos que somos mejores que los demás, lo que quiere decir que cuando alguien se da aires de grandeza, puede llegar a ser irritante _de verdad_. Puedes ser moral e intelectualmente superior a todos los que te rodean, pero no intentes que sea demasiado obvio a no ser que _quieras_ irritar a alguien (*). Por las mismas, no seas demasiado educado o sutil sobre las cosas. La educación puede fácilmente terminar ocultando los problemas, y como se suele decir, "En internet, nadie puede oírte ser sutil". Usa un objeto contundente para machacar bien la idea, porque si no será difícil estar seguro de que la gente lo haya comprendido. El humor puede ayudar a suavizar la contundencia y las moralinas. Pasarse de rosca hasta llegar a ser ridículo puede hacer ver alguna cosa sin que sea dolorosa para el que la recibe, que piensa que eres un payaso. Así puedes traspasar la barrera mental que todos tenemos hacia las críticas. (*) Truco: los foros de internet que no están relacionados directamente con tu trabajo son una forma estupenda de ventilar tus frustraciones con otra gente. Escribe mensajes insultantes llenos de sarcasmo de vez en cuando, para meterte en una buena pelea dialéctica de vez en cuando, y te sentirás renovado. Eso sí, ten cuidado de no cagar demasiado cerca de tu puerta. Capítulo 6: ¿Por qué yo? Dado que tu mayor responsabilidad parece ser aceptar las culpas de los demás, y que se vea bien claro que eres un incompetente, la pregunta obvia es ¿por qué meterse en este fregado? Lo primero, tengas o no legiones de chicas (o chicos, no vamos a ponernos sentenciosos ni sexistas ahora) adolescentes gritando a la puerta de tu camerino, lo que sí tendrás es un sentimiento inmenso de realización personal por estar "al mando". Da igual que en realidad no estés liderando sino intentando estar a la altura de los demás y corriendo tras ellos todo lo rápido que puedes. Todo el mundo pensará que estás al mando. Es un trabajo estupendo si te lo sabes currar.