こんにちは。19卒のリヌスと申します。
スウェーデンから正規留学して立教大学を卒業後、全研本社に入社しました。
入社後1年目は旧R&D事業部でエンジニアをしていました。

2年目に入る直前、旧R&D事業部が他の事業部と合併し、大規模なエンジニア組織であるSI事業部が設立されました。

SIは「システムインテグレーション」の略語で、社内や社外の事業部が抱えている問題や開発のアイデアを形にする仕事をしています。

今回のブログでは、SI事業部でのシステム開発の楽しさ・厳しさについてお話したいと思います。

リヌスさん_新ブログ画像

事業部合併による新しいチャレンジと楽しみ

旧R&D事業部在籍時は社内案件の開発がほとんどでしたが、SI事業部になってからは社外開発が主要になりました。
その分、クライアントが求めていることを形にするのは大変ですが、以前よりも仕事の面白さと種類の広さも増えたように感じます。

社外システムを作るということは、お客様が考えたあらゆるアイデアやイノベーションをどのように実現できるかを考え、実装まで行います。
つまり、案件によっては全く異なる技術に触れたり、違うシステムを作りますので、プロジェクトごとに新しいチャレンジが体験できます。

都度、参加メンバーや使用言語が変わったり、プロジェクト期間や課題も異なってきますが、その変化こそが現在の仕事における大きなやりがいだと心から感じています。

まず、ゼロから物事を作っていく楽しさが最高ですし、チームやプロジェクトへ貢献する達成感が大きいです!
さらに、毎回新しいものを作ることで、永遠に飽きることがないのが社外のシステム開発にあると思います。

流用できるスキル、技術や方法論はいくらでもあるかもしれませんが、最終的にはプロジェクトごとのオーダーメイドシステムを作っているので、非常に刺激的です。
各プロジェクトから大きな学びや成長を得ることができますし、失敗やミスした知識は次のプロジェクトに活かすことができます。

また、SIは外国籍の社員が多く在籍する事業部です。
私もスウェーデン人ですし、様々な国々の社員とコミュニケーションを取りながら同じプロジェクトで肩を並べて仕事ができます。

社内での使用言語は主に日本語ではありますが、いかに日本語が上手に話せても、それぞれの文化なりの考え方がありますし、個人によって考え方も違うので、人間的な側面でも毎日が刺激的です。

ソフトスキルのコミュニケーションを鍛えたければ、同じ文化・言語の人とコミュニケーションをとるだけでも充分ですが、国際的な環境で過ごすことでより刺激的で勉強になります。この点に関しては、自分が異文化コミュニケーション」学士であってよかったです(笑)。

仕事の難しさ

ソフトウェア開発は非常に興味深く、そして深みのある仕事だと思います。
技術やクリエイティブな面だけでなく、業務フローに方法論があったり、コミュニティ全体ができるだけ業務効率をはかることで良品のプロダクトを作ろうとしているのが伝わります。

技術的に様々な言語やプログラミングの概念を知っても、チームとしてプロジェクト単位で仕事をしているので、コミュニケーションやプロジェクト管理、セキュリティーや開発体制などの知識も必要となってきます。

簡単に言えば、知っておくべきことが非常に多いです!

おそらくどの仕事でも同じだと思いますが、特にIT業界では技術が日々進化するものであり、好奇心や勉強がないと置いて行かれる可能性があります。
しかし、そこにはやりがいもあると思います。

ITは、新しい挑戦が未知数に広がっている世界だからです!

2年目からの挑戦。UI/UXは見た目だけじゃない!

新卒2年目になったということで、仕事で関わる部分が増えました。
フロントエンド実装、UI/UX設計(ユーザーインターフェース/ユーザーエクスペリエンス)や要件定義はもっとも触れている部分ですので、ある程度の知識や経験があると自負していますが、これからもさらに勉強し続けていかなければいけないと感じています。

最終的には一周回って理解した方が、考慮しなきゃいけない部分や、判断がつきやすくなるのではないかと思います。

リヌスさん3

▲ 実際の案件で作成したUI/UX設計図

業務内容は日によって変わります。
どのようなプロジェクトでどういった役割を果たしているのか、そして参加しているプロジェクトは今どこのフェーズにいるのかで大きく業務が変わります。

私がよく関わる部分は、フロントエンドの設計や実装、要件定義などです。
主にフロントエンドの部分に触れているので、仕事内容の例をあげたいと思います。

プロジェクトがスタートし、システムの要件が決まった初段階になると、画面レイアウト/画面要件を決めないといけません。
画面要件がない場合はシステムの機能要件をもとに画面要件を作りますし、画面要件があれば実装するにあたって何が最適かを議論することができます。

画面要件の決定では、UI/UXが大きく関わってきます。
ユーザーがどの画面だったら使いやすいのか、どのレイアウトやスタイルだと見やすいのかなどを考慮することができます。

また、UIによって、必要な機能やページ数も変わります。

例えば、商品詳細の画面で、商品名を変えたとします。
別ページで編集を可能にするのか、今時よく見かける、Edit-in-Place(その場で編集)にすることもできます。

リヌスさん1

▲ イメージ図

片方はページ遷移せずに、ユーザーが求める「編集」する行為が達成できるのに対し、もう片方は編集画面にページ遷移をする必要があります。
この時点でUXを決定することによって、必要となる実装方法が変わります。

どちらのやり方もゴールは同じですが、お客様の要望、使っている言語や環境、つまり状況によって最適なものを見出さなければなりません。

UXには絶対的な正解・不正解はないかもしれませんが、システムの全体像と状況のニーズによって「正解」が変わると思います。

もっと日常的な話に例えると、ドアノブにするか、ドアレバーにするのか、同じ機能を果たしてもそれなりプラスとマイナス点があります。

リヌスさん2

▲ ドアノブの事例

そこをどうやって考え抜くのがプロジェクトごとによって変わっていて、刺激的な毎日です!

まとめ

システムインテグレーションの仕事をしていることによって、お客様の面白いアイデアを何回も実装し、様々なプロジェクトに参加してきました。
やりがいは色んなところで見つかります。

例えば、新しいことを作ることに。
お客様の「できない」を「できる」にする。
チームメンバーのためにプロジェクトに貢献する。
新しい課題の解決方法を見つけ出す。
新技術に触れて感動する……etc。

エンジニアの仕事は、問題を根本的に解決することです。
プロジェクトごとで、毎日新しい課題を見つけて、それらを解決していくチャレンジが非常に楽しいです。

これからも、より良いものを作り、より良い自分になり、世界中の人々に役立つモノを作っていきたいと思います。

リヌスさん4

最後に…エンジニアの勉強をしたい方に向けておすすめのサイトを紹介します!

▼ 「freecodecamp」
https://www.freecodecamp.org/
フロントエンド周りの勉強ができます(最近はPythonや機械学習も追加されました)(英語/無料)

▼ 「Eloquent Javascript」
https://eloquentjavascript.net/
JavaScript周りを丁寧に説明してくれます(英語/無料)