Éxodo TI de Japón: Una perspectiva personal (Parte 2)

¿Porqué las compañías japonesas están perdiendo sus talentos de programación? [en] No faltan discusiones sobre el tema [en], pero pocas perspectivas en primera persona. El blogger/programador Ryo Asai [jp] (@ryoasai74) y su blog «Becoming a Master Programmer» nos da una. Despúes de 7 años trabajando para una compañía de tecnología de información en el sector de integración de sistemas [en], Asai decidió recientemente postular para un trabajo en Amazon Japón, y consiguió el trabajo.

En este artículo, traduciré una entrada del blog de Asai titulada Lo que me di cuenta de las diferencias de las aproximaciones a la programación de Waterfall y Agil después de cambiar de trabajo » [jp] (転職して感じたウォーターフォール文化とアジャイル文化の違いについて). Para los antecedentes de por que dejó su trabajo anterior, ver la parte 1 de esta serie.

Librero, foto del usuario de Flickr Roo Reynolds

Un lugar de trabajo global

Asai comienza el post cansado de los retos que ha enfrentado hasta ahora en su nuevo lugar de trabajo:

やはり、自分としては、外資系の会社で英語でのコミュニケーションが必要となるということが、最も気がかりなことでした。実際、初日の歓迎ランチはいきなり名前もわからない多くの外国人に囲まれる状況でしたし、電話会議を使って中国やアメリカのチームと一緒に行う日々の進捗ミーティングも英語で行われています。自分としては、特に、リスニングが 苦手ということもあり、いまだに完全に会話についていくのが困難なところはありますが、同僚やマネージャーもみんなすごく親切に教えてくれるので安心しました。私は新しい環境に慣れるのに結構時間がかかる方なので、まだまだ完全に新しい職場の文化に適応するというところまではいかないのですが、徐々に仕事のやり方を覚えて、チームの一員として頼られる存在となれるよう努力していきたいですね。

Lo que me causó más ansiedad, de trabajar en una empresa extranjera, fue tener que comunicarme en inglés. En el almuerzo de bienvenida el primer día, de repente, estaba rodeado por un montón de extranjeros cuyos nombres ni siquiera sabía, teniendo luego reuniones diarias a través de video-conferencia, también en inglés, con equipos de China y America. Mi habilidad para entender inglés no era tan buena, era demasiado duro para mí seguir conversaciones íntegras, completamente en inglés, pero mis colegas y jefes eran realmente amables explicándomelo todo, y esto me devolvió la confianza. Soy una persona a la que le lleva bastante tiempo adaptarse a nuevos ambientes, de hecho todavía no estoy completamente adaptado a mi nuevo lugar de trabajo, pero poco a poco voy viendo como funciona todo. Me estoy esforzando mucho para adaptarme y ser uno más del grupo.

ということで、実はまだ新しい会社の文化を完全に理解したという段階ではないのですが、それでも以前私が働いていたSI業界の文化とアジャイルな考え方が尊重されるグローバル企業とでは、やはり大きな違いがあるなということは、実際にはっきりと感じられますね。

Aunque no estoy aún al nivel en el que pueda decir que he captado la cultura de la nueva compañía, estoy sintiendo ya mucho interés por aprender las diferencias con la cultura de mi anterior trabajo, en la industria de los SI (Sistema de Integración), y la cultura de mi actual trabajo, una compañía global que busca un acercamiento ágil.

Un lugar de trabajo ágil

Esta aproximación ágil al desarrollo de software también requiere algunos ajustes:

まず、第一に大きく違うと思ったのは、会社の売上や利益に直接つながる、ビジネスの中心に近いところに開発チームが置かれていて、当然プログラマーはプロダクトオーナーなどビジネス担当の人と密接にやり取りをしながら開発を進めるというところがありますね。ビジネス担当の人とプログラマーが同じ部屋で作業をするということはもちろん、たとえば「この項目を外すとプログラムはすごくシンプルになるし、顧客にとっても画面がすっきりしてメリットがあると思いますが。」といったような提案をプログラマーからすると、あっさり認められて翌月のリリースに変更を反映するといったことが日常に行われています。

La primera cosa de la que me di cuenta que era completamente diferente fue que el equipo de desarrollo esta posicionado muy cerca del núcleo de la empresa que directamente influye en las ventas y los beneficios de la misma. Esto naturalmente significa que los desarrolladores están estrechamente comunicados con los que están a cargo de la empresa tales como los jefes de producto. Los empresarios y los programadores están en la misma sala, y desde el punto de vista del programador, esto significa que cada día, propuestas, de por ejemplo, eliminar un campo para hacer el código más simple y usar interfaces más claras, son rápidamente aprobadas e incorporadas a la edición del siguiente mes.

少しでも使いやすいシステムの開発に貢献することで、売上に貢献するのだというモチベーションも湧きます。ウォーターフォールが中心のSI業界のやり方だと、項目の追加はまだしも削除などと言うことを提案しても、稟議書などを上げて何階層にもわたった承認が必要で、何週間、何か月も待つといったことは普通だと思います。そのような状況があるので、PGの側でもよいアイデアがあっても、わざわざ提案しようという気にはならないし、逆に、仕様書に書かれていることのみを実装して、余程の問題がない限りそれ以上のことはやらないという傾向が強くなってしまうところがあると思います。

Saber que incluso con tu pequeña contribución para hacer el sistema más fácil de usar, podrías incrementar las ventas, es una gran motivación. En la industria de SI (sistemas de integración), con su enfoque en el modelo waterfall (cascada) de desarrollo, solo añadir o eliminar un campo, requiere escribir una petición oficial y tener el visto bueno de varios niveles de jefes, y normalmente toma semanas si no meses de finalizar. Lo que tiende a ocurrir como resultado, creo, es que incluso si un programador tiene una buena idea, ellos no pasarán por el problema de proponerla, y en vez simplemente implementarán lo escrito en las especificaciones, a menos que haya algún tipo de problema mayor.

それから、チームのサイズが小さくて、業務担当の人とプログラマーが直接会話できる距離にあるため、作成する文書は非常に少ないというところがあります。これはもちろんチームによると思いますが、開発後に説明のためWikiに情報を書くということはあっても実装前にWordやExcelの文書を作成するということはめったにないですし、作業時間の大半はEmacs、Vim、Eclipseといったツールを立ち上げてのコーディング、単体テストの 作業が中心となります。以前は自分自身がコードを書くといった作業にあてられる時間は、全体のプロジェクトの中ではせいぜい10%程度でしたので、そこは 大きな違いだと感じています。逆に言うと、自分の英語力のなさから、口頭で英語で説明を受けても理解しにくいというところがあり、時としてきちんと書かれた仕様書が恋しくなる時もあるわけですが、そこは文化の違いですね。

Los equipos (en Amazon) son también pequeños, con gente a cargo de operaciones bastante cerca de los programadores para interactuar más cercanamente a ellos, dando lugar a menos documentación. Mientras esto podría, por supuesto, variar de equipo a equipo, he encontrado que mientras las wikis son usadas para documentar el código post-desarrollo, hay muy pocos casos de gente produciendo documentos de Word o Excel antes de la implementación — La mayor parte de nuestro tiempo la invertimos codificando y testeando utilizando herramientes tales como Emac, Vim y Eclipse. En mi anterior trabajo, yo probablemente invertía un máximo del 10 % de mi tiempo en el proyecto codificando, esto fue un gran cambio para mi. De otro lado, mi inglés no es muy bueno, así que incluso cuando la gente trata de explicarme las cosas, frecuentemente tenía problemas para entenderles. Esto hace que algunas veces añore las explicaciones escritas de forma muy clara, que supongo se debe a una diferencia cultural.

Un lugar de trabajo dinámico

El modelo empresarial de Amazon es también diferente a su anterior empleo:

さらに、B2Cでどんどん新しい機能をリリースしていくという環境では、システム全体を何年もかけて作り直すという機会はほとんどありません。むしろ、細かい機能改善やバグフィックスを行うというプレッシャーが常にあり、その中で空き時間を見つけてリファクタリングを繰り返すという方向になります。

Además, mi nuevo lugar de trabajo sigue el modelo Empresa a Consumidor (B2C) en el cual nuevas funciones están continuamente siendo probadas, incluso durante un espacio de años hay pocas oportunidades para reconstruir el sistema entero. Por el contrario, hay bastante presión para mejorar la funcionalidad y arreglar los errores de programación, y el refactoring se hace en cualquier lapso de tiempo libre que se encuentre.

そういう意味では、SIerのように新システムの開発をゼロから行うという機会はめったにありません。だから、常に最新の言語やフレームワークでなくては嫌な人には向いていないかもしれません。一方、SIerの場合は自分のシステムを維持管理するという機会は少ないのですから、むしろ、最新の最良の開発手法を取り込めばすごく面白い仕事ができるのに、実際には古いフレームワークを使い続けているケースが多いというのは残念なことですね。

En este sentido, no hay virtualmente oportunidades (en Amazon) para construir un sistema desde abajo, como el Sistema Integrador (SIer) hace. Esto podría no ser el tipo de trabajo para alguien que quiere siempre trabajar con los últimos lenguajes y estructuras. Por otro lado, los integradores de sistemas no tienen muchas oportunidades de mantener y administrar su propio sistema, así que aunque su trabajo podría ser realmente interesante si ellos pudiesen adoptar las últimas y mejores técnicas de desarrollo, en realidad la mayoría acabarían bloqueándose continuamente trabajando con estructuras antiguas.

En una entrada anterior de Asai se discutía la denominada «edad de jubiliación» de 35 impuesta a los programadores en Japón. Pero Amazon no tiene esa edad de jubilación:

なお、気にしていた自分の年齢ですが、やはり、グローバルな会社では35歳定年などということは全くないですね。今の会社の場合は全くの新卒というよりも、ある程度経験を積んだ人を中心に採用しているようなので、プログラマーとして自分くらいの年齢でも結構普通みたいです。実際、おじさんというレベルを超えて、そろそろ孫がいても不思議でない、おじいさんという感じの年齢の現役プログラマーもたくさん活躍しています。もちろん、年齢というよりはスキルによってポジションが決まるので、年齢が下の人がより上級のプログラマーということも普通にあり得ます。(おじさんと書きましたが、もちろん、グローバルには女性のプログラマーもたくさんいます。)

Una cosa sobre la que estaba preocupado cuando comencé en mi nuevo trabajo fueron mis años, pero me he dado cuenta que en una empresa global, no hay jubilación a la edad de 35. En mi nuevo trabajo, ellos parecen estar centrados en contratar a gente que tiene algo de experiencia en lugar de a recién titulados, así para programadores, mi edad no es nada fuera de lo común. De hecho, hay programadores aquí que son mucho mayores que yo, casi señores mayores– Algunos de ellos podrían incluso tener nietos. Obviamente, los puestos se ocupan por conocimientos no por edad, así que se encuentran a muchos jovenes programadores ocupando altos puestos. (Yo he escrito «señores mayores», pero por supuesto hay también muchas mujeres programando en compañías globales.)

Reacciones

En los comentarios, las respuestas al post fueron positivas:

megascus:

改善ができるというのは素晴らしい。

Es increíble que puedan continuar mejorando [los sistemas] de este modo.

mongolianpunch:

楽しそうだなー

Wow, suena todo como muy divertido!

Para aquellos que estaban ya pensando en cambiar de trabajo, la entrada fue un punto de referencia bastante útil. allargand escribe:

グローバル企業への転職を検討しているところだったので、非常に参考になりました。

Yo sólo buscaba cambiar de trabajo en una compañía global, así que fue realmente útil.

Y kingyodojo, quizá seguía una pauta:

読んだら今の仕事を続けていていいのか疑問を持った。

Ahora que he leído esto, me pregunto si debería seguir en mi actual trabajo

Para saber más acerca de la perspectiva de Asai sobre la industria de las tecnologías de la información en Japón, ver también un comentario que publicó en el primer artículo de esta serie.

Inicia la conversación

Autores, por favor Conectarse »

Guías

  • Por favor, trata a los demás con respeto. No se aprobarán los comentarios que contengan ofensas, groserías y ataque personales.