Rubyにより製造工程を見える化

太陽電機製作所

太陽電機製作所の課題

株式会社太陽電機製作所(以下、太陽電機製作所)は、高圧受変電盤、配電盤、分電盤、制御盤等を製造・販売している。主に受注生産をしており、顧客の要望に応じて、企画・設計から製造・販売まで自社で行っている。多種多様な製品を扱っており、受注先も多岐に渡るため、見積りから受注までの管理が重要であった。そこで、営業管理システムを2010年にAccessで開発されたクライアントサーバシステムから、JRubyで開発したシステムへとリプレースした。

これにより、ネットワークに接続されたすべての端末から受注状況を把握できるようになり、営業部門だけでなく製造部門からも受注状況を確認できるようになった。しかし、受注後の工程は、工程毎の管理となっており、受注した製品がどのような進捗にあるかが把握できていない状況にあった。そのため、各工程においては前後の工程の状況が分からず、流れに応じた製造の段取りができないという課題を抱えていた。

ものづくりの見える化に向けて

そこで、太陽電機製作所は、営業管理システムの開発を担当した株式会社システム工房エム(以下、システム工房エム)に相談。製造工程を見える化し、各工程を支援できる仕組みづくりに着手した。この仕組みづくりでは、会社として受注後のものづくりの進捗状況をリアルタイムで把握できるようにするとともに、各工程がその進捗状況を見て自律的に考えて作業できるようになることを目指した。これにより、現場力をさらに鍛え、変化にも対応できる組織をつくることに繋げたいと太陽電機製作所は考えた。

現場で使われるシステムの開発へ

そこで相談されたシステム工房エムは、現場のニーズを着実に反映させ、使われるシステムを開発するために、約2週間毎に利用者のニーズを確認し、ソフトウェアを少しずつつくっていく開発スタイルを提案し、採用された。「アジャイル」と呼ばれる開発スタイルであるが、この開発スタイルの実現にRubyとその周辺ツールが不可欠であった。「シンプルなコードが記述できるとともにインタプリタ型であるため、コーディングから動作確認までがとても速くできる。」とシステム工房エム 開発部 リーダー 板垣美穂氏は語る。

また、「Rubyによる開発ではRSpecやCucumberといったテストツールが充実しており、テストの自動化によって、ソフトウェアの変更による影響範囲を人に依存することなく確認できたので、要求変更への対応のスピードアップが図られた。」と板垣氏はRubyの周辺ツールの有効性も話す。Rubyによって開発を迅速化させることで、2週間という短い期間で利用者に少しずつ開発したソフトウェアを見せることができた。実際にソフトウェアを見せることで、利用者からの意見や質問も積極的に出るようになり、ニーズをより明確にし、真のニーズに合ったソフトウェアをつくっていくことが可能となった。

「お客様のニーズが変わることは当たり前の前提として受け入れ、その変化にRubyとその周辺ツールによって対応していくことができた。」と板垣氏は語る。たとえば、ソフトウェアが要求通りに動作するかを確認する受け入れテストの項目を、Ruby技術者でなくても理解できるような自然言語に近い形で記述し、自動テストとして実行できるCucumberを活用している。Cucumberで受け入れテスト項目を記述していくことにより、「太陽電機製作所様に受け入れ内容を確認しながら開発できたため、ニーズを少しずつ確実に取り込むことができた。」と板垣氏は話す。RubyおよびRubyでつくられたツールを有効に活用することで、ニーズを着実に、そして迅速にソフトウェアに反映していき、現場で使われるシステムを実現していったのであった。

利用企業と開発会社の一体型開発

太陽電機製作所 営業・開発課 課長 糸賀一正氏は「地域のソフトウェア会社に発注し、地域の経済活性化に繋げたい。」と以前から考えていたが、Rubyの特徴を活かした顧客一体型の開発スタイルは、まさに利用者とのコミュニケーションを取りやすい地域の開発会社の地の利を活かしたものであった。地域の開発会社と一体となって、システム開発を進めている太陽電機製作所。その一体となって進める開発スタイルの実現にRubyが欠かせない存在となっている。

現場での工程の確認