1.これまでの経歴
私は幼少期の頃からモノづくりをしたいという気持ちが強く、ロボットや家電などの組込機器に強い関心を持っていました。そのため学生の頃は工学系の中でも電気電子系を専攻し、学業と並行しながらプログラミングスクールにも半年間通い、基本的なソフトウェア開発を学びました。
その中で培ったスキルが認められ2022年4月に新卒でAvintonに入社し、Avintonアカデミーで学習。(学習を通して得た気づきや今後プログラミングを学習する人に向けて私が書いたブログはこちらです。)研修の後、都内の大手IT企業でC/C++を使ったAIカメラのLSI評価と、工事現場で使う測量機のシステム制御機器GUI開発の二つのプロジェクトを経験させていただきました。
今回の記事では自分が初めて案件に携わらせていただいた中で、自分なりに努力したことや苦労したこと・今後の話などをさせていただければと思います。
2.最初の配属プロジェクト先での経験と学び
まず自分が配属されたのが、トータルステーションと呼ばれる工事現場で使われる測量機の開発プロジェクトでした。具体的には道路工事などで角度と距離を同時に測量することにより観測から計算・地図編集までの工程を一つで賄える機械です。そこで私はGUIと呼ばれる機械の操作画面の開発を担当したのですが、その中で大きく分けて二つの壁に直面することとなりました。
1) 仕事の進め方
初めて仕事を任せていただくにあたり、分からないことも多数出てきました。これらを挙げ出すとキリがありませんが、一例を挙げると以下のような事例です。
- 詳細設計からコーディングに落とし込む部分で設計書に記載がなく自分だけでは判断がつかない部分の記述方法が分からない
- ライブラリ特有のクセのある記述方法が分からない
- テスト設計のモックの記述方法が分からない
さらにプロジェクトリーダーである上司も複数プロジェクトを掛け持ちで仕事をしており、相談するタイミングを伺うものの私自身の人に頼ることが苦手な性格も相まって中々声をかけられずにいました。やっと質問することが出来ても、上司がプロジェクトメンバー全員の進捗を逐一把握できている訳ではないこともあり、質問の際に伝えるべき情報を伝えきれずに認識齟齬を発生させてしまうことも珍しくありませんでした。
そのような中で自分は、以下二つを意識することで現状況を改善しようと試みました。
- 質問出来る時間が限られる中で、聞く内容を簡潔にまとめること
- 上司に質問する際、質問事項に関わる部分の図式を見せながら質問すること
社会人として初めての案件ということもあり、プロジェクト参画当初は進捗が止まってしまう場面も多々あったのですが、このような工夫をし始めてからは少しずつ状況は改善していったように思います。特に二番目は効果絶大で、抽象度の高い概念などで特に効果を発揮し、上司との質問の受け答えがスムーズになっていったのを覚えています。
2) 言語
C++を扱うのはこのプロジェクトが初めてでした。学生時代にC言語でメモリ操作・マイコン制御の経験があったため多くの内容はスムーズに理解できたものの、クラスのスコープや型の制約が細かいが故に分からない概念も多く出てきました。
この苦しい状況を打開する方法を私なりに色々と模索した結果、Googleが出しているC++のコーディング規約が大変勉強になりました。この規約には基礎的文法はもちろん、C言語やC++特有の「暗黙の了解」的な記述方法など他の教材では言語化されていないところを丁寧かつ簡潔に網羅されていて、情報がコンパクトにまとまっています。
このC++のコーディング規約を見よう見まねで真似していきながら、今までやってきた言語との共通点、相違点を明確にしていきコードを記述していくと、自然とコードを書けるようになっていきました。
3.舞ってきたチャンスーAIカメラ案件へのプロジェクト移動
それから4ヶ月ほどした後、案件の事情によりプロジェクトを移動することになりました。次に担当したプロジェクトは経験を積みたかった画像処理領域、最新のAIカメラのテストを扱うプロジェクトでした。自分は元々AIカメラに興味があったので、その中身を知れることにワクワクしていました。
最初はお客様が作成されていた画像処理用APIを評価する業務を行っていました。業務用カメラの用途は多岐にわたり、それに応じて大量のAPIを評価しなければならず、スピードと正確性が求められる仕事でした。ですのでタスクも一部自動化されていて、マクロを使ってテストを実施していました。
私自身テストに関してはCI/CDツールを少し触ったことがある程度で経験がなく、テストパターンやテストケースなどを考えることに苦労しましたが、上司から指導を受けながら経験を重ねることで、確実にスキルアップしていることを実感しました。
そのような中、自分はプロジェクトに関わる中で感じることがありました。今行っている作業は製品全体の中でどの領域を扱っていて、エンドユーザーに対し何の価値を提供できるかを考えながら作業をすることの大切さです。
お話ししていることは至ってシンプルですが、無意識に作業を行っていると本来自分がプロジェクトに入った目的やそこでの自分の役割が時間と共に薄らいでいき、業務に対するモチベーションに影響してくることが大きな理由です。また、プロジェクトの全体像に対するゴールを見失ってしまうと、求められていることと作業内容との乖離も発生します。以上のことに気づき、全体像をつかみながら作業をすることができるようになってきてから、非常に作業そのものも遂行しやすくなったと感じました。
4.経験を踏まえて今学んでいることと今後のプロジェクト探しについて
1) 経験を踏まえて現在学んでいること・学びなおしていること
これまでプロジェクトを通じ様々なことを経験した中で、改めて自分の将来の方向性に関して考えが変わってきました。それはソフトウェアには元々自身が想像したものよりも遥かに巨大な可能性があって、それに気づいていなかったせいで自分ができることへの可能性を狭めていたことが見えてきたためです。
例えば
・・・
この続きは以下ブログよりご覧ください!
ロボット開発の夢を追い求めるエンジニアブログ
当社のエンジニアキャリアの考え方や具体的な入社後のイメージをもっと知りたいという方はこちらの会社紹介ページをお目通しください。
就職先を決めることは人生にとっても大きなイベントの1つ、私たちは相互理解が大切だと考えておりますので、選考関係なくオンラインカジュアル面談を歓迎しています。ご希望の方は話を聞きに行きたいボタンよりご連絡ください!!