こんにちは!デザミス採用担当です。
本日は、デザミス開発メンバーの田中さんにインタビューをしてまいりました。
デザミスの開発環境のについてかなり詳細にお話してまいりますので、自社サービスで腰を据えて開発していきたい方や世の中の社会課題を技術の力で解決していきたいと思っている方はぜひ最後までご覧ください。
田中さんプロフィール
学校卒業後、新卒でSlerの会社へ入社。約3年ほど経過した後に、エンタープライズ向けのパッケージベンダーに転職。10年以上勤務をした後に創業当初だったデザミスに参画する。
ーまずは田中さんがデザミスに入社したきっかけを教えて下さい。
以前からの知人であったCTO小佐野さんに声をかけてもらったことがきっかけです。
デザミスが事業を始めたばかりのころ、小佐野さんに「今、こんなサービスを作っています。」とU-motionの画面を見せてもらいました。
最初は畜産の知識も無かったので「ウシ!?」とビックリしましたが、畜産業界を取り巻く厳しい現状を知り、農家を支えるという事業に社会的意義を感じました。
また、元々ベンチャー志向が強かったものですから、創業間もない会社で新規サービスの立ち上げフェーズに働くということに強い魅力を感じて入社しました。
ーなるほど、事業の社会的意義に強く惹かれたわけですね。そんな田中さんは現在デザミスでどんな仕事をしているのでしょうか?
主にサーバーサイドの開発を広く担当しています。
現在は U-motion、他の畜産サービスとU-motionをつなげるプラットフォームであるU-motion Platform、そしてU-motion Platform向けのサービスの開発・運用を行っています。
ーいくつものサービスを担当しているんですね、まずU-motionの開発ではどのような仕事をしているのですか?
U-motion開発においては業務ヒアリング、仕様の検討、設計、実装、テスト、運用中の監視までU-motionの開発・運用に関係する全てを担当しています。
主にサーバーサイドを担当していますが、案件によってはフロントの実装も行います。
ーそのU-motionの開発業務にはどのような特色があるのでしょうか?
U-motionのもっとも大きな特徴は牛の行動データを扱っているということです。
行動データは U-motion の一番の売りなのですが、データ量が多くアプリケーションやデータベースのパフォーマンスへの影響が大きいです。
そのため扱いに気を配りながら開発・運用する必要があります。
技術面においてはAPIはRuby on Rails、一部のバッチ処理はJava、機械学習を利用する処理はPythonというように必要に応じて複数の開発言語・フレームワークを採用しています。
昔はAPIの開発に Java や Node.js を利用していましたが、APIの開発速度を加速するという目的とそれまで利用していたプラットフォームからの移行に合わせて Ruby on Rails に置き換えを行いました。
フロントエンドの話になりますが、現在 AngularJS から React への移行を進めています。必要に応じてこのような技術移行も行いますので、希望があればそのようなタスクに携わることもできます。
サービスのプラットフォームとしては Heroku、AWS、GCP と必要に応じてメジャーなプラットフォームを採用しています。
業務面の特徴としてはユーザーの多様性が挙げられます。
一言で牛の畜産農家と言っても酪農、肥育、繁殖 など経営形態が多様ですし、家族経営から複数の牧場を経営するメガファームまで規模も多様です。
ユーザーについても普段からPCを使いこなしているような方から、スマホではLineぐらいしかアプリを使ったことの無い方まで様々な方がいらっしゃいます。
当然それぞれが抱える業務上の課題も違うわけで、それに対して最適な解決策を考え抜いて実装するというのは難しい面も多いですが、やり応えがあります。
ー難しい面もあるということですが、難しさの中で成果を出すために特に気を配っていることはなんですか?
大切にしているのはお客様や他部署からの要望をそのまま鵜呑みにして開発するのではなく、要望の裏にある真の課題を理解するということです。
例えばお客様から「牛個体の情報を変更したいのだけど、1頭ずつ変更するのは面倒なので一括で変えられるようにして欲しい」という要望があったとします。
その時に「一括変更機能を作ろう!」というのではなく、まず「どういう時になぜ牛個体の情報を変更したいのか?」という事の理解に努めます。
そもそも牛個体の情報を新規登録する際の画面に不親切な部分があるために、後で一括で変更することになっているのかもしれません。
もしかすると想定していなかった業務フローがあり、そのための機能が不足しているために牛個体の情報を変更する運用になっているのかもしれません。
いずれにしても真の課題を理解しないと本質的な問題解決はできないので、それをまず理解するということを大事にしています。
また、そのためにも顧客の業務理解も欠かせないと思っています。
一般的な畜産に関する知識のキャッチアップについては主に書籍で行っていますが、
それでは補えないような特定の領域の知識については、例えば畜産関連団体が発行している機関誌・白書などを読み込んで学んでいます。
現場の牧場業務については直接牧場を見学させて頂いたり、お客様にヒアリングさせて頂くことで学ぶ機会もあります。
実際の現場での業務については、自分はまだまだ分かっていないことが多いなと日々痛感しています。
ー次にU-motion Platformの開発業務について教えて下さい。
U-motionと他の畜産関連サービスをつなげるためのプラットフォームが 「U-motion Platform」 と呼ばれるもので、これの設計と実装を行っています。
他サービスとU-motionとの間でどのようなデータのやりとりが必要になるか等の要件を詰めて、それを元に連携方式やAPI、認証方法などの設計と実装を行いました。
インフラ周りやCI・CDの設計・構築もゼロからやったので、自分がこれまで触ったことの無かったAWSのサービスについても学ぶ良い経験になりました。
現在も引き続き機能開発を進めながら、実際にプラットフォームを利用する他サービスとの結合テストやサービス公開に向けた準備をしています。
この業務ではプロジェクトを円滑に進める上で、他サービスの開発会社との意思疎通がポイントになりますね。
また、プラットフォームの構築だけでなくプラットフォームと連携する他サービスの開発業務も一部行っています。
こちらは、ある畜産関連団体が提供しているサービスの開発・運用になりまして、外部の開発会社との共同開発においてプロジェクトのディレクションや技術周り・業務知識のサポートを行っています。
他にもデザミス内での新規サービス立ち上げの話もありまして、そちらの開発も並行して担当しています。
ー今後どのような仕事をやっていきたいですか?
おかげさまで U-motion はユーザー数も大きく増えてきました。それにつれてお客様からのご要望も増えてきましたが、これに十分に応えられていないと考えています。
より役に立つ機能をより便利に使って頂けるような機能を沢山作ってお客様のご期待に応えて行きたいと思います。
技術面ではユーザー数の増加に伴いデータ量も増えたためにパフォーマンスの問題も徐々に出て来ています。
これに対してはアプリケーションの改善だけでなく、DBテーブルの設計変更やインフラの乗り換えなどにも視野に入れて集中的に取り組んでいこうと思っています。
ー次に田中さんが働いているチームや働き方について教えて下さい。まず開発チームはどのようなチームですか?
開発チームはそれぞれ独自の強みを持っている自立した技術者の集団です。
色々なメンバーがいますが、私が良いなと思う共通点は自発性ですね。言われたタスクをこなすだけでなく、各自が常に問題意識をもって主体的に仕事に取り組んでいる雰囲気があります。
開発の仕事の進め方としてはプロダクトとして優先して行うべきタスクをリーダーがメンバーに割り振るのですが、各メンバーからより優先すべきタスクの提案があれば臨機応変に着手順位を変えて対応します。
働き方としては現在、完全リモートワーク・裁量労働で各自の都合に合わせて働くことができます。
子育て中のメンバーも多く、この働き方の体制は助かっているメンバーも多いと思います。私自身、飼っていた犬の介護をやっていた時期が2年間ありまして、リモートワークは大変助かりました。
リモートワークだとコミュニケーション上の問題点などもあると思いますが、困ったときにslack等で声をあげれば直ぐに誰かが助けてくれるので特に孤立感などは感じたことはありません。
チームメンバーと話し合って解決したいことなどがあれば直ぐにビデオ会議に応じてもらえる雰囲気もあります。
ーさて、サーバーサイドエンジニアとしての仕事について伺いましたが、今後新規でサーバーサイドエンジニアとして採用された人はどのような業務を行うことになりますか?
本人の希望にもよりますが、まずは U-motion のサーバーサイドのどこか一部の開発を担って頂くことになります。
そこで U-motion のサーバーサイドの概要を覚えて頂いてから、担当領域を広げたり深めて頂くことになると思います。
全てができる必要はありません。サーバーサイドのどこかの領域で力を発揮して頂ければと思います。
サーバーサイドエンジニアの担当領域は広く多様なので、手を挙げれば希望に応じて何でもやらせてもらえるはずです。
U-motionはまだまだ新規機能開発が必要ですし、新サービスの立ち上げの機会も今後あると思います。そのような業務に携わることもできると思います。
ー最後に伺います。どのような方にサーバーサイドエンジニアとして参入してもらいたいですか?
まず、U-motionの開発を通じて社会貢献を一緒にやっていきたいと思ってくれる方に来て頂きたいです。
その上で、表面的な課題の裏にある真の問題を深堀りして解決できること、問題提起だけでなく自身の力で(時には他者を動かして)問題解決ができる方が望ましいと考えています。