社員インタビュー

02

可読性の高いコーディングに努め、
研究者が使いやすいアプリを開発
N.K

エンジニア/2020年入社

仕事の難しさ

コーディングルールの統一やドキュメントの適正管理など、一人で解決できない問題は難しく感じます。ソニー製品は大規模な人数が関わるので意思疎通の齟齬が生じやすく、常に「仕様チームは何を考えているのか」「他の実装チームの意図は何なのか」を考えるようにしています。当社の開発チームとしては、1か月の振り返りミーティングを大切に、業務プロセスの改善のための具体的なフィードバックを心掛けています。また医療分野の理解や利用者のニーズを知ることも難しいため、実際の利用者はどのような動作を期待しているのかをイメージし、資料も読みながら細胞分析装置自体の理解にも努めています。

仕事のやりがい

期待されたことを期待以上の質でやり遂げた日は、誰に褒められなくても良い1日だったと感じます(笑)。「この仕様に沿って、こんな機能を作ってほしい」と言われたら、少しの手間で使い勝手が良くなるよう工夫し実装できたときは嬉しい気分に。直近の例では「テキストボックスに入力した後に更新ボタンを押すUIもいいけど、ENTERキーを押したときにも同じ挙動になった方がいいのでは?」といったことを考えます。同じように、仕様チームに提案したUI/UXが採用されたときも嬉しいです。画面外に出るテキストは改行されたほうが便利なのか、それとも省略したほうが使いやすいのか、プログラマーだから気になる問題や改善点も意識しています。利用者の操作環境を良くする先に、免疫学や細胞学の進展、がんの早期発見などのサポートにつながっていくことは大きな励みです。

大切にしていること

プログラムの可読性とパフォーマンスです。チームの中で働くプログラマーとして、可読性はチーム全体の開発効率を向上させます。間違った名前のせいで次の担当者が的外れなコードを調べていた、などといったことがないよう気をつけています。当社の開発メンバーはマージ(決められたルールでの統合)前にレビューを行うので、そこでいただくアドバイスは次に活かせるように。同時に人からコードを見てもらうだけでなく、人のコードを見ることで得られる気づきも大切に、どれだけ忙しくてもコードは読むようにしています。またより多くの方が使いやすいソフトウェアをつくるために、無駄なくより洗練された表現、より読みやすいプログラムを書くことが私の使命と肝に銘じ、効率的なアルゴリズムやC#の言語機能、非同期処理などを活用できるよう意識しています。

仕事を通して変わったこと

長期的な目線で開発を進めることです。学生時代は最長でも1年しか使わないアプリケーションを作っていました。しかし、ソニー製品で動くソフトウェアは開発期間も含めると長ければ5年くらいを視野に使われる場合もあります。そのようなソフトウェアを開発するにあたり、より良い設計やこまめなテスト、ドキュメントの整理などを意識するようになりました。設計やテストについての書籍を読んで勉強もしていますが、同じチームのベテランソフトウェアエンジニアの先輩の作業やアドバイスも参考に、勉強と実践の両輪で学ぶようにしています。

目指すエンジニア像

ハードウェアとソフトウェア、理論と実践の交差点に立つエンジニアです。私が担当するライフサイエンス系は普段の生活からは想像できない領域で活躍する研究者を助けるソフトウェアを作る必要があります。プログラムに詳しいだけのエンジニアでは、そのような特殊なニーズは満たせません。少なくともUIを実装するときには「本当に利用者にとって使いやすいのか」の視点は必須です。また、最近はAIに始まり量子コンピュータや暗号技術、クラウドやブロックチェーンなどテクノロジーは加速度的に進化しています。したがって、これら技術も理論段階から少しでも概要を押さえておきたいですし、理論の核心を理解するため数学も必死に勉強し直し中です。将来的には、カメラやプレイステーション、ヘッドホンなど利用者が世界規模でたくさんいるソニー製品にも関わってみたいとも思います。

仕事内容

細胞にレーザーを当てることで高精度に細胞を解析・分取する細胞分析装置(フローサイトメーター:ソニー製)に関して、それを制御するためのWindowsアプリを開発しています。装置の利用者である医療・バイオ研究者などが細胞を染色する塗料はどうするか、どのような傾向パターンの細胞を分取するかなどの設定を簡単にできるようサポートするもの。私はGUIを主に担当し、操作性を高めたり検索機能を実装したりしています。

ある一日のスケジュール

9:00
出社(在宅勤務開始)。緊急性の高いメッセージに対応。今日の予定や課題を確認
9:30
開発チーム全体の進捗報告
10:00
新入社員のチューターとして、共同作業(Teams会議)。研修用ソフト開発の進捗を確認し、アドバイスを送る
11:00
開発メンバーと進捗共有
11:30
メッセージ・メール確認。必要に応じて事務作業を行う
12:00
昼休憩。健康に留意し野菜を使った簡単料理など、自ら作ることが多い
13:00
設計実装・技術調査
15:00
開発チーム共同作業部屋(Teams会議)で、疑問点を出し合い回答する
開発チーム(5人)と課長による進捗定例会議(週1回)
16:00
設計実装・技術調査
17:00
新入社員と2人で共同作業(Teams会議)
18:30
日報を書いて退勤
普段から目を酷使するので、夕食後は音楽を聴いてリラックスに努める。

休日の過ごし方

週一日は必ず外出するように。映画を観たり、家電量販店でガジェットを触ったり、カメラを持って散歩に出かけることが多いです。在宅時は業務外のプログラミング言語の本や記事を読むこともあれば、数学や半導体、光、電波などの本を読む時間も増やしています。