◆ 本シリーズの記事第1弾「track――生涯エンジニアが活躍し続けるためのスキルチェック&学習プラットフォーム、他社・業界とのスキル比較も可能」も併せてお読みください。
エンジニアのエンジニアによるエンジニアのための「track」
――小西さんはリードエンジニアとして、どのようなお仕事をされてきたのですか?
小西俊司氏(以下、小西):僕は3年前にギブリーに入社して、「codecheck[1]」の前身である「Cody's Check(コーディーズチェック)」からcodecheckへリニューアルする際に、基盤から何から作り変えました。ゼロからのスタートでしたし、僕が入社した当時は、エンジニアの組織に全然人がいなくて、大変なこともありました。その分、好きにできたという面で、楽だったこともありますけどね。
僕はもともとGoogle Code Jamのようなプログラミングの問題を解くサービスが好きだったので、自分でもエンジニアの採用や能力を測るサービスを手がけられたら面白いなという思いでジョインしたのがきっかけです。
池田秀行氏(以下、池田):当然のことながら、エンジニアを評価したり、エンジニアに学習環境を提供したりするためには、コンテンツを次々に登録・更新していく必要があります。ところが、昔のシステムではPHPを使い、admin(サーバー管理者)権限上のテキストとしてコンテンツ管理をしていました。そのようなシステムでは、実行環境の拡張やコンテンツの更新が難しい。そこで、小西がバックエンドのプラットフォームをすべて作り直し、コンテンツを簡単に登録・更新できる仕組みを整えてくれました。
また、小西はプラットフォームだけでなく、codecheckやCODEPREP[2]のコンテンツも自分で書いているので、コンテンツの作りやすさにこだわりがあるんですよね。
小西:誰でもコンテンツを作れるようにというのは、強く意識しながら作っていました。
池田:マークアップスタイルのコンテンツをインポートすれば、教材ができあがるイメージです。これは現在のtrackでも引き継がれている特徴で、ユーザーさんの手元でも手軽に教材を作成し利用できる環境を提供しています。
――池田さんは昨年の秋にジョインされていますが、CTOとして小西さんとどのように連携されているのですか?
池田:僕はCTOとして入ったものの、バックエンドは小西が作っているチームがありましたので、実装面はほとんど見ていないです。今はビジネス的な観点からプロダクトのロードマップを引くような、どちらかといえば経営に近い仕事が多くて、技術面は小西に任せています。
これまで10年間gloopsというソーシャルゲームの会社にいたのですが、前半の5年間はCTOだったので、自分でフレームワークを作って、小西のようにすべてをリードしていました。ただ、後半の5年間は代表をやっていたので、実装からは少し引いて技術以外の領域をやってきた経緯もあって。
――「track」へのリニューアルで、池田さんが目指していることとは?
池田:trackは、BtoC(一般向け)サービスのCODEPREPと、BtoB(法人向け)サービスのcodecheckを統合し、今後はワンプロダクトで価値の幅を広げるべくBtoBにフォーカスしたサービスです。ようやくその土台ができたなという段階で、これからやりたいことはすごくたくさんあります。それを今後、1つ1つ形にしていきたいですね。
注
[1]: codecheckとは、ITエンジニアのスキルを可視化し、採用時にかかる工数・コストを削減するサービス。ITエンジニアのスキル評価がうまくできないために、正しいスキルマッチングができなかったり、あるいは現場任せになって、余計な工数がかかりすぎてしまうといった課題を解決する。
[2]: CODEPREPとは、初心者が手軽にオンラインでプログラミングを学べるサービス。シングルページアプリケーション(SPA)のフレームワークやVue.js、Reactといったフロントエンドのモダンテクノロジーまで学習できる点が特徴。
ITエンジニアの選考時の能力把握・社内でのスキル評価・人材配置に悩む
リーダー・マネージャー・人事様へ
スキルチェックのデモにうかがいます!
ギブリーでは「」によるスキルチェックのデモにうかがっております。「採用におけるスキルのミスマッチをなくしたい」「自社のITエンジニア、ならびにエンジニアチームのスキルがよくわからない」「エンジニアを適材適所で活かし、生産性を高めたい」といった悩みを解決する糸口を、trackのデモからつかんでみませんか?
下記のWebページにtrackのサービス詳細がございます。そちらをご確認いただいた上で、デモをご希望される方は、同ページの「体験版デモ」よりご相談・お問い合わせください。
>>> track「サービス」ページ
コンテンツの作りやすさを大幅に改善
――小西さんはリードエンジニアとして、今回のリニューアルではどのような役割を果たされたのですか?
小西:僕が主にやっているのは、システムの下回りの開発。先ほど池田が述べた「プラットフォーム」と呼ばれる部分で、コンテンツを登録・更新するための機能や、出題・解答・評価を行う機能などを実装しています。実はcodecheckの時代から、僕としては作りたかったものをずっと作り続けている感覚なんですよね。誰にどう使ってもらうか、どんなコンテンツをのせるかといった“上物”の話は私の管轄外。いつかは多くの人に使ってほしいという思いはありますが、そこに至るまでの手段はそんなに気にしていないんです。
ただ、池田が来てくれたことで、ビジネス的なところがすごく強くなった。今後はさらにどんどん広がっていくことを期待しています。
――池田さんがおっしゃるには、プラットフォームはtrackへのリニューアルですべて作り直したとのことですが、具体的には?
小西:codecheckでは、ユーザー(スキルチェックの出題者と解答者)が書いたプログラムコードを、サーバー側で実行する必要があるのですが、その数が多くなってきて管理しきれなくなってきていたんです。品質や安全性が不明なそれらのプログラムコードを実行するには、従来のシステムでは不安があったため、実行環境であるプラットフォームを作り直したのです。新しいプラットフォームでは、ユーザーの書いたコードはすべてDockerコンテナ上で動かすようにしました[3]。
――trackになって、エンジニアの評価と育成を長期的に支えるシステムになると思いますが、この辺りについて小西さんはどうお考えですか?
小西:そうですね。その辺りをどうするかというのは上物の話になると思うので、ユーザーの反応を見ながら開発していければいいのかなと。現時点で最終形のイメージは持っていないです。僕はコンテンツを作ったり、動かしたり、管理したりする仕組みのほうに意識が向いていて、“いかに簡単に書けるようにするか”が僕のタスクだと考えています。そのために、「Markdown形式[4]で書いたコンテンツの見た目や動作をWebブラウザでそのまま確認できる」といった機能を開発しました。
Markdownなので、いくつかのルールを覚えて書いてもらえばGitHub上で読めますし[5]、trackに載せれば、それが学習コンテンツとして見られるようになっているんですよね。Ruby on Railsのように規約に沿って記述する経験があれば、教材や試験を独自で作成してみようというユーザーに、すぐに使いやすさを実感してもらえると思います。
## 標準出力に"Hello World"を出力する 標準出力に文字列"Hello World"を出力してみましょう。 標準出力への出力には`System.out.println`というメソッドを使用します。 ### main(Main.java) ``` public class Main { public static void main(String[] args) { ${System}.${out}.${println}("Hello World"); } } ``` ### hint 標準出力に文字列を出力するメソッドは`System.out.println`です。 (SystemのSは大文字です。) また、Javaでは文字列は`""`で括ります。 ``` public class Main { public static void main(String[] args) { System.out.println("Hello World"); } } ``` 厳密にはこれは「Systemが持っているstatic変数outのメソッドprintln」を実行している、という意味なのですが、今はこれも丸暗記しておけば良いでしょう。 ### tips javaコマンドの実行結果として"Hello World"が出力されるようになりました。 mainの処理として、"標準出力にHello Worldを出力する"という処理が記述されたので、javaコマンドがその処理を実行したのです。 ### remote - build: javac Main.java - command: java Main
注
[3]: マークアップ言語の1つで、見出しや箇条書き、ハイパーリンクなどを読みやすく簡単に記述できる。ルールが少ないので覚えるのが比較的簡単なほか、人にとっても読みやすいのが特徴。
[4]: GitHubは、インターネットを介してソフトウェアを共同開発するためのソースコード共有サービス。Markdown形式で記述した文書をGitHubにアップロードすると、Webページとしてレイアウトされて見やすく表示される。
[5]: Dockerは、OS上に仮想的なアプリケーション実行空間(コンテナ)を作り出すソフトウェア。プログラムコードをコンテナ内で実行すると、システムを破壊するような動作を封じることができる。
ITエンジニアの選考時の能力把握・社内でのスキル評価・人材配置に悩む
リーダー・マネージャー・人事様へ
スキルチェックのデモにうかがいます!
ギブリーでは「」によるスキルチェックのデモにうかがっております。「採用におけるスキルのミスマッチをなくしたい」「自社のITエンジニア、ならびにエンジニアチームのスキルがよくわからない」「エンジニアを適材適所で活かし、生産性を高めたい」といった悩みを解決する糸口を、trackのデモからつかんでみませんか?
下記のWebページにtrackのサービス詳細がございます。そちらをご確認いただいた上で、デモをご希望される方は、同ページの「体験版デモ」よりご相談・お問い合わせください。
>>> track「サービス」ページ
プログラミングを楽しんでもらいたい
――trackではレポート機能が強化されましたが[6]、そのためにシステムではデータ構造を変えたとうかがいました。その具体的なポイントは?
池田:私が関わり始めたころは、レポートすらあまりなくて。前職で携わっていたソーシャルゲーム業界ではすごくデータを見るので、大きな違和感を覚えました。例えば、codecheckで選択式の問題が50問あるとして、問題ごとの解答率や偏差値を出せなかったんです。今回の改変では、「レポートで見られる項目をカスタマイズしたい」という要望にも応えられるようにしました。
――trackでお気に入りの機能はありますか?
池田:テストの方式は選択式や記述式など、いろいろなスタイルで出していこうとしているのですが、今回、受験のアプリケーションはゼロベースですべて見直したので、受験者の方が集中して本領発揮できるような環境には近づけたかなと思っています。
小西:以前の選択式問題は、かなり無理やり作っていたんですよ。設問をクリックすると選択肢が別ウィンドウで開いていたのを、シンプルに1画面で完結するようになりました。
池田:まだまだ変えるべきところはあるものの、UI/UXは大きく最適化できたと思いますね。今後は利用者が増えていく中で、フィードバックをもらって改善していくことができれば、さらにもっとよくなっていくだろうと考えています。
小西:あと、(CODEPREPから継承した)trackのプログラミング学習のための機能はかなりよくできているので、自分も学習コンテンツを書いてみたいと思うエンジニアは結構いるんじゃないでしょうか。
――では最後に、trackの導入を検討中の方、企業に向けたメッセージを。
小西:僕は昔からエンジニア向けに作るのが好きで、エンジニアが働きやすい世の中を実現したいと思ってきたので、trackがエンジニアのみなさんに喜んでもらえるものになっているといいなと思っています。本来、プログラミングは楽しいもの。trackが提供する試験や問題をネガティブに受け取らず、プログラミングの題材として純粋に楽しんでもらえるといいですね。
池田:そうですね。エンジニアへの思いがかなり強いチームが作ったサービスなので、エンジニアのみなさんからご意見をいただけるとありがたいです。当然、trackだけでエンジニアのスキルをすべて可視化することはできませんが、エンジニアリングを一歩でも前進させて社会に価値を与えていきたいと考えています。その思いを汲み取ってもらえるたら非常にうれしいですね。
注
[6]: IT人材ラボ「track――生涯エンジニアが活躍し続けるためのスキルチェック&学習プラットフォーム、他社・業界とのスキル比較も可能」の3ページ目を参照。
ITエンジニアの選考時の能力把握・社内でのスキル評価・人材配置に悩む
リーダー・マネージャー・人事様へ
スキルチェックのデモにうかがいます!
ギブリーでは「」によるスキルチェックのデモにうかがっております。「採用におけるスキルのミスマッチをなくしたい」「自社のITエンジニア、ならびにエンジニアチームのスキルがよくわからない」「エンジニアを適材適所で活かし、生産性を高めたい」といった悩みを解決する糸口を、trackのデモからつかんでみませんか?
下記のWebページにtrackのサービス詳細がございます。そちらをご確認いただいた上で、デモをご希望される方は、同ページの「体験版デモ」よりご相談・お問い合わせください。
>>> track「サービス」ページ