開発事例

開発事例 The development achievements

大手製粉会社向け、小麦の入出庫計画立案システムの構築

今回の開発案件は属人化を排除できるシステムを実現することであり、また海外から運ばれてくる小麦の最適なサイロやビンに格納(入庫)及び工場への移動(出庫)が大きな目的となります。
特に、大手製粉会社様の小麦粉の生産計画に従い、最適な場所を選びながらの小麦の保管(入庫)や最適な小麦の保管サイロやビンからの出荷の順序をシミュレーションしながら作業順序の解をシステムすることが大きな目標となります。

開発方針として、正解が一つに絞れないシミュレーション機能の開発はほとんど実績がなかったことで、シミュレーション条件を絞り、POC開発(概念実証)にて検証を実施することを手始めに進めました。
結果、シミュレーション結果をもとに実現可能との判断から、システムの本格開発に移行しました。

お客様の運用をイメージし、要望や制約事項をヒアリングしながら、業務の分析を実施し、システム化の範囲、運用を整理しました。
お客様が全ての条件を洗い出せていない状況であったため、お客様のシステム担当者、業務担当者を交え、アジャイル開発手法で打ち合わせと検証を繰り返しながら進めました。
当社も、シミュレーション機能の開発経験がなかったため、下記手順での開発を提案し進めました。

【開発手順】
 ①POC開発(概念実証)
   提示いただいた条件や要望、制約事項を重要度の高い内容に絞り、シミュレーション機能の開発が可能かの検証用の開発を実施
   する。
 ②必須条件と、優先条件への分解
   船舶からの最初の荷揚げ中は虫混入の検査があるため、燻蒸可能なサイロ群かつ1000t以上のビンを選択する必要があるなどの
   必須条件や、荷揚げする総トン数に対して、選択されたビンの容量トン数が誤差30t未満を目指すなど、またできれば達成して
   ほしい優先条件など、様々な要望や条件を分解し、条件の優先順位を考えて開発を実施する。
 ③シミュレーション結果のブラッシュアップ
   シミュレーション結果を提示しては、②の条件の優先度の変更や、仕様の変更、開発を繰り返し、理想解に近づけるように開発
   する。

【開発環境】
 開発言語:VC++、Python
 DB:PsotgreDB

『注釈』
 「PoC」とはProof of Conceptの略で、日本語では「概念実証」と訳されます。新たに開発された技術や理論、アイデアなどに対して、実現可能かどうかを試作開発の前段階で実証することを指します。

大手製粉会社向け、小麦の入出庫計画立案システムの構築

背景・課題

今回お話しを頂いたのは、同じお客様の別部所の案件で同じようなシミュレーションするシステム化の導入でご評価を頂いており、その担当者様からのご紹介でした。また、大手Sierとは違い、お客様の業務に即した具体的な提案内容を受け入れて頂いたことが受注に至りました。

お客様の主業務は、国内外から船舶で運ばれてくる原料の小麦を一時的にサイロ(複数でかつ様々な容量のビン(500t~1200t程度))に計画的に保管(入荷)し、計画的に出荷(出庫)する業務です。保管場所であるサイロは複数あり、しかもそのサイロには、様々な容量の異なるビンが存在しています。

荷揚げする小麦のトン数をもとに、小麦の保管先が特定のサイロ群に偏らないように、分散させながらビンの容量に対して無駄な空きが出ないように、また様々な容量のビンを選定し、経路(ベルトコンベア)の制限も加味して、どこのサイロのどのビンに、どの順番で効率よく投入するかを考えながらEXCELを利用し手作業で管理しておりました。(以下 入庫)
一方、小麦粉の生産計画に従い、必要種類の小麦を保管しているビンから、製粉工場のタンクに、原料の在庫切れを起こさないように、タイミングを見計らって、経路(ベルトコンベア)、投入するビンを選定し、小麦粉の投入順序を考え、既存の運用システムに入力しておりました。(以下 出庫)
上記、入庫ビンへの投入順序や出庫の予約順を考えることを、ベテラン社員が経験を活かして実施しておりました。結果的に、特定のベテラン社員に作業が集中し、担当を変えることも厳しい状態で、お客様社内では解決すべく重要な課題となっていました。
ベテラン社員の経験や考え方をシステム化することで、誰もが扱えるシステムを目指しました。

プロジェクト課題としては3つ。
①入庫計画立案のシステム化と、EXCEL計画表にかわって、シミュレーション結果の画面表示の実現
②出庫計画立案のシステム化と、既存システムの入力に必要な、シミュレーション結果の画面表示の実現
③経験の浅い社員や、未経験の社員など、利用者の幅を広げることの実現
上記の課題を解決するべく、お客様の業務を深く理解するために、7名の体制で取り組みを始めました。

『注釈』
サイロとは、粒体や粉体をバラ状態で貯蔵するたて型の『貯蔵建築物』のことをサイロと称する。産業や用途によってビン(bin)、タンク(tank)、ホッパー(hopper)、バンカー(bunker)などの呼称で呼ばれており、その区別に明確な定義はないが、比較的大型の容器をサイロと称している場合が多い。

得られた成果

①利用者の幅を広げる
今回の開発プロジェクトとしての目的として、属人化の排除も大きな課題であった。特にシミュレーションしながら最適解に近づけるためのシステムは、各サイロ及びビンの残量の把握、入荷小麦量の日時と入荷量、工場への出荷量といった状況把握なと長い経験での判断に委ねられるものが問われます。
POC開発(概念実証)を経て、お客様のニーズに近づけるためシミュレーション機能の充実だけでなく、操作しやすく、状況把握しやすい画面表示や操作に工夫を凝らせました。その結果、今まで手の出せなかった経験の浅い社員でも最適解に近い状態にまで導けるシステム構築が可能になりました。

②大手製粉会社様社内の他工場への展開
現在、大手製粉会社様の該当工場にて利用頂いておりますが、他の工場でも同じような悩みを抱えているとお伺いしたところです。要件としては、若干違うものの、ほぼ同じような課題を抱えていらっしゃいました。今回のシステム開発で概ね結果を出すことができたため、他工場でも同じようなニーズを伺うことができ、今後徐々に他工場への展開を進めて行けそうです。

③当社の開発スタイル
当社は、ISO9001 2015導入企業であり、品質マニュアル及び業務・事務手順書に則った進め方がベースにあり、特にお客様の運用に寄り添ったシステム開発に軸足を置いたスタイルです。もちろん、時間も掛かりますが、お客様の立場に立った要件・設計・開発・運用テストなど一連の作業が顧客満足度の向上に繋がり、そうした進め方にお客様にも満足して頂いております。

④Pythonを活用した開発実績
すでにPythonを活用した開発を手がけておりますが、今回は、複雑な数学式を多用するの中で、Pythonは親和性が高く、開発効率の向上につながりました。PythonはAI開発にも使われ、今後も幅広く活用できる言語として経験を積むことができました。

『注釈』
Python(パイソン)はインタープリタ型の高水準汎用プログラミング言語であり、構造化(特に手続き型)、オブジェクト指向、関数型プログラミングを含む複数のプログラミングパラダイムをサポートしている。

開発事例一覧へ