エンジニアの働き方はどう変化しているのか
「日立だけではなく多くの日本企業において、ここ5年ぐらいの間にエンジニアの働き方が変化しているように感じられる。コロナ禍によりオンラインで働くケースも増えているが、働き方をまだ模索している人もいるかもしれない。今日のセッションがエンジニアの働き方の参考になればうれしい」と横井氏は前置きし、セッションを開始した。
横井氏が日立製作所に入社したのは2009年。現在の日立ソリューションズで実習を受けた後、企業向け検索システムを担当。その後、自然言語処理の基礎研究、グラフデータベースの性能向上、ストレージの製品開発に従事し、16年よりOSSのコントリビュータとして活動しているという。「日立グループ内のさまざまな部署を経験したことで、社内外と連携してうまく仕事ができるようになってきた」と横井氏は話す。
日立グループのITエンジニアの仕事を一口で言うと、「社会インフラを支えるコードを書くこと」と横井氏。横井氏も携わったストレージシステムや鉄道運行管理システムなどはその代表例である。それだけではなく、横井氏の部署を中心に、Linux、HyperledgerなどのOSSの利便性や品質向上で貢献しているという。
最近、日立グループ内で「社会のコードを書き換えよう」というキーワードに共感するエンジニアが増えたという。このキーワードは日立とQiitaのコラボレーションサイトのテーマで、同サイトでは日立が挑む「AI/データ×社会課題解決」ストーリーが公開されている。「皆がガンガンコードを書いているわけではないが、ちょっとしたコードで世界が変わる体験をしてきたことが意識変化のきっかけ」と横井氏はその理由を話す。横井氏自身も新人時代に処理時間が短くなるアイデアを提案したところ、米国向け製品に採用された経験がある。それ以外にも、ストレージの部署に所属していたときにちょっとしたコードを修正し、処理性能が1000倍になるプロトタイプを出したところ、大企業の各支店に設置される製品に搭載されたり、OSSを日本語化してみたところ、デバイスや他社サービスに取り込まれ、日本での普及に貢献したりしたという経験がある。
「5年前と比べると、意識の高いエンジニアが周りに増えてきた」と横井氏は述べる。勉強会に参加する社員が増えただけではなく、勉強会で講師を務めたりしているという。また5年前はOSSを開発してもGitHub上にリリースして終わりだったが、今は機能やテストコードを追加したいという同僚も増えた。グローバルイベントで登壇する仲間も増えてきたという。
横井氏が所属しているOSSの部署のエンジニアも、これまでスキル向上や最先端技術が実装できるということだけに関心が向いていたが、自身の活動と成長を起点とした、「ビジネス、OSSコミュニティ、顧客の間で好循環サイクルが生まれるようになってきている」という。日立のエンジニアがGitHub上でOSSに貢献したり、OSSのイベントで講演したりすることで、OSSコミュニティでの認知が向上。その活動を顧客にも認識してもらえるようになる。結果、「顧客からエンジニア指名で打ち合わせの依頼がくるようになり、ビジネスにつながることが増えている」と横井氏は話す。具体的にはアイデンティティ・アクセス管理ソフトウェア「Keycloak」やローコード開発ツール「Node-RED」というOSS開発プロジェクトにおいて、この好循環サイクルが回っているという。
社内のオンラインコミュニケーションもOSS活動を参考に
横井氏が参加しているのが「Node-RED」の開発プロジェクト。Node-REDはOpenJS Foundation管理下のOSSローコード開発ツールで、「開発元のIBMに続き、日立が2番手ぐらいの位置を担っている。全世界で156人のコントリビュータが開発に参加している」と説明する。ほかにも、富士通やNEC、サムスン、インテル、ウフル、STMicroelectronicsなどの企業がNode-REDを活用しているという。
横井氏はノードの許可リスト管理方式やノードの説明文追加機能、フローエディタ向けの和訳追加、フロータエディタのIE対応、UIテストのBrowserStack対応などで貢献。またNode-REDの部品開発ツール「Node generator」やオフライン環境で使えるスタンドアロンNode-RED、ダッシュボード向けテーブル表示ノードなどを開発。「他社サービスで取り込まれたものもある」と横井氏。例えばThe Linux Foundationが開発しているOSSの緊急地震速報システムに、横井氏が作ったテーブル表示ノードが採用されたという。「日本ではすでに緊急地震速報システムがあるので、使われることはないかもしれないが、海外ではプエルトリコで実際に使われていると聞いています」を横井氏は笑顔を見せる。
このようなOSS開発を開発コミュニティではどのように進めているのか。開発の進め方としては、まず機能提案の後、設計ドキュメントをマークダウン形式で記載し、GitHub上で共有する。機能を実装した後は、GitHub上でプルリクエストを提出する。開発の状況はTrelloやGitHub Projectsを用いて共有する。
コミュニケーション方法は、2週間ごとにSlack上で開発状況を共有するほか、3カ月ごとにWebExを使った議論する。半年に1回はイギリスに出張し、Node-RED開発メンバーと直接、顔を合わせての議論もしていたという。結果、貢献ランキング世界4位、さらに「IBMのCEOから表彰状をいただいたこともあった」と横井氏は振り返る。
開発した機能やノウハウを紹介するため、勉強会で登壇したり、社内の研修所や研究所を会場として提供し、社外の人たちと一緒にイベントを開催したりした。「そこでイベントの運営ノウハウを習得することができた」と横井氏は語る。また勉強会の運営メンバーで書籍を出版したり、記事投稿したりもした。
コロナ禍においても、「OSSの開発は元々オンラインがメインのため、これまで通りにできた」と横井氏。出張はなくなったが、他社の勉強会でプレゼンをしたり、地方のグループ会社にヒアリングしたり、海外企業や海外グループ会社との打ち合わせをしたりするなど、「社外とのやり取りが多くなった」と言う。イベントもオンラインで開催され、運営や登壇を経験。配信ノウハウやオンラインのみでの準備の進め方などが習得できた。
「問題は社内でのコミュニケーションだった」と横井氏は言う。コロナ禍の影響で仕事環境が100%在宅勤務にシフト。しかも異動も重なったので、社内では会ったことのない同僚が大半だったからだ。「そこで、今まで社外で得たノウハウの中から、使える活動を社内で行ってみた」と言う。例えば同僚に書籍出版を勧めたり、同僚と日立のアドベントカレンダーを運営してみたりした。これによって、他チームの仕事の内容が把握できたり、自他部署とのつながりを作れたりしたという。
また社外で使えるツールとは異なるものの、Microsoft TeamsやMicrosoft Stream、Yammer、One Drive、社内GitLab、Redmineなど社内ではリモートワークで使えるツールも揃っていたので、Teamsで社内勉強会を開催し、Streamで記録するといったことにもチャレンジしたという。
同僚と雑談するためのツールとしては、NTTコミュニケーションズが提供する「NeWork」を試しているところだという。
「リモートワークでは仕事の方針の宣言が重要になる」と横井氏。横井氏はたまたま異動時に希望業務を出す機会があり、それを共有できたことで、その後のリモートワークのやりやすさにつながったという。
「エンジニアの働き方が変わりつつあるこれからは、特にオンラインでのコミュニケーションを得意とするOSS開発者や社外勉強会コミュニティ経験者が活躍しやすくなるはず。今回紹介したやり方を参考にして、ぜひ実践してみてほしい。」
最後にこう語り、横井氏はセッションを締めた。