プロトソリューションでは、脱炭素社会へ向けてカーボン・オフセットの取り組みを開始します。将来的には、温室効果ガス排出を実質ゼロであるカーボン・ニュートラルの状態を目指し、再生可能な社会作りを目指します。

前回のあらすじ
カーボン・クレジットって何? プロトソリューションが脱炭素への取組みをスタート!

さて、前回では脱炭素の取り組みを会社としてスタートさせることになりましたが、カーボン・オフセットに取り組んでいくにはまず、現状を知るところから。

■当社の二酸化炭素排出量を知る

それでは当社プロトソリューション(沖縄本社)が、実際にどれくらいの二酸化炭素を出しているのか?

自然環境保全の調査・研究分野に詳しい、一般財団法人 沖縄県環境科学センターの方にご協力をいただき、概算数値を割出しました。

二酸化炭素の排出量を調べる方法は、『温室効果ガス排出係数』というものを使うそうです。

この係数は電力会社ごとに異なるので、環境省・経済産業省が出している『電気事業者別排出係数』を見て、契約している電力会社の排出係数に使用したkwhをかけることで、自社が出している二酸化炭素の排出量を知ることができます。

当社が、2020年8月~2021年7月の1年間で使用した二酸化炭素の総量(注)は、

918.77t(トン)になりました。

(注)沖縄本社第1ビル・第2ビルの消費電力および社用車のガソリン代から算出

しかし、この数値を見てもパッとこないですよね?

パッときていない福田

■918.77トンの二酸化炭素排出量ってどのくらい?

環境にどれだけの影響が出ているのかを分かりやすくするために、二酸化炭素を吸収するスギの木を使って算出してみました。

ズバリ、

918.77トンの二酸化炭素排出量は、スギの木65,626本分!!

どうでしょう?パッときました?

樹齢や手入れの状態で1本1本の吸収量は異なりますが、スギの木1本の二酸化炭素吸収量は年間に約14kgと言われています。※あくまでも目安としてご参考にしてください

計算式は以下の通り。

918.77トン(二酸化炭素排出量) ÷ 14kg(スギの木の二酸化炭素吸収量)=65,626本

つまり、当社を運営していくだけでも年間に65,626本のスギの木を植えて初めて、二酸化炭素が相殺(オフセット)されるということですね。

うーん、、具体的な数値を目の当たりにするとゾっとしますね;

■プロトソリューションで出来ることは?

年間の二酸化炭素排出量の数値も、それを補う数値も出たところで、我々が出来ることを考えていかねばなれません。

もちろん、いきなり木を何万本も植えることは人的リソースや植える土地の確保といった新たな課題が生まれます。

すぐに始めていけることは何か?

二酸化炭素の排出を抑えることは出来るかもしれません。

電気を消す。

まずは使わない電気、無駄に消費している電気をこまめに消すことで、
年間の二酸化炭素排出量918.77トン ⇒ 800トンに抑える取り組みを実施いたします。

■まとめ

いかがでしたか?

気候変動による国際会議『COP26』では、「石炭を段階的に廃止する」といった二酸化炭素排出抑制効果のインパクトが大きい解決策が実は、他の問題の足を引っ張るという反対案で採択され大きな波紋を呼びました。

電気を消すという行動は、インパクトこそ少ないですが他に影響も出ず、誰でも簡単に出来る環境に配慮した行動だと思います。

『千里の道も一歩から』

まずは身近なところからスタートしていきましょう!

次回の記事は・・・
「消費電力を減らすため、実際にプロトソリューションでできることをやってみた」

icon_福田

icon_福田

この記事を書いたひと:福田 聡樹(ふくだ さとき)

株式会社プロトソリューション Webマーケティング部所属。自社ホームページ編集長。ブログ/インタビュー/動画などのコンテンツを使ってプロトソリューションの取り組み、サービスやタレント情報の発信をしています。
好きなもの:爬虫類全般、本のにおい。


自己紹介

こんにちは。

沖縄に拠点を構える株式会社プロトソリューションで、インハウスマーケターをしているフクハラです。 オウンドメディアのSEOを中心にWeb集客支援の領域を担当しています。

はじめに

Webマーケティングを行う上で、避けては通れないアクセス解析。 今回はそのアクセス解析に欠かせない二つのツール『Google Analytics(以下GA)』と『Search Console(以下サチコ)』の違いを簡潔にまとめてみました。 Web担当者になったら知っておきたい基本中の基本が、サクッと読んでパッと理解できる内容です。

【こんな人におススメ】
・自分で調べたが理解できなかった人
・長文を読む時間の確保が難しい人

そもそも「Google Analyticsって何!?」「Search Consoleとは何ぞ!?」と、なっている人は丁寧に説明しているサイトが星の数程存在しているので、そちらを参考にしてください。

GAってなに?

●GA(グーグルアナリティクス):

簡単にまとめると、

Webサイト上でのユーザー行動を数値化したものです。

ユーザーの行動履歴で「どんな人」が「どんなデバイス」を使って「どうやって訪問」してきたのか、そしてサイトのどこに魅力や不満を感じたのか、サイトへ訪問した目的は達成したのか?していないのか?などを知る事ができます。

代表的な指標:ユニークユーザー数、セッション数、ページビュー数

サチコってなに?

●サチコ(サーチコンソール):

簡単にまとめると、

グーグルから見た自社サイトの状況を数値化したものです。

グーグルの検索結果ページ(SERPs)でのパフォーマンスで、対象ページがどんなクエリで何位に掲載されていて、何回表示されていて、何回クリックされたのか、などなどが把握できます。

代表的な指標:クリック数、表示回数、CTR、掲載順位

GAとサチコの違い(データ編)

取扱いデータを簡潔に説明すると、 Webサイトを軸にユーザーの状態(Webサイトへ訪問する前後)で区別しているデータと言えます。

●GA(グーグルアナリティクス):Webサイトへ訪問した後のデータ

●サチコ(サーチコンソール):Webサイトへ訪問する前のデータ

GAとサチコの違い(利用編)

何をいつどう利用するのか、
それは前述したユーザーの状態によって決められます。
簡潔にまとめると、以下のようになります。

●GA(グーグルアナリティクス):

GAは、Webサイトの目的(コンバージョン)を達成させたい時に、 訪問ユーザーの行動(直帰率や滞在時間など)や閲覧状況を把握して、データ分析を行い改善に向けて利用します。

●サチコ(サーチコンソール):

サチコは、Webサイトへの訪問ユーザー(集客)を増加させたい時に、 掲載順位・表示回数・クリック数・CTRを基に強化するクエリやページを把握して、データ分析を行い改善に向けて利用します。

まとめ

つまり、

●GA(グーグルアナリティクス)とは、ユーザーの行動履歴を基に、CVの最適化を行う為のツール

●サチコ(サーチコンソール)とは、グーグルのパフォーマンス評価を基に、集客の最適化を行う為のツール

と言えるでしょう。

したがって、改善したいポイントが「CV(コンバージョン)」なのか「集客」なのかでツールが選択できます。

本来はどちらのツールももっと深く、もっと細かく分析ができますが、個人的に一番押さえておくべきだと思っている事を3分で理解できるようにまとめてみました。

いかがでしたでしょうか。

今回ご興味を持っていただけたようでしたら、ぜひいろんな視点からデータ分析にチャレンジしてみてください。

それでは、お疲れ様でした。

プロトソリューションのドローンパイロット資格者が沖縄で撮影した高画質の動画素材を提供する「Drone Movie(ドローンムービー)」の素材が、2021年11月14日(日)放送のMBS/TBS系全国ネット『日曜日の初耳学』に活用されました。

■ 放送内容
・放送局:MBS/TBS系全国ネット
・放送日:2021年11月14日(日)
・番組名:『日曜日の初耳学』
いま知っておくべき話題のトレンドを物知りな林先生とやさしく掘り下げ、日曜の夜をちょっとだけ元気にするバラエティ

■ Drone Movieとは
https://www.protosolution.co.jp/lab/drone/dronemovie/
プロトソリューションのドローンパイロット資格者が沖縄で撮影した高画質の動画素材(4K・HD)100本以上が全て無料でダウンロードできるサイトです。
イベント動画、結婚式の二次会ムービー、動画編集の練習など、様々な用途で沖縄の風景素材(空撮動画)をご活用いただけます。

生産人口の減少問題をデータと AI で解決する 株式会社プロトソリューション(沖縄本社:沖縄県宜野湾市・仙台本社:宮城県仙台市、代表取締役社長:白木 享)が運営する 受付クラウドシステム「ラクネコ」が、「第 15 回 ASPIC IoT・AI・クラウドアワード 2021」において、支援業務系 ASP・SaaS 部門「ASPIC 会長賞」を受賞しました。

■ 「ASPIC IoT・AI・クラウドアワード」について

2006 年に第1回開催以来、クラウド事業者及びユーザ企業の事業拡大を支援し、クラウドサービスが社会情報基盤として発展・確立することの一助になることを目的として、日本国内で優秀かつ社会に有益なクラウドサービスに対し、総務大臣賞、各部門総合グランプリ、他各賞の表彰を行います。
URL : https://www.aspicjapan.org/event/award/15/index.html

■ 受付クラウドシステム「ラクネコ」について

<導入企業数 150 社突破!>
ラクネコは、来客対応の課題を解決し、受付からご対面までをスマートに対応する受付システムです。
来訪者は事前にアポイントメールで受け取った QR コードを受付に設置した iPad へかざすだけ。直接担当者へチャット・電話通知によりお知らせすることで、受付工数・取次工数ゼロへ!
無駄な工数を省き、来客をビジネスに直結させることで、組織の生産性向上に貢献いたします。
URL : https://raku-neko.jp/

株式会社プロトソリューション

プロトソリューションは、沖縄県宜野湾市に本社を置き、沖縄のクルマ情報「グー沖縄」や不動産情報「グーホーム」などのメディア運営をはじめ、デジタルマーケティング事業、IT インテグレーション事業、ユーザメディア事業、コミュニケーションサポート事業、人材支援事業の5つの事業を展開しています。
代表者 :代表取締役社長 白木 享(しらき とおる)
本社 :沖縄県宜野湾市大山 7-10-25 プロト宜野湾ビル
設立 :2007 年 4 月 3 日
事業内容:デジタルマーケティング事業、IT インテグレーション事業、ユーザメディア事業、
コミュニケーションサポート事業、人材支援事業
URL :https://www.protosolution.co.jp/

<本件に関するお問い合わせ先>
メディア事業推進室 広報担当:玉城 久子(たまき ひさこ) 090-9262-4102
E-Mail:h-tamaki@protosolution.co.jp

はじめに

はじめまして。プロトソリューション東京支社の前沢です。
今回は最近自分自身で振り返ってみたら、自分の会社ってちょっと珍しいタイプなのかなと感じたので、プロトソリューションの組織や運営の思想についてご紹介したいと思います。

私のプロフィール

2012年04月 ~ 2016年09月
株式会社アイソリューションズ入社
1年目にタイミングよく新規大型案件があり、2021年現在、役員・責任者の鈴木さん・針生さんと共にアサインされ要件定義・設計・テストを順に経験。この案件で厳しく、そして優しくご指導いただきました。その後、同プロジェクトの保守チームへアサインされ東京所属として運用保守開発業務に従事。

2016年10月 ~ 現在
株式会社プロトデータセンターと合併し、株式会社プロトソリューションへ商号変更。合併後、SES事業の部署から東京支社の開発部署へ移動する第一号メンバーとして部署移動。Salesforce開発者となり、翌年チーム化。2020年にはプロジェクトの管理者を兼任しつつ東京支社Web開発チームの統括となりました。

東京支社所属になって感じたこと

まずは、変化を恐れない。
正直最初は恐れがなさすぎると思っていました。
IT企業って結構守備力というか安定性みたいなモノを重視すると思ってたんですけどプロトソリューションはかなりの頻度で組織改革が行われていて、毎年~2年に1回くらいマイナーチェンジとは言えないくらいの組織変更が行われてます。事業のベースがプロトコーポレーション(親会社)の案件で占められている分、お互いが「そのほうがいい組織になるな」となれば一気に変更をかけることができて、納得して変更するからハレーションも起きないといった形が多いです。そういった背景があるので最初は恐れがなさすぎると思っていましたが、蓋をあけたらリスクほとんどなくとにかく成長するために変化してるんだなという結論に至りました。
 

次に、「社員のやりたいこと」に対してかなり寛容。
部門内でやってる事業や、その延長線上にあるものであれば自分がやりたいと思ってることはほぼ必ずできる。もちろん、思ってるだけでは厳密にいうとダメで、日々それに向けて例えば勉強したり先輩・上司と話したり・・・とにかくやりたい。挑戦したい。やれます!っていうのを発信していくのが重要だったりします。


実際に取り組んだ例は以下をチェック!
他にもあるので興味のある方はプロトソリューションの記事を是非チェックください!

ラクネコ

・JomoNeX

最後に、社員の成長機会を重要視している。
一つ目の内容と少し重複しますが、役割変更や次のステップへの挑戦・本人がやりたいことへのチャレンジを推進しているのは、それが本人が成長する機会になると考えているからだと思っています。打合せの際にたまにキーワードとして出てくるのですが、変更する・変更しないで「どっちがメンバーが成長する?」という会話がなされることが多いです。その視点を基準にみて変更をしないという選択をすることもあるくらいです。

結局どこがめずらしいの?

IT部門は親会社からの開発案件が柱になりつつ、新規事業に力を入れだしていてチャレンジングな領域に踏みこみ始めた時期だと感じています。IT企業で働く一員として、改めて振り返って考えてみたときに以下の点を全部満たす企業ってそんなに多くないんじゃないかと思いました。
 ・やりたいと思ったときに取れる選択肢の広さ
 ・安定した事業基盤
 ・新しい領域への挑戦が始まったばかり

プロトソリューションってどんな会社?

企業目標は「KANDOU COMPANY(感動カンパニー)」で、データとAIを活用して社会課題を解決することに取り組んでいます!

●企業文化
すでにいい記事があがっていました!

●未経験からの活躍者多数!
こちらも記事参照!!

最後に

東京支社は現在、半数を超えるメンバーがIT部門所属になっています。東京支社は今後、IT部門の中心になって上流工程に力を注いでいくことになると思います。まだまだ20名程度ですがこれからもメンバー一丸となってお互いを支え合いながら成長していける組織として頑張っていきたいと思います。

この記事を見て、
・興味があるな。
・私もこんなエンジニアになりたいな。
・エンジニアとして実現したい夢が叶えられそうだな。

と感じましたらぜひカジュアル面談でお聞かせください。

WEBディレクター

WEBディレクター

東京支社では、一緒に働くITエンジニアを募集しています

データサイエンティスト、フルスタックエンジニア、その他多数募集中!

最後までお読みいただき、ありがとうございました。

自己紹介

AIテクノロジー推進室仙台に所属しております櫻井と申します。

2013年に入社、学生時代にアプリ開発を行っていた経験を買われ、エンジニアとしての第一歩はAndroidアプリ開発からスタートしました。それからJavaを用いた業務システム開発や、親会社のクルマ・ポータルサイト「グーネット」でのAPIプラットフォームの新規開発業務など様々な分野の案件を経て、現在は当社が展開しておりますSaaS「受付クラウドシステム ラクネコ」のプロジェクトで開発セクションリーダーを担当しています。

ラクネコでは先日インターホン機能という、来訪者が受付端末を介して担当者と通話できる機能をリリースしました。

こちらのインターホン機能はWebRTCという技術を用いて実装しておりまして、来訪者が受付操作を行った際に担当者のモバイルアプリケーションに電話発信を行い通話を行うことができます。

本記事ではWebRTC技術についての説明と、どのような構成によって通話機能を実現させたかをご紹介したいと思います。

WebRTCとは?

Web Real-Time Communicationの略で、ウェブブラウザやモバイルアプリケーションが音声や動画などのデータをリアルタイムに通信するための技術です。

端的に説明すると上記のようになりますが、正確には映像の圧縮技術や画面共有で使われるスクリーンキャプチャ技術なども含まれており、さまざまな技術の集合体とも言えます。

従来にもオンライン会議アプリケーションは存在しておりましたが、それらは専用のプラグインやクライアントアプリケーションのインストールが必要で、また開発コストも高いものでした。

しかし現在にいたってはモダンウェブブラウザがWebRTCを標準でサポートしており、誰でも簡単にリアルタイムなコミュニケーションに参加することが可能になりました。

コロナ禍で世界中の人々にオンラインでコミュニケーションを行う文化が普及した今、WebRTCは無くてはならない技術になりつつあると思います。

WebRTCの仕組み

次にWebRTCがどのような仕組みでリアルタイム通信を実現しているかを説明します。

まず大事なキーワードとしてP2P(Peer to Peer)を理解する必要があります。P2Pはネットワーク上で端末同士がサーバを介さずにデータをやりとりする通信方式で、中央サーバを用意するクライアントサーバ方式と比較するとサービス提供者が低コストで運用でき、耐障害性も高いなどのメリットがあります。

WebRTCは基本的にP2Pで映像や音声といったデータをリアルタイムで送受信するようになっています。ただ、P2P通信を確立させるにはお互いに通信相手の情報が必要なわけで、事前にいくつかのサーバ通信が発生します。

まずはWebサーバ・シグナリングサーバに接続し、SDPと呼ばれる通信確立に必要な自身のIPアドレス・ポートなどが含まれた情報をシグナリングサーバ経由で相手に送信します。相手は受け取ったSDPを登録します。この処理をお互いに行います。

ここで通信経路上にNATの存在することによる問題があり、その対処が必要です。

NATはネットワークアドレスを変換する役割を持ち、プライベートIPアドレスをポートに割り当てることにより、ひとつのグローバルIPアドレスで複数端末の通信を可能にします。この変換処理の存在によって、SDPに含まれたIPアドレスでは相手と通信できない状態となってしまうため、それを対処するためSTUNサーバを利用します。

STUNサーバは外部ネットワークから見た時のIPアドレス情報を返してくれます。そのIPアドレスと自身のIPアドレスを比べることで、NAT越えの処理が必要かを判断します。

NAT越えでの接続が必要な場合、外部ネットワークから見た時のIPアドレス・ポートでの通信をしたいことをシグナリングサーバ経由で相手に通知し、その情報を受け取ってもらいます。これによりP2Pが確立します。

ただ、このSTUNでの対処は確実なものではなく、NATやファイアウォールの設定によっては通信を遮断されてしまうことがあります。その時の最後の手段として、TURNという仕組みが用意されています。P2Pによる通信は不可能と諦め、TURNサーバを中継させることにより、データを受け渡せるようにします。

通話アプリケーションを構成するまで

ここまででWebRTCの仕組みを簡単に解説しましたが、シグナリングサーバなどを自前で用意するとなると流石に面倒です。現在はそれらを提供してくれるWebRTCプラットフォームを利用することで、リアルタイム通信アプリケーションを少ない開発量で構築することができます。

有名どころのサービスとしてTwilioやSkywayの他、多くのサービスが提供されています。それぞれクライアントライブラリや料金(無料のものもある)、導入実績などに違いがありますので、利用する際は比較検討をするのがおすすめです。ラクネコでは国内にサーバがあり、低コストで運用できるSkywayを採用してアプリケーション開発を行いました。

設計について

さて、WebRTCを使って通話アプリケーションを作るとなった場合、オンライン会議アプリケーションとは違う点について考慮が必要となります。一般的なオンライン会議アプリケーションでは、時間や会議URLを示し合わせて、各々が自ら通話に参加する形かと思います。しかし通話アプリケーションの場合は、一方が通話発信を行った後に相手に通話のリクエストが来ている事、つまり着信通知の仕組みが必要となります。

iOSでの開発を例にあげますが、着信通知を実現させるためにはPushKit、そしてVoIP Pushを使うことができます。VoIP Pushは標準のPush通知とは異なり、受信時にアプリが動作していなくてもバックグラウンド処理を確実に行え、また遅延が少なく安定性が高いといわれています。まさに通話リクエストのようなリアルタイム処理のためにある仕組みです。またPushKitはVoIP Pushを受け取るためのフレームワークとして用意されています。

次にVoIP Pushの配信に使うサービスですが、もしAWSでシステムを構築しているならAmazon SNSの採用が良いと思います。他のAWSサービスとの連携ができ便利です。

使用する技術・サービスの紹介は以上で、ここからはラクネコで実装した通話を成り立たせるための処理フローをご紹介します。

まずは事前準備として、VoIP Pushを受け取られるようにするために端末の登録が必要となります。デバイストークンと呼ばれる情報が取得できますので、それを自前のAPIを経由させてAmazon SNSに登録します。するとPush通知をパブリッシュ(配信)する際に必要なtarget ARNが返されますので、ユーザに紐づける形でデータベースに保存しておきます。これを通話の発信側、受信側の端末それぞれで行います。

次がいよいよ通話を確立させるまでのフローです。始めにSkywayにPeer作成のリクエストを行います。PeerはSkywayにおける概念のひとつで、Skywayのシグナリングサーバや他の端末との接続を管理するエージェントです。1:1通話においては発信側、着信側の2つのエージェントが存在することになります。

Peer IDを受け取った後は発信したい相手の情報をパラメータに、自前の通話発信APIをリクエストします。すると、DBに保存されているtarget ARNをもとにVoIP Pushが配信されます。VoIP Pushには通話発信側のPeer IDを含めており、着信側は通知受信後にそのPeer IDとの接続をSkywayに要求します。これでP2P通信が確立され、インターネット回線を使った通話が行われます。

今回ラクネコでの構成を紹介させていただきましたが、こちらは実装の一例ですので実現したいシステムイメージにあわせて設計を検討されることが望ましいかと思います。

最後に

一昔前であれば、自分が開発するサービスに音声通話機能を付けるなんてことはハードルが高いと感じていたと思いますが、今こうして機能として実装・リリースできていることから、リアルタイム通信技術がだいぶ身近な存在になったということを実感しています。

コロナ禍で生活様式が大きく変化し、なるべく人との接触を避けるようになった事を考えると、手軽に遠隔でのコミュニケーションを実現するWebRTCは時代にマッチした技術であると言えます。

これから更に活用され身近な存在になっていくかと思いますので、存在や仕組みをなんとなくでも理解しておくと役立つ日が来るかもしれません。

SaaSエンジニア

SaaSエンジニア

仙台本社では一緒に働く自社プロダクト(SaaS)開発エンジニアを募集しています

システムエンジニア、その他多数募集中!

プロトソリューションのドローンパイロット資格者が沖縄で撮影した高画質の動画素材を提供する「Drone Movie(ドローンムービー)」の素材が、BSフジの番組『口コミで巡るASIAの観光都市』に活用されました。

■ 放送内容

・放送局:BSフジ

・番組名:『口コミで巡るASIAの観光都市』

■ Drone Movieとは

https://www.protosolution.co.jp/lab/drone/dronemovie/

プロトソリューションのドローンパイロット資格者が沖縄で撮影した高画質の動画素材(4K・HD)100本以上が全て無料でダウンロードできるサイトです。

イベント動画、結婚式の二次会ムービー、動画編集の練習など、様々な用途で沖縄の風景素材(空撮動画)をご活用いただけます。

株式会社プロトソリューションのホームページ内にあるコンテンツ、『FUKU LAB(フクラボ)』のYouTubeチャンネルが更新されました。

今年のプロトソリューションのハロウィンは、メディア部門役員の西村重役がプロデュース!!

ハロウィンお菓子の販売はもちろんのこと、今回は仮装をしてきた方にスペシャルなプレゼントがっ!!

さあ皆で、「HAPPY HALLOWEEN♪」

チャンネル登録もよろしくお願いします!

icon_福田

icon_福田

この記事を書いたひと:福田 聡樹(ふくだ さとき)

株式会社プロトソリューション Webマーケティング部所属。自社ホームページ編集長。ブログ/インタビュー/動画などのコンテンツを使って、プロトソリューションのサービスやタレント情報を発信しています。 好きなもの:爬虫類全般、本のにおい。

はじめに

このブログでは、情報処理の単位を落とすほどITに疎く、大抵の問題は「気力と体力」で解決してきた男が、「これからの時代はスマートフォンか!」と無謀にもIT業界に飛び込み、
8年間の経験を通して感じたエンジニアに必要なスキルについて、ご紹介できればと思います。
「システム開発ってどんなんなん?」と考えている方や、実際に開発現場で働く人にも、何かヒントになるお話しができれば幸いです。

自己紹介

こんにちは、はじめまして。プロトソリューションの棚原と申します。
私はAIテクノロジー推進室沖縄に所属しており、現在は自社SaaS開発の業務に携わっています。

私は入社してこれまで、Webアプリやスマートフォンアプリの開発、ハイブリットアプリやAPIの開発と、さまざまなプロジェクトでさまざまなシステム開発に携わってきました。
経歴を簡単にまとめると以下の通りです。

業務概要 触れた技術など
H25.9~ 入社して初めてプログラミングを学ぶ PHP, Objective-C
H26.4~ 自社サービスのB向けWebアプリ開発 Zend-PHP, PostgreSQL
H27.4~ グーシリーズやCtoCフリマアプリ等のスマホネイティブアプリ開発 Objective-C, Swift, Andorid Java, FuelPHP(API), MySQL
H29.9~ 自動車ディーラーの業務支援アプリ開発(ハイブリットアプリ) Ionic AngularJS, FuelPHP(API)
H30.7~ グーバイクの新規コンテンツ開発(SPA) Angular, Laravel(API), AWS
R2.4~ 自社SaaS開発 Angular, React, AWS(Serverless), Chalice(Python)

私の考えるエンジニアのスキル

これらの経験を通して私が考えるエンジニアに必要なスキルは、「効率的により速く、最適解を導き出す」力だと考えます。 システム開発とは、「業務上発生する何かしらの課題をコンピューターの力で自動化・効率化・仕組み化する」様な仕事をしますが、その中で効率的により速く最適な答えを出すことがなぜ必要だと考えるのか、説明していきたいと思います。

なぜ「効率的により速く」が必要か?

私たちの仕事はどのプロジェクトにおいても、背景にビジネスがあり、ニーズがあり、競合がいて、必ず期限があります。 こうした背景の中にある課題を技術で解決することがエンジニアには求められますし、そこにはスピードが伴います。それに応え、効率よく素早く課題を解決することがエンジニアの仕事なんだと、私は考えています。

どうやって「効率的により速く」を実現するか?

例えば、ドラえもんはポケットの中から課題に対する最適な答えを素早く出し、課題を解決します。まさに理想像です。 ですが、ドラえもんのすごいところは、道具を的確に出すところです。 つまり、多くの引き出しを持ち、それらでどんなことができるかを知ってるということが、効率的により速く答えを導き出すスキルの一つなんだと思います。

私も色々な技術に触れたことで、それぞれのクセや特徴が引き出しになり、ふとした場面で課題解決のヒントとなった経験が多々あります。

また、多くの引き出しを持つというのは「知ってるだけ」で十分です。 極端な話ですが、私は未だにプログラミングの基本構文であるfor文も覚えていません。知ってるだけです。それでもIDE(プログラミング環境)の拡張機能を使ってfor文を書くことができます。 無駄に多くのことは覚えず、必要な時に取り出せればとても効率的です。

知ってるか知らないかの違い

少しかじった話になりますが、具体例でイメージしていきます。 例えば、Webサイト(静的サイト)を作成してインターネットに公開したい、という場面があります。

Webサーバを利用した場合

通常、Webサイトを構築・公開するには、大きく以下の様な対応が必要になります。

・Webページの制作
・Webサーバの構築(サーバの調達・ミドルウェア(Webサーバソフトウェア)のインストール等)
・Webページのアップロード・公開
・サーバの運用監視

と手間がかかります。

Amazon S3を利用した場合

ところが、AWS(Amazon Web Services)のS3というストレージサービスの静的ウェブサイトホスティングを利用した場合はこうなります。

・Webページの制作
・S3バケットの作成・設定
・Webページのアップロード・公開

S3を利用すればWebサーバの構築が不要で、必要な設定は管理画面上で操作でき比較的容易です。 また、S3はマネージドサービスでサーバの運用監視が不要です。(しかも安価です)

AWS Amplifyを利用した場合

それだけでなく、同じくAWSのAmplifyというサービスを利用した場合、S3の静的ホスティングと同様の仕組みを自動で構築してくれる他、https通信に対応させる為のSSL証明書の発行・設定も自動で行われたり、カスタムドメインの設定が管理画面上で容易にできたりと、手動で行う作業を更に削減することができます。

このケースだと、Amplifyで出来ることや特徴を知っていることで、他の構成よりも効率的により速くWebサイトを構築することができます。

実際の現場では、どの構成が最適なのかはプロジェクトの要件次第です。 ですが、複数の構成パターンを知っていることで、効率的でリソースに無駄のない最適な選択ができます。

プログラミングにおいての効率

上の例はシステム構成寄りのお話でしたが、プログラミングの場面でも「知ってるかどうか」が効率化につながります。

複雑さがないこと・無駄なプログラムは書かないこと

身近なExcelの関数で簡単な例です。

①
=IF(A1>=80, "優", IF(A1>=70, "良", IF(A1>=60, "可", "不可"))) 

②
=IFS(A1>=80, "優", A1>=70, "良", A1>=60, "可", A1<60, "不可")

どちらも同じ結果を得られますが、①の方は入れ子が多く見辛いです。条件が増えると更に見づらくなります。 ②のIFS関数を知っていれば、シンプルになります。 プログラミングでも、プログラムが見辛いと不具合につながりますし、シンプルである方がレビューなど多方面に効率的です。

引き出しから引き出しが生まれる

また専門的な話になってしまいますが、プログラミングでの例です。 プログラミング言語は、それぞれ似た様な機能を持つことがあります。

Javaで有名なエラーにぬるぽ(NullPointerException)があります。 nullの格納された変数に、メソッド呼び出し等すると発生します。発生するとアプリが停止したり、致命的です。

String str; // null

int num = str.length(); // ぬるぽ

Swiftでも同様のエラーがありますが、これを避ける方法としてOptional Chainingという機能が用意されています。

var str: String? // nil

let num = str?.count() //Optional Chaining

JavaScriptでも同様のエラーを避けたい場合があります。 そうした場合、「JavaScript Optional Chaining」とググってみます。

var str //undefined

let num = str?.length //Optional Chaining

JavaScriptでも同じくOptional Chainingが用意されていることがわかり、同じ様な記述で回避できました。 この様に、一つの言語で知っていた情報が、他の言語においても解決策となる場合があり、その観点さえあれば、効率的に問題を解決することができます。

まとめ

いかがでしたでしょうか。 ここで私がお話ししたかった内容をまとめるとこの様になります。

・システム開発とは、様々な背景にある課題を解決する仕事であること
・システムの設計やプログラミングは課題解決の手段で、それを駆使して課題を解決するのがエンジニアであること
・課題解決の手段はより多くより効率的である方が、最適で素早い課題の解決につながること

これはもちろん、基礎があってこそだと思います。 私自身もPHP, Objective-Cのプログラミング学習から始まり、色々なプロジェクトに首を突っ込むことで Webアプリ→API、iOSアプリ→Androidアプリ→ハイブリットアプリ→SPAと引き出しや感覚を身につけてきました。 これを機会に、この経験談が誰かのスキルアップに繋がれば大変嬉しく思います。

おわりに

今なら情報処理で”優”が取れそうな、なんかそんな気がしました。 今回は技術特化の内容ではありませんでしたが、またの機会には日頃触れている技術のアウトプットもしていきたいと思います。 最後までご覧いただきありがとうございました。

ITエンジニア

ITエンジニア

沖縄本社では、一緒に働くAIエンジニアを募集しています

AIエンジニア、システムエンジニア、その他多数募集中!

ページトップへ戻る