1か月に13回もソフトウェアアップデートをしている話

弊社の開発・販売している「ODIN リアルタイム配送システム」ですが、社員さんから提案あり

「かなり頻繁にアップデートしているので、これをもっとアピールしていっては?」

ということでした。

なるほど。

それで、調べたところ弊社は2021年の3月で

1か月に13回のソフトウェアアップデート

 

をしておりました。

1週間に3回強、ですよ。

すごくないですか?

システムを作ったりメンテナンスしたりしたことのない方からすれば、何がすごいのかわからないと思いますが、これも今までの弊社スタッフの努力のたまものなのです。

アップデートすると、通常はそれがきっかけになってバグが発生することがあります。

それを防ぐために、自動テスト、アップデート時に必要な処理が自動に行われるためのCIという仕組みを作ったりしてきました。(`・ω・´)

プラス、もちろん、アップデートする人員とテストする人員がいてテスト・監視体制を強化してきたのです。

 

弊社の社内でやってますので(ごく一部分外注)、動きが早いんですよ。以前、弊社のアプリは3億円ぐらいの価値がありますよ、と下記に書きましたが

3億円のアプリ

昨今、アプリというのはメンテナンスコストがめちゃくちゃ増大しています。

3億円だったのが2020年の1月ですから、今はおそらく4億円ぐらいのアプリになってます。

開発風景

皆さんいつもお疲れ様です。m(_ _)m

 

配送済みの配送先を含まずに配送計画を編集できる機能を追加

先日、下記のプレスリリースを行いました。

配送済みの配送先を含まずに配送計画を編集できる「配送先の配送済表示機能」を追加

 

えー、簡単に説明しますと、今日はどこに配送に行くか、という計画を配送会社の方が立てます。

それを配送計画と呼びます。

例えば

「A、B、C、D」

という配送先に行くことにしますよね。

で、配送に出発して、A、Bはもう配送し終わった時に、

「急遽、Xに行ってからYに行ってくれ!」

という話があったときに、もう行ったA、Bは除いて

「C、D、X、Y」

のどれをどう回ったら最短か、というのを計算することができるわけです。

配送済みの配送先

「地味な機能じゃね~??」

と思われたかもしれませんが、この機能、地味ですが画期的なのです!!(`・ω・´)

 

なぜかというと、配送した場所がわかっているシステムじゃないと、これができないんですよ。

弊社の「ODIN リアルタイム配送システム」はそれができるんですね。

これがないと、まず配送計画を作る人が

「どこにドライバーさんがすでに行ったのか」

をドライバーさんに確認し、それからA,Bを目的地から除かないといけません。

この手間って大変なんですよ。

 

今回も、私が設計をしまして、弊社の俊英N君が実装をしてくれました。

爆速で実装してくれて素晴らしいです⊂(^-^)⊃

配送計画の関係を今、ゴリゴリと修正しておりまして、どう修正しているかというと、

「開発しやすい設計」

に変えています。

これからも、どんどん機能強化を行ってまいります。(`・ω・´)

 

 

「エリック・エヴァンスのドメイン駆動設計」を読みました

いやー、私が紹介するまでもなく、有名な名著だと思いますが。

ほんっといい本。

しかし、超読みにくい。

翻訳のせいもあるのかもしれない。

分厚いのもありますが、7月から読み始めて、なんと8か月もかかりました。(´ω`)

 

ぜひ、プログラミング始めて3年目ぐらいの人たちに読んでほしい。

プログラミングというのは難しいな、と感じ始めた人たちに読んでほしいです。

特に、内容は自分がかかわらない分野の業務システムなどを作るプログラマーにとって必要な知識があります。
とはいえ、C向けのプログラムでも大切な内容も含まれています。

内容は豊富すぎるのですが、あえて私が注目したことをまとめておくと

①その業務分野のプロの話をよく聞くこと。

②言葉の定義をちゃんとする(ユビキタス言語)
〇〇さんの開発しているあの機能とか言わずに、ちゃんと名前にする
そして、共同作業するプログラマー全員がその言葉をちゃんと理解する

③モデルをちゃんと作る
モデルというのは概念。概念がちゃんとしていないと、よいプログラムにならない
ここで、①が重要になってくる。その業務分野のプロの話していることをちゃんと理解して、何が重要なのかをつかむことが大事。

④ソフトウェアを常に進化させ続けるために、しなやかな設計にする
作らないことにはわからないことが多すぎる。(本当に)
常に前進するのを恐れない。

 

特に、私が衝撃を受けたのは③ですね。

モデルとは概念なのだ!!

プログラミングとは、概念を読んでわかるようにすることなのだ!!

 

もうね、ヘレンケラーが

「Water!!!!」

と叫んだような衝撃ですよ。

そういわれればそうなんだけど、地球が大きすぎて見えないように、それに気づいてなかった。

私の今までやってきたプログラミングは小手先だったなと感じました。( ゚Д゚)

やりたいことをやるためにプログラムが存在し、将来の自分やチームメイトがわかりやすいようなコードを志してやってきてましたが、そうか、概念か。

 

逆に言うと、プログラミングをしていて、はっきりしてくる概念もあるわけです。

この体験を最近しまして、今弊社で「ODIN リアルタイム配送システム」にある機能をつけているのですが、そこで、なんか仕様がモヤモヤしているところがあるわけですよ。

コードを見ると、配列でいろいろif文を駆使してなんとかやっている。読むのが大変なやつです。

で、ドメイン駆動設計の考え方に基づいてクラス設計をやり直したら、驚くほどコードがすっきりしまして。

そしたら概念がクリアになったので、仕様がすっきりしました。

そしたら、弊社のソフトウェアが持つ特徴、他のソフトにはなく、うちがお客様に届けるべき価値も明らかになりました。

 

というわけで、杏寿郎、お前もドメイン駆動設計(DDD)をしてみないか。

おススメの本です。

配送計画の到着実績を修正できる機能を追加しました

先日、次のプレスリリースを行いました。

配送の進捗管理に管理者が到着実績を変更できる機能を追加

きっと、何のことだかわからない方も多いとは思います。💦

配送会社さんが、その日にどこに行ってほしい、というのをドライバーさんに伝えるのに「配送計画」とか「配車表」などというのを作って、

9時10分 A会社

9時30分 B倉庫

みたいな感じで指示します。

で、実際にドライバーさんが配送に行きますと、今度は9時30分にB倉庫に着くかどうかが問題になってきます。

もし、9時半に着かない場合、B倉庫さんに前もって遅延を連絡しないといけないのです。(延着と言ったりします。)

なので、進捗を管理するのは大事なことです。

 

で、弊社ではドライバーさんが持っているスマホアプリでGPSを追尾して、A会社さんやB倉庫さんに到着したかどうかが管理者さんにわかるようにするのですが、それを手動で直したいというニーズが思いのほかありました。

GPSにも誤差がありますので、そのせいで間違った到着実績をつけてしまうこともありますし、同じマンションやビル、工場に配送先が二つあってたまたま寄った場合などに到着したことになってしまいます。

また、他のドライバーさんが行ったのでもう行く必要がなくなった、などの理由から到着済みにしたいというお話もあります。

それを防ぐために、今までもドライバーさんがアプリから手動で直す機能がありました。

が、管理者さん側にもほしいというお話がありました。

そこで、この機能のリリースになったわけです。⊂(^-^)⊃
なんか、やっぱりよくわからないですよね、きっと(笑)

実際の画面はこんな感じです。白丸のところがついていないところ、色がついている丸が到着したところです。この丸をクリックすると、到着していないところを到着済みに、到着済みを到着していないことに切り替えができます。

配送の進捗管理

いや、地味な機能ではありますが、お客様のニーズを叶えるためによい機能だと満足しております。

 

それにしても、裏でやらなければいけないことはかなり大変でした…!!

データベースの設計変更、モデルの変更があり、弊社にとってはこれは大改造だったわけです。(地味な機能なのですが…!)

私が設計をして、実装は弊社の俊英、Nくんが実装してくれました。

画面遷移しなくて済むようにするために、ちょっと複雑な画面設計になってるんですけどね。

ですが、とっても早くできて、実質2週間ぐらいで実装できたんですよね。( ゚Д゚)

すご!

そして、ありがたい!!o(>▽<)o

早い。それはよいこと。

この業界においては、特にそうですし、弊社では特に重きを置いています。

 

N君はプログラムを書くのもうまいですし早いですが、他にもほかの人に気遣いがすごくあるし、遅刻や病休もしないし、お客さん対応もできるし優秀なんですよ。⊂(^-^)⊃

 

 

そんなODIN リアルタイム配送システムのWebサイトはこちらです。

 

 

 

 

ODIN 配送計画 新機能 Excelのように配送計画を作れる!

やった!

本日、下記のプレスリリースを行いました。

プレスリリース Excelのように配送計画を作る機能

ODIN 配送計画という配送計画を作成できるシステムがありますが、それの大幅リニューアルです。

何がすごいかといいますと、Excelのように配送計画が作れるというところなんです。

Webで使うシステムなんですけど、Excelのようにドラッグアンドドロップでセルの内容のコピーができます。

Excelのような画面で配送計画を編集できます

受発注システムなどを配送会社さんが使っている場合、配送先をExcelでよく保存されているんですよね。

そこから、直接「ODIN 配送計画」に取り込みたいという話が多かったんですが、今までできなかったんです。(>_<)

が、今回できるようになったというわけです!!!(*ฅ•ᗜ•*)❤(*•ᗜ•ฅ*)

 

また、Excelを直接取り込めます。これも、お客さんが列とかを整形する必要がなく、好きな形式のExcelファイルを取り込んで、システムの列とファイルの列を後で紐づけできます。

配送計画に取り込んだデータを紐づけ

取り込んだデータを紐づけ

 

便利!⊂(^-^)⊃

 

私、思うんですけどね、ExcelとかWordって20年ぐらい業務系アプリのTOPなんですよ。すごくないですか。

そんで、みんな、Excel大好きじゃないですかw 何かというとExcel使いますよね。

使い勝手が、本当に20年前から相当洗練されてるんですよね。

今回は、その力を借りようと。そんな感じです。

 

その他にも、かなり使い勝手にこだわりました!

・計算条件を表示できる
・一度計算してみて結果が気に入らない場合、条件を少し直して再計算できる
・計算する前に、確認画面で配送先や時間指定を確認できる
・計算条件をすぐに保存できる
ここからは裏話です。
2か月強で4人がかりで作りましたんで、10人月ぐらいかかりました。

今回は、私もせっせこ手を動かして作りましたんで、できたのは感激一塩ですね!(*ฅ•ᗜ•*)❤(*•ᗜ•ฅ*)

私は主にクラス設計をして、ページごとの実装は弊社の俊英、M君とM君とN君にやってもらいました!

ありがとう!連日深夜までお疲れ様でした┌o ペコッ

 

で、目に見える部分よりも、裏側のクラス設計をガラリと変えました。

なんかですね、自分もだいぶ長い間開発していますが、とにかくこのクラス設計というのは、熟練プログラマーが一番取り組まないといけないことなのでは、と最近考えています。

ドメイン駆動という考え方に最近影響を受けています。

 

後は、わかる人にはわかると思いますが、javascriptでなんとかする系の実装が今回は多かったです。

 

ODIN配送計画は、無料で14日間お試しできます。ご登録は下記からどうぞ!

導入までの流れ

 

ODINで介護事業のリモートワーク・ペーパーレス化を実現した事例

ODIN リアルタイム配送システムに新しい事例が追加されました!

介護事業をされている、すまいるケア様です。

すまいるケア様 事務所写真

介護タクシー

すまいるケア様の介護タクシー

 

介護事業でリモートワーク?? 一番難しそうに思えますよね。

 

すまいるケア様では、ODIN リアルタイム配送システムの配送計画機能を使って、それを実現されています。

ヘルパーの方がそれをスマホアプリで見て、家から出勤し、お客様のお宅を回って、そのまま家へ帰宅、ということができるのです。

コロナの対策にもなりますよね!

報告も、ODIN リアルタイム配送システムで見えます。

ODINで日報などが紙に印刷しなくても確認ができるのでペーパーレス化できるそうです。

 

また、ペーパーレス化を実現されたそうです。

介護事業というのは、大変紙を使うそうですね。役所の申請などで仕方ないそうです。

小さい事業所であっても、月に2000~3000枚カウンターが回って、複合機が2年ももたないそうです。
そこを、月500枚まで減ったそうで。

 

もともとは、介護の仕事は急な依頼や変更もあるそうで、そんなときに業務内容に対応できるスタッフの位置情報やスケジュールを事務局で把握し適切な指示を送り対応できないかなと考えられたそうで、ODIN リアルタイム配送システムを導入していただきました。

 

今回、私も新人プログラマーと共に、こちらへ訪問させていただきました!

まだとても暑い一日でした(>_<)

こういう日に、お客様のところでいただく冷たいお茶っておいしいんですよね…。( ˊᵕˋ )

しかし、一番うれしいのは上記のように私たちの作ったものをフルに活用して頂いていることです。

また、ドラッグアンドドロップで操作できる機能などを

「遊び心がある。業務システムではなかなかこういうものがない」

とおほめ頂き、それが大変うれしかったです。

そんな「すまいるケア」様の導入事例は下記に紹介しております。

導入事例 すまいるケア様

ありがとうございました!

 

 

Mapboxのブログで、ODIN リアルタイム配送システムが紹介されました

私にとってはとっても嬉しい話です(*ฅ•ᗜ•*)❤(*•ᗜ•ฅ*)

弊社のODIN リアルタイム配送システムがMapboxという地図アプリのブログで紹介されました!

ODIN Real Time Delivery System — Bringing Dynamic Management to the Map

 

Mapboxとは何かと言いますと、一言でいうと、Google Mapみたいなやつです。

下記のスクショの、地図の部分がMapboxです。

配送計画を均等に割り振る

地図を埋め込んで、その上にマーカーを置いたり、ルートを線で描いたりできるんですね。

弊社では、ODIN リアルタイム配送システムの中で、Mapboxを使っています。

今では、ゼンリンさんのデータも導入され、Google MapよりMapboxのほうがいいんじゃないか説もあるぐらいです。(ソースは私)

思えばMapboxと弊社の付き合いは2014年から始まり↓

Smart動態管理がバージョンアップ 主要な変更はOpenStreetMapのデフォルト地図からMapboxへの変更

Mapboxの情報が、検索しても日本語ではまったく出てこなかったころです。

Mapboxを世に広めるために、LINEさんでLTをしたりしました↓↓

IoT縛りの勉強会でLTをしてきました

そんな私のMapboxヨイショが伝わったのか(?)今回、Mapboxのブログで取り上げてもらったので、感無量です。⊂(^-^)⊃

ありがとうございます!

 

そして、弊社の鋭才TYくんが英語でMapboxの担当者とやり取りしてくれたので、今回のブログ掲載も実現したんですよ!

英語が話せる人がいると助かる~(๑>◡<๑)

ありがとう!

 

 

 

 

 

 

 

お客様インタビュー:【共栄建機様】監視・管理されている感が強いものは使いたくなかった

まだ暑いですが、風の中に秋を感じますね~

個人的には暑いほうが好きなので、夏が過ぎてしまうのは残念です。

さて、8月は弊社のODIN リアルタイム配送システムをご利用いただいているお客様をご訪問しようと思いまして、何件か回らせていただきました。┌o ペコッ

今日ご紹介するのは、「共栄建機株式会社」様です。

https://www.kyoeikenki.jp/

溶接機をはじめとした、工業用機械のレンタルを行っていらっしゃいます。

2018年からご利用いただいております。

詳しいインタビューの内容は、下記をご覧いただきたいのですが、

導入事例 共栄建機株式会社様

私的に思った個人的なハイライトをこちらに書いておきます。

 

代表取締役 菅様にお話をお伺いしたのですが、

「監視・管理されている感が強いものは使いたくありませんでした。」

というお話に感銘を受けました。そして、そういう見方もあるんだなと目からうろこでした。( Д ) ゜ ゜ポロッ.

世の中、すでにGPSを取っていろいろやる、という仕組みはいっぱいあります。弊社のものも、それに含まれます。

デジタルタコグラフやドライブレコーダーのように、ずっとスピードを取得するとか、動画を取って監視するというものもあるんですよね。

そういったものは、ドライバーさんのモチベーションを下げてしまうのでやりたくなかった、ということなんです。

社員思いの社長さんでいらっしゃいます!(๑>◡<๑)

仕事をするにあたって、モチベーションや気持ちって本当に大事ですからね。(`・ω・´)

また、いろいろ日々ご利用いただいている中でのお話をお伺いできまして、ありがとうございました。

それにしても、夏の暑い日の2時に行ったんですよ。
生麦駅から共栄建機さんのところへテクテク行ったんですけど、あたりは倉庫ばかりで、大型トラックしか走ってなくって、歩いているのは我々だけでした…w

個人的に、普段触らない機械を見たり、トラックを見たりするのは好きなんですよ!

ワクワクしますね!(๑>◡<๑)

 

 

【新機能】配送計画をドライバーの数で均等に割り振る

ODIN 配送計画に新機能ができました!

配送計画をドライバーの数で均等に割り振る、という機能なのですが、わかりにくいと思うので説明します。

多くの会社さんで多い配送計画のパターンが

・A社、B社、C社、D社… Z社 までの26個の配送先があって、荷物を届けなければいけない。

・ドライバーさんは3人(車の数は、3台あってここでは条件として検討しない)

みたいな感じです。

弊社の配送計画は、これまで26個の配送先を、3台以下の車両で、なるべく最短で回るという配送計画を算出していました。

しかし、配送関係のお仕事の皆様は、

「最短よりも3台で配送時間が同じぐらいになるようにしたい」

とおっしゃられるんですよ。

・ドライバーさん同士の不公平をなくしたい
・遊んでしまうドライバーさんが出るのを避けたい

という思惑があるそうです。

なるほど…。

そこで、〇箇所の配送先があり、〇人のドライバーさんがいらっしゃるときに、〇人のドライバーさんで同じぐらいの配送時間になるという機能を作成しました!

サンプルとして、配送先を

藤沢
金沢八景
秦野
本厚木店
小田原
横須賀
大森
世田谷
新宿
大森

とします。出発地点は、横浜駅近くの弊社で、最後は弊社に戻ってきます。

従来の配送計画では、次のように割り振りがされていました。

1台が8時間39分を使ってルートを回るようになっています。(有料道路は使わない設定になっています。)

ドライバー数を3人にして、同じぐらいの時間になるように割り振ってみます。

すると、きれいに割り振ることができました!(๑>◡<๑)

配送計画を均等に割り振る

一人が3時間19分、一人が4時間39分、一人が2時間46分ですね。割り振りしながらも、なるべく最短になるように、という結果です。

今回は、なんと!不肖このワタクシ目が配送計画を作る部分を開発しました!٩( ‘ω’ )و

UIについては、弊社のスーパールーキーK君に手伝ってもらいました。

 

苦節2か月…。 うち1か月近くは配送計画を作るプログラムの開発環境を作るのに時間がかかってました。(>_<)

このプログラムはScalaという言語で作られていまして。

Scalaはこの配送計画プログラムを作った当時はイケてる言語ともてはやされてたんですが、今すたれた感ありますね…。

そして、すたれた言語はメンテが大変。情報もあまりない(>_<)

言語のチョイスとは難しいものだとつくづく感じました。。。

 

ODIN 配送計画は今すぐ、無料で2週間お試しできます。

無料のお登録に関しては、こちらから!

導入までの流れ

 

 

お客様インタビュー:【有限会社 菱高様】計画と実績にズレがあるので実態を把握したかった

8月に何件か弊社のODIN リアルタイム配送システムをご利用いただいているお客様を回らせていただきました。

その際、インタビュー掲載を快諾いただいた会社様もありまして、ここでもご紹介していきたいと思います。

 

まずは、有限会社 菱高様 です。

高畑様にお話をお伺いしました。

筆記具の組み立てを行っていらっしゃる会社様です。なんと、2014年からODINをご利用いただいているんですね!
ありがたいことです。m(_ _)m

詳しい事例の全文は下記を見ていただければと思いますが、私的なハイライト を書いておきます。

導入事例 有限会社菱高様

 

筆記具の組み立ては、敷地内に工場もあるのですが、そこだけではなく、内職の方にもやってもらっているそうです。

その内職の方に、材料を届けたり、できたものを回収したり、組み立て方を説明したり、というお仕事を配送の方がされています。

1日に大体20件~30件の配送ですが、少ないときは10件程度だそうで、そういうときに、早く会社に戻ってくるはずだと管理側が思いきや、戻ってこない。

そういうった計画と実績にズレがあるときに、実態を把握したかったそうです。

予実管理というのは重要ですからね。

 

そこで、弊社のODIN リアルタイム配送システムを導入していただきました。

導入してからは、目に見えて業務効率が上がったというお話です。

我々も、お役に立てて大変うれしい話です。

もう一点、うれしかった話は、

「ODINをご利用いただいていて不満や改善してほしいところありませんか?」

という質問に

「悪いところ、特にないですよ。全部がよいです。やりたいと思っていることができてますしね。 」

と言っていただけたことです!(๑>◡<๑)

ありがとうございます。

今後もよろしくお願いいたします。

 

また、ご訪問した機会に、工場の中を見せていただきました。

ペンや印鑑など、普段使っている文房具がどのように作られているのか、拝見できて大変興味深かったです。(`・ω・´)

やはり使っていらっしゃるお客様の話を聞くと、非常にインスパイアがあります。
現場に行くことって大事ですよね~。

ありがとうございました!