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

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

ほんっといい本。

しかし、超読みにくい。

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

分厚いのもありますが、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をご利用いただいていて不満や改善してほしいところありませんか?」

という質問に

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

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

ありがとうございます。

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

 

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

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

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

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

 

 

ODIN(オーディーン)がIT導入補助金の対象になりました!3/4の費用が補助されます。

やんややんや。٩( ‘ω’ )و

弊社の配送業向けシステム、ODIN リアルタイム配送システム がIT導入補助金の対象になりました!

申請準備から2か月ぐらいでしたね。申請自体は、行政書士さんにやっていただきました。

読んで字のごとく、ITを導入する補助金です。

平たく言うと、弊社の製品を導入する際に、なんと4分の3も補助が出ます。

4分の3の純情な補助金。使わない手はないです。

↓↓

  • IT導入補助金とは、中小企業・自営業のみなさまが 効率化や売上向上を目的として ITツール(ソフトウェアやサービスなど)を導入する際に経済産業省から出る補助金です。この補助金は弊社のシステム「ODINリアルタイム配送システム」にも適用する事ができます。
  •  昨今の新型コロナウィルス感染症に伴い、特別型(C類型)という枠が設けられました。申請が適用されると導入費用30万円~150万円未満の範囲で、3/4の費用が補助されます。

例)10ユーザーで12ヶ月ご利用する場合

初期費用 150,000円
10ユーザー × 2,300円(月額) × 12ヶ月 = 276,000円
150,000円 + 276,000円 = 426,000
金額の3/4が補助されるので、実際に支払う金額は106,500円

42万6千円が10万6500円です。

お得!!!

 

実質月額8,875円で、12ヶ月間10ユーザーの利用を開始する事ができます。

ぜひ、ご利用をご検討ください。

全製品が対象です。(ODIN PREMIUM、ODIN 配送計画、ODIN 動態管理、ODIN フードデリバリーの全4製品)

詳細は下記をご覧ください。

ODIN リアルタイム配送システムで配送の進捗を見える化

配送業でリモートワーク② オンライン配車

前回に続き、コロナ禍の中…

「配送業でリモートワークができるの?」

という話です。

配送業の中でも、今日はどこに配送に行くか、という予定を決める係の方がいます。配車係とか、配車マンとか呼ばれたりしています。

この、予定をODIN リアルタイム配送システムでは、まず配車係の方が、事務所に行かなくても、ODINにログインすれば、配車表を作ることができます。

結構この配車表をで渡している事業者さんも多いのですが、そうすると配車係さんは、ドライバーさんに配送の予定表を手渡しすることになります。

しかし!

ODINを使えば、この手間が減らせるんです。

なぜなら、配車表が、ドライバーさんのアプリに届くからです。

これで、とも決別、手渡しとも決別です。

予定が途中で変わったりしても、配車表を入れ替えることもWeb上でできます。

これが、オンライン配車です。

 

配車係さんとドライバーさんが、リモートワークができるという仕組みです。

ちなみに、個人宅への配送などの場合、紙でドライバーさんに行く先を渡していると… 結構個人情報の保護が不安ですよね?

紙は風で飛んで行ったりしますし、廃棄するにも気を使います。

アプリならば、消したい配送先はすぐにシステム上で消すことができます。

 

 

ちなみに、これって私が思いついたわけではなく(;^ω^) 

利用している方から、

「うちはこうやってリモートワークしてますよ!」

という声をいただいたので、掲載しました。

ODIN リアルタイム配送システムへのお問い合わせは、こちらからお気軽にどうぞ!