株式会社アールラーニング

株式会社アールラーニング

エンジニア達の思いから始まった勤怠管理システム「新月-SHINGETU」

社員達の自主的な呼びかけから始まった業務管理システム構築

「きっかけはRubyで何か作りたいね、というアイデアからでした」と、株式会社アールラーニング(以下、アールラーニング)のCTOである鈴木達也氏は切り出した。アールラーニングは70人近い技術者を擁するSI企業であり、いまやRubyアソシエーション認定システムインテグレータに名を連ねているが、勤怠管理システム「新月-SHINGETU」(以下、「新月」)開発のきっかけとなったのは、2010年当時流行していたRuby on Railsでなにかを作りたいという、シンプルなモチベーションだった。

鈴木氏を含む社員達で自主的なグループを作り、新しいシステムを開発しようと意気投合したところで、早速社内の掲示板でアンケートを取ることになった。その結果、勤怠管理の煩雑さについての不満が多く集まった。SI企業として顧客向けシステム開発に携わるアールラーニングでは、社員の多くがシステムの保守・運用のため、客先に常駐している。社員達はExcelなどを利用して勤怠表を作成し、管理部門へ提出していた。管理部門もそれらの帳票を整理して集計するという作業を抱えており、給与明細も常駐先へ郵送しなくてはならない。この過程をなんとかして省力化できないか、という課題を多くの社員が共有していたのである。

エンジニアが数人集まれば、「新しい技術で何かを作ろう」と盛り上がるのはよくあることだが、その多くは立ち消えになってしまう。しかし、アールラーニングの「新月」は、エンジニアだけではなく、管理部門を含めたのべ2,30人の社員を巻き込む形で開発が進められていった。経営陣からも業務として認められ、空いた時間の中で開発を行うことの許可が出た。米国Googleには「20%ルール」と呼ばれる規則があり、業務時間の20%を自由なプロジェクトに充てられることがよく知られているが、「新月」もそれと同様、自主的な意見によって開始されたプロジェクトだったのである。

細切れの時間でもコードを書けるRuby on Railsの強み

20%ルールのたとえを出したが、鈴木氏は「実際にはもっと少なかった」と言う。経営陣からの理解を得てはいたが、既存の顧客を軽視するわけにもいかず、空いている時間が多いわけでもない。実際の開発は30分や1時間といったごく短い時間を利用して行われた。そんな状況において、Rubyの簡潔なコードとRuby on Railsの洗練された開発手法が役に立った。

「Rubyだと、電車の中で思いついたアイデアとかを動く形にまで持っていくのが簡単なんですよ」と鈴木氏は言う。Rubyはその簡潔な文法のため、コードを書く量は少なくて済む。また、Ruby on Railsならば、豊富なライブラリによって、Webアプリケーションのモックアップを表示するまで僅かな労力で済んでしまう。電車の中で設計や機能の実現方法までを考えておき、僅かな空き時間を利用してコードを書くといった効率的な開発ができるのはRuby on Railsならではであった。

また、Ruby on Railsとセットで採用されることが多いアジャイル開発の手法も多いに役立った。「新月」の機能要件は細かなタスクに分割され、これまたRuby on Rails製のプロジェクト管理ツールRedmineにチケットとして登録されていく。空き時間を利用してその機能を完成させると、自動テストツールを走らせ、別の業務に取りかかる。次にコードを触るときには、テストの結果が出ており、問題がなければそのままチケットを終了する。こうした細かな開発サイクルを繰り返していくアジャイル開発の手法は、「新月」のように限られた時間を利用して素早く開発していくプロジェクトで最大の効果を発揮した。

Rubyによる開発のメリットを最大化するのはプロジェクトの進め方である、と鈴木氏は考えている。要件定義を行い、詳細な設計を起こしてプログラミングを行っていく旧来型の手法の場合、Rubyを採用するメリットは他のオブジェクト指向言語と比べてそれほど大きくない。ただし、「新月」のようなシステムの全体像が明確になっていない状態で作り上げていくプロジェクトの場合、Ruby on Railsはその真価を発揮する。JavaやC#、PHPといった様々なプログラミング言語での開発実績があるアールラーニングCTOとしての考察である。

アイデアを実現するツールとしてのRuby

関わった人数は述べ20人程度だったが、実際に手を動かすエンジニアの工数は3人月程度というわずかな労力で「新月」は完成した。社内リリースを終えると、営業サイドから「新月」を売りたいという意見が出てくるようになった。元々は自分達が必要だからと作ったツールではあったが、「勤怠管理の負荷を軽減したい」という潜在的な需要はアールラーニングだけに限らない。やがて、「新月」はIT業界向け勤怠管理SaaSとしてリリースされた。結果的にエンジニア達の「Rubyで何かを作りたい」という思いがWebサービスとして結実した形になる。

「Rubyで開発することになったのは偶然に近いんですよ」と鈴木氏は言う。「新月」以前にもRuby on Railsによる開発実績はあり、例えば2008年には株式会社ユーフィット(現TIS株式会社)のグループウェア「ナレジオン」をRuby on Railsで開発している。「新月」プロジェクトが発足する前の2010年頃、業務でRubyを使用していないエンジニアから「Rubyで何か作りたい」という要望が上がっていたこと、全社的にRuby on Railsによるシステム開発に力を入れようと思い始めていたこと、そういった幾つもの偶然が重なった結果として、Ruby on Railsによる自社サービスの開発が行われたのである。

鈴木氏によれば、社名にRが入っていることや、コーポレートカラーが赤であることなどから、「元々Ruby専門のSI企業だったのでは」と質問されることが多いそうだが、これはすべて偶然である。ただし、そうした偶然に加えて、実際に「新月」プロジェクトが成功裏に終わったことで、アールラーニングは現在Rubyによるシステム開発に注力している。コミュニティへの協力も盛んで、Rubyアソシエーション認定システムインテグレータにも名を連ねている。社員の教育にもRuby技術者認定試験制度を利用しており、Ruby初学者にはシルバーの合格を目標にさせているという。

アールラーニングは顧客に対してシステム開発を提供するSI企業であり、状況に応じて様々なプログラミング言語を使い分けている。鈴木氏にとってプログラミング言語の重要な役割はアイデアを実現する「ツール」である。「新月」プロジェクトの成功によって、Ruby on Railsによる開発が限られた時間の中でアイデアをブラッシュアップしていくのに適していることは確信できた。現在は、次に出すサービスのアイデアを幾つも温めている最中であり、それはRuby on Railsで作る可能性が高い、ということである。

参考写真

●外部に出向している社員の勤怠管理に特化した「新月」

※本事例に記載の内容は2013年6月取材日時点のものであり、現在変更されている可能性があります。