RailsベースのSaaS型勤怠管理システムをアジャイルで開発
突然ですが、当社ではRuby on Railsを推奨しています。勤怠管理は、以前はExcelで行なっていましたが、現在はRailsベースの勤怠管理システムを利用しております。
ちなみにこれです。
ver1.1を先日リリースしましたが、なぜ当社がRuby on Railsを推奨しているかを今回はお話ししたいと思います。
まず、Ruby on Railsとは日本で産まれたプログラム言語、Rubyのフレームワークです(詳しくはコチラをご覧ください)。
Ruby自体はJavaよりも歴史が古く、生産性が高いことで注目を浴び、デンマークのDavid Heinemeier Hansson(通称:DHH)が2004年にRuby on Rails(以下、Rails)を開発したことで、再度注目を浴び、昨今、採用される機会が増えてきております。
Railsで作られたシステムは有名どころでは、my Rakuten、Twitter(現在はScalar)、グルーポン、mobage、GREE、mixiアプリなどがあり、その他でも基幹・業務システムなどなど、多くのシステムで採用されております。
まず、当社がRailsに注力する理由としては大きく以下の3つがあります。
- 変更に強い(柔軟性)
- 開発が早い(早期リリースが可能)
- 保守・堅牢性が高い変更に強い(柔軟性)
●変更に強い(柔軟性)
フレームワークにウェブアプリケーションで必要とされる機能のほとんどが実装されており、シンプルな設計が保てます。さらにデータベースの差分管理機能により、仕様変更に耐えやすく、細かいリリース計画も行いやすい設計になっています。
●開発が早い(早期リリースが可能)
コード生成機能や、各レイヤにおけるフレーム、規約による設定の自動化などによって
これまでのプログラム言語と比較すると劇的にコード量が減り、プログラミングの時間が短縮されます。
●保守・堅牢性が高い
規約の重視が前提なので開発者によるコードの差を抑えられ、他人のコードが保守しやすくなります。
またコード量が少ないのでバグの発生量も少なくなります。テストの自動化の導入が容易なためデグレード等の発生を防ぐことが可能です。
つまり「アジャイル開発に最適である」と言えます。
アジャイル開発自体は概念なので、固定的ではありませんが、サービスのライフサイクルが短くなり、市場が細分化される昨今、アジャイルソフトウェア開発宣(http://agilemanifesto.org/iso/ja/)の定義はWebサービスを提供していくうえで、不可欠な思想だと思います。
そこで、冒頭の勤怠管理システム「新月」ですが、こちらも、軸となる機能を早期(3カ月程度)開発をし、お客様の要望に合わせて随時アップデートをしていく、アジャイル開発で行なっております。
言語、開発手法、環境もすべては手段ではありますが、それぞれ何がより最適なのか、システムは運用を開始してからが本番なので最適な手段はお客様の環境だけでなく、お客様が本来意識したいが、見逃してしまっているかもしれない、市場のニーズも踏まえた提案をする必要があります(もちろんケースバイケースですが)。
そんな手段である言語達ですが、どんどん新たな言語・手法を習得するにも自分の体は1つなので、体の限界があります。
そんななかで、着実に実績を作りながら相手に自身のスキルを証明するのは困難ですが、そんなときのために資格があります。
次回は資格の市場について、データに基づいた分析をしてみたいと思います。