Cómo cultivamos desarrolladores junior en la BBC

¿Cuál es el punto de contratar desarrolladores junior? Joseph Wynn, ex ingeniero principal de software en el equipo del sitio web de BBC News, compartió las siguientes ideas en Twitter recientemente:

Como desarrollador de nivel junior, me animó mucho a leer eso. Me hizo reflexionar sobre mi tiempo en BBC Design & Engineering desde que comencé en septiembre de 2016.

Actualmente estoy en el Programa de Posgrado de Ingeniería de Software de la BBC, que es un plan de dos años para cualquier persona que tenga un título relacionado con Ciencias de la Computación. El esquema es una excelente manera de ingresar a la BBC como ingeniero de software de nivel junior, pero con la ventaja adicional de poder pasar a un equipo diferente cada seis meses con oportunidades para desarrollar una variedad de habilidades técnicas y blandas. Recientemente terminé mi primer año en el esquema, donde serví en el equipo de servicios de BBC Sport y en el equipo de sitios web receptivos de BBC Children.

No creo que haya ningún otro esquema como este en el mundo que le permita obtener desarrollo web, desarrollo de aplicaciones móviles y de Smart TV, desarrollo de servicios de fondo y desarrollo de sistemas integrados en su haber en el espacio de dos años en la misma organización ; todo mientras conoces a gente increíble y equipos altamente calificados en el camino.

Una mala primera impresión

Durante mi tiempo en Uni, trabajé en dos agencias digitales, una como colocación de verano no remunerada y otra para un año sándwich. Ambos me dieron una experiencia práctica real, pero ambos siguieron un estricto proceso de cascada y me sentí como un diente en una máquina pequeña, encerrada en mi silla e incapaz de conversar o ponerse de pie a menos que fuera para ir al baño o almorzar . Fue una experiencia agotadora trabajar para ellos. Siempre me había apasionado el desarrollo web, pero el tiempo que pasé allí me preocupaba de no poder disfrutarlo como profesión.

Como era de esperar, quería asegurarme de que mi primer trabajo después de la universidad sería un lugar donde me sentiría feliz y trabajaría solo, pero con un equipo ágil que ama lo que hace y se preocupa por la calidad.

Tenía grandes expectativas cuando solicité la BBC y, para mi sorpresa, era exactamente como me imaginaba. Encontré que la cultura era muy relajada y solidaria, y ciertamente no me sentía como un diente en una máquina encerrada en mi asiento. Era un desarrollador de nivel junior, pero nadie esperaba demasiado o asumía muy poco de mí. Ningún gerente asumió que solo podría ser ubicado en un proyecto, comprender instantáneamente su sistema y comenzar a producir código. Mi aportación fue valorada, y mi equipo se invirtió en ayudar y desarrollarse mutuamente por igual.

Creando la cultura correcta

Reclutar desarrolladores de software experimentados es difícil, incluso para una gran marca de confianza como la BBC. Pero los desarrolladores experimentados tienen que venir de algún lado, ¿verdad? ¡Estaban todos en un nivel junior una vez! Cuando muchas empresas en nuestra industria no están tan dispuestas a contratar y nutrir al personal junior, no debería sorprendernos que los equipos de software tengan dificultades para contratar desarrolladores senior. Pero como ya hemos visto, hay mucho valor en tener un desarrollador junior en un equipo.

La cultura es la clave para garantizar que el personal junior (y más personal senior) pueda crecer y prosperar en una organización, beneficiando así a la organización a cambio.

Hay mucha historia detrás de cómo la BBC se ha convertido en el lugar de trabajo que es hoy, pero gran parte de esto se deriva de nuestros valores.

Nuestros valores están impresos en el reverso de nuestras tarjetas de identificación.

Echemos un vistazo a cada uno de estos valores y veamos cómo impactan a los equipos digitales en la BBC.

Trabajando juntos

Somos una BBC; Grandes cosas suceden cuando TRABAJAMOS JUNTOS.

Si hay una palabra que escucho mucho en los equipos de diseño e ingeniería de la BBC, es "comunicación". Tenemos muchas herramientas y procesos para provocar el debate y asegurarnos de que todos sabemos y estamos de acuerdo en lo que estamos haciendo. Y para los desarrolladores en particular, es importante que no nos sintamos tímidos o incompetentes por la necesidad de pedir consejo. En los equipos en los que he trabajado, siempre observamos en las reuniones retrospectivas lo bueno que es hablar con frecuencia entre nosotros para discutir nuestros enfoques para resolver problemas o pedir ayuda. Todos siempre están dispuestos a dejar lo que están haciendo y ofrecer su tiempo para ayudar.

Del mismo modo, muchos equipos de la BBC practican la programación de pares, que es una forma fantástica de compartir conocimientos y mantener la calidad del código. Siempre encuentro que me mantiene más concentrado en comparación con trabajar solo, porque tengo que transmitir mis pensamientos en voz alta.

Por supuesto, no son solo los desarrolladores con los que estoy trabajando. Hay muchos tipos de roles en un equipo digital y cada uno de ellos tiene un papel clave que desempeñar en nuestro trabajo. Incluso en el Manifiesto Ágil, donde leemos "La gente de negocios y los desarrolladores deben trabajar juntos a diario durante todo el proyecto". Muchas veces he tenido la suerte de sentarme con Business Analysts para ayudar a desarrollar los criterios de aceptación de un ticket o trabajar con los Diseñadores de experiencia del usuario para crear prototipos de sus ideas. Incluso tener la oportunidad de hacerlo como desarrollador de nivel junior me hace sentir valorado.

"El método más eficiente y efectivo para transmitir información a un equipo de desarrollo y dentro de él es la conversación cara a cara".

Finalmente, una de las razones principales por las que a los equipos digitales les gusta tener desarrolladores del programa de posgrado es porque permite la "polinización cruzada". A medida que cambiamos a diferentes equipos cada seis meses, traemos experiencias de los procesos, enfoques y conocimientos técnicos de los equipos en los que hemos trabajado anteriormente. Los equipos corren el riesgo de convertirse en "silos" si no nos comunicamos con otros equipos en todo el mundo. BBC para compartir conocimientos y ver cómo y por qué nos hacen las cosas de manera diferente.

El respeto

Nos RESPETAMOS y celebramos nuestra diversidad para que todos puedan dar lo mejor de sí mismos.

Aunque la BBC es una organización estructurada jerárquicamente, en realidad puede parecer bastante plana. No importa si alguien es senior o junior, su opinión es valorada y escuchada. Esta actitud afecta tanto las grandes decisiones que se deben tomar como el trabajo general del día a día. También afecta cómo interactuamos entre nosotros. Ningún gerente superior en la BBC tiene su propia oficina; todos se sientan juntos y todos pueden acercarse por igual (¡el Director General incluso me estrechó la mano una vez! ).

Incluso cuando la programación en pareja con un desarrollador senior, un desarrollador junior no solo está mirando a su contraparte hacer el trabajo. Su falta de familiaridad con el sistema significa que pueden pensar desde una perspectiva diferente y hacer preguntas, por lo que se les debe alentar a pensar en voz alta y expresar sus opiniones.

Creo que el póster de GDS "Está bien para ..." se aplica muy bien también a la BBC. A menudo, para un desarrollador junior en una organización grande, es fácil para ellos imaginar que su equipo tiene grandes expectativas de lo que son capaces de hacer, cuando ese no es realmente el caso.

Aquí también se aplica el dicho "no existe una pregunta estúpida". Se alienta a hacer preguntas, y no es inusual que más miembros senior del equipo hagan preguntas solo por el bien de desarrolladores junior o nuevos desarrolladores en el equipo.

Creatividad

La CREATIVIDAD es el alma de la organización.

El desarrollo de software es un proceso creativo. Puede haber cientos de formas diferentes de lograr lo mismo, y los equipos deben trabajar juntos para discutir el mejor método para abordar un problema. Los nuevos desarrolladores traerán una perspectiva externa y es menos probable que se fijen en sus formas sobre "cómo normalmente hacemos las cosas por aquí". Para aceptar esto, es importante tener una cultura que tenga en cuenta los pensamientos de todos por igual.

Se espera que los desarrolladores no solo realicen su trabajo diario, sino que también aprendan. Muchos equipos implementan "10% de tiempo" donde se asigna tiempo para aprender algo nuevo o trabajar en un proyecto paralelo relevante. Una organización que está dispuesta a invertir en el crecimiento de sus equipos creativos los hace más propensos a permanecer en la organización a largo plazo. Los desarrolladores junior deben establecer objetivos de aprendizaje para alentarlos a especializarse en diferentes tecnologías y habilidades blandas.

Calidad

Nos enorgullecemos de ofrecer CALIDAD y relación calidad-precio.

La investigación de usuarios, la programación de pares, las revisiones de código, las pruebas automatizadas y las pruebas manuales son todos procesos que aseguran que estamos entregando un producto de calidad a nuestro público, y es importante que los desarrolladores junior participen en cada uno de ellos. No solo deberían recibir comentarios, sino también comentarios.

Audiencias

Las audiencias están en el corazón de todo lo que hacemos.

En la BBC, los productos en los que trabajamos están hechos con el único propósito de educar, informar y deleitar a nuestra audiencia sin ningún motivo para monetizarlos. Pero independientemente de las necesidades de su organización, las necesidades de su usuario siempre deben ser lo primero. Todavía es importante comprender y servir a su audiencia para que vean un valor en el uso de su producto.

Cuando estaba en el equipo de Children 's Web, el equipo de Children' s UX a menudo invitaba a los niños locales a evaluar nuestras ideas y prototipos, y se animaba a los desarrolladores a asistir y observar por sí mismos cómo los niños reaccionaban a varios prototipos. A menudo sacamos prototipos rápidos en las pruebas A / B y los analistas de negocios de nuestro equipo evaluarían si nuestros cambios afectaron el comportamiento del usuario de la manera que esperábamos.

Confianza

La CONFIANZA es la base de la BBC; Somos independientes, imparciales y honestos.

No hay nada peor que un ambiente de trabajo donde los gerentes no confían en sus equipos. ¡Hay una razón por la cual este valor está en la parte superior de la lista en la parte posterior de nuestras identificaciones! Del mismo modo que nuestro público necesita confiar en nuestro contenido, debemos poder confiar el uno en el otro. Este es el principio básico de nuestra cultura. Sin esto, no puede sentirse feliz, establecido y capacitado para cumplir el resto de los valores.

Los desarrolladores junior, como todos los demás en un equipo digital, son confiables para administrar su tiempo, trabajar de forma independiente, tienen permisos para acceder a todos nuestros entornos de desarrollo y API y ayudar y capacitar a los miembros más nuevos del equipo. Del mismo modo, no culpamos a alguien si comete un error; confiamos en ellos y asumimos que tienen las mejores intenciones con cada acción que toman (y esperamos que no tengamos ningún sistema que pueda eliminarse con una operación accidental de línea de comando).

Conclusión

Si bien es fantástico que los desarrolladores junior tengan una plataforma en la BBC para desarrollar un conjunto de habilidades tan amplio, esto no cuenta para nada a menos que los equipos tengan una cultura que preste atención al valor que brindan los desarrolladores menos experimentados y un deseo de desarrollarlos. ¿Has pensado en cómo los valores de tu organización ayudan a los desarrolladores a crecer?