スマホアプリで配送ルートの配送の順番が入れ替えできるようになりました!

なんとなんと。

ODIN リアルタイム配送システムのスマホアプリ(2024/09/15時点 Android版のみ)で、配送計画の順番入れ替え機能が付きました!

パチパチパチパチ。

下記のような配送計画をドライバーさんのアプリで見る画面があるんですが、これをドラッグアンドドロップで動かしたり、消したりできるようになったんですよ( ˊᵕˋ )

動画とかないとわかりづらいとは思いますが、動画はそのうち撮ります!

配送計画入れ替えの画面

配送計画入れ替えの画面 ドラッグアンドドロップとかで入れ替えできます

 

また、マイナーな修正ではありますが、

「配送先が多い計画を見る時に、配送計画の一覧画面を開くと、一番上の配送先が一番上に表示されるのが見づらい!なんとかして!」

というお客様のご要望を頂いていたので、配送してない配送先を一番上に来るようにしました!

これも、配送先に到着したかどうかがわかるODINならではの機能だと思います。

 

しかし、こういうのはお客様の環境でお客様が使ってみて初めて得られる知見ですよね。

現場で使ってみて、初めて細かい使い勝手がわかるというか。

こういうお客様の声を大切にしております。

 


今回はですね、不詳私がこの修正をやらせていただきました!(`・ω・´)

おりしも、実はAndroidのターゲットSDKをアップデートするというタスクもやらねばならず、やることが多めではあったんですが、チームの皆さんの助けがあり、なんとかできました。( ˊᵕˋ )

ODIN リアルタイム配送システムのAndroidアプリも10年前から存在しているので、古い部分もまだあります。

古い部分はJava、新しい部分はKotlin、サーバー側の処理(大部分はS君が書いてくれましたが)はPHPとTS & JS で、5言語を同時に書いたり読んだりするのがだいぶ脳トレでしたね!(笑)

ODIN リアルタイム配送システムはお客様の使い勝手向上のため、どんどん便利になっていきます!

お問い合わせはコチラからお気軽にどうぞ!( ˊᵕˋ )

 

 

 

 

 

町の運送屋からロジスティクス企業になるために必要だった ~お客様の声

お客様事例のご紹介です。

ロジボン株式会社様のインタビューを行いました。

詳しいインタビュー内容は、下記をご覧ください。

https://delivery-system.com/customer_feedback/2024/07/30/logibon/

私、宣伝に関しては一家言ありまして(`・ω・´)

例えば、中華料理屋でよく

「おいしくて安い中華料理」

って看板出しているところがありますが、自分で言っちゃダメなんですよ。(そして大体こういうお店はまずい)

お客様がどう思っているかが重要なんですよ。

自称ならいくらでも「おいしくて安い」って言えますしね。

 

なので、自社のODIN リアルタイム配送システムについても、「お客様の声」というのを非常に大事にしています。

そして、往々にしてお客様のほうが、宣伝としてキャッチーなことを言ってくださるんですよ!

「町の運送屋からロジスティクス企業になるために必要だった」

って、めちゃくちゃいいフレーズじゃないですか??

これ、ロジボンさんにインタビューしている際にお客様から出た話なんですよ。

平たく言うと、

「今までは配車マンが頭の中で考えて配車をしていた。

が、台数が増えたり仕事の規模が大きくなる中で、これではダメだと思った。

元々の歴史が社長が軽トラ1台で始めた会社だが、町の運送屋の仕事の仕方では限界があって、ロジスティクス企業になるために、こういうシステムが必要だった。」

というお話です。

 

私、このお話を聞いてめちゃくちゃ感動しました!

お客様の夢の手助けができたってことですからね!!

ODINを作っててよかったなとしみじみ思いました。( ˊᵕˋ )

 

ヘタなコピーライターよりお客様のほうが、心に響く言葉を言ってくださいます。

使っている商品の魅力を知っているからなんだと思います。

 

配車マンの仕事を脱属人化できたことのほかに

2024年問題について解決できている

・荷主さんへのプレゼンに使って新規案件の獲得に役に立った

などのお話もありました!

3PL事業部 部長 赤岩様 ODINの画面をご覧になっている

3PL事業部 部長 赤岩様 ODINの画面をご覧になっている

 

ODIN リアルタイム配送システムへのお問い合わせはコチラから。

 

ちょっと話はそれますが、「軽トラ1台で起業して」って話いいですよね。( ˊᵕˋ )

物流の会社さんはそういうところ多いかと思いますが、がありますよね!!

ロジボンの黒沼社長はTikTokもやられています!スゴイ!(`・ω・´)

ご興味あれば、ご覧ください。↓

@logibon

ロジボンTikTok始めました‼︎ 社長の私が色々発信していきます! フォロー、いいねを宜しくお願いします✨ #物流 #社長 #社長シリーズ

♬ アイドル – YOASOBI

 

若手プログラマーの疑問に答えていく

実はもう16年間ぐらいプログラマーをしています。

まー、本業は社長なので、全部の時間をプログラミングに費やせるわけではないので、実際に16年間プログラミングをしている方と比べたらどうかわかりませんが。

会社に新入社員か未経験の中途さんが入ってくると、私が教えることもあります。

で、大体似たようなことを似たようなタイミングで聞かれるので、まとめてみようと思ってます。

第一弾は、

「スーパークラスかインターフェースか 」

です。

「共通する機能ってスーパークラスに実装するのと、インターフェースにするの、どっちがいいんですか?」

と聞かれることが多いんですよね。

答えはぜひ、リンク先のスライドを見てみてください。(o_ _)o))

 

ちょいちょい書いていることですが、プログラマーはエンジニアかと言ったら、ちょっと違うと思います。

 

難しいことをやろうとしたら、アーティスト的な能力の方が必要になってくるんですよ。

問題を解くのではなく、作品を作るってことなんですよね。

なので、プログラマーとしての良し悪しは、「何を作ったか」につきると思います。

採用の場面で、

「こういうことを勉強してきました」

とか

「前の職場ではこういう仕事をしてきました」

とズラーっと職歴を並べて頂けることもあるんですが、自分の代表作だと思うものを見せてもらったほうがずっと説得力があります。

 

弊社では新卒・中途のプログラマーを募集中です!

ぜひ、コチラからご応募ください。( ˊᵕˋ )

 

 

 

弊社の齊藤公一が取締役兼ジェネラルマネージャーに就任いたしました

公式発表はコチラ↓です。

https://onlineconsultant.jp/close-2/

 

齊藤君は2013年に入社し、もう11年も勤めてくれているのと、多大な功績を評して、取締役になってもらうことにしました。

仕事で実績があるというだけでなく、逆風が吹いたときも、他の社員さんを励ましたりする姿勢があり、そういう方にもっと権限とリーダーシップを持ってもらいたいからです。

 

齊藤君に初めて会った時のことを思い出すと、彼は新卒の時に不動産屋の営業をやっていて、それで24歳ぐらいの時に転職でうちの会社を受けてくれたんですよ。

自筆の履歴書が送られてきて、すごく字がキレイで丁寧なことに驚きました。

経歴でよいなと思ったことは、

「ソフトテニスを中学・高校・大学と続けていて、神奈川県で2位、部活ではキャプテンだった」

というところです。

チームスポーツでよい成績を納めた方、キャプテンやリーダー経験のある方は仕事ができる傾向にあるからです。

ただ、面接してみると、話がわかりにくい…。

それで、面接支援をしてくださるコンサルタントの方がいるんですが、その人が

「この方はダメ。NGですよ。」

とおっしゃいました。

が、私は何か光るものを感じたので採用しました。

 

未経験からプログラマーとしての入社でしたので、最初は私が一から教えました。

が、進捗が思わしくなく、私は齊藤君に毎日怒ってました(笑)。

まー、本人にも当時から言ってたんですが、野球の野村監督の有名な言葉で

「一流の人間にしか怒らない」

というのがあります。

私も当時から、齊藤君には一流になってほしいと思って怒ってました。

 

業務に入ると、要領がよいとは言えないが、がむしゃらにがんばってなんとかしてくれるようになりました。

後、齊藤君が作ったところはお客さんに評判がいいんですよね。

お客さんが感じる細かい使い勝手って、些細な気遣いなんですが、プログラム的には

「その些細な気遣いが難しいんだよぉぉ~」

ということがよくあります。

そこを齊藤君は非常にがんばってくれるんですよね。

大きなお客さんに、ちょっと無理難題なことを言われた時も、彼は一人でその仕事を回して連日夜まで頑張ってなんとか実装にこぎつけてくれたことがあります。

そうやって獲得した大きなお客さんの仕事で、うちの会社は大きな利益を得ていたことがありますから、齊藤君の実績が多大というのはそういう部分です。

最近では結婚もし、子供もできて少し重みが増したかなと思います。

忙しいのにプライベートでもよく勉強をしていて、そういうところは本当に見上げたものです。( ˊᵕˋ )

最近会社に奥さんと娘さんが来られた時。かわいい娘さんです( ˊᵕˋ )。

 

齊藤君と相対すると、話がわかりにくんですよね(笑)。

文章もわかりにくい。

ただ、弁舌巧みで文章がうまく書けてという人間が仕事ができる、というのは浅い仕事だと思います。

本当に大きな仕事や会社にインパクトを与える仕事というのは、それだけではできないんですよね。

お客さんから信頼をもらえないと、任せてもらえない。

齊藤君にはそれがあるわけです。

仕事というのは、突き詰めれば信頼なんだなと思います。

 

誰も完璧ではないし、個性もあります。

会社というのはチームでお互いの足りないところを補完して進めていくのが大切だと思います。

そういう意味では、私と齊藤君は結構いい補完関係にある気がしています。

 

では、最後に齊藤君のOCヒストリーを見ていきましょう★

2014年 会社で千葉の海に行った時

2014年 会社で千葉の海に行った時。いい写真ですよね!

2018年 ハワイ ナオト・インティライミかと思った

2019年 オーストラリア

 

これからもいろんな世界の海で齊藤君を埋められるといいな!⊂(^-^)⊃

 

新体制でこれからも「日本にGoogleのような会社を作る」ことを目標にがんばっていきますので、よろしくお願いいたします。

 

配送計画で配送先の指定時間からずれている時に警告を出す機能ができました

またまた新機能ができました ⊂(^-^)⊃

配送計画を作成する際に、例えば

「この配送先は午前中に来てほしい」

とか

「この配送先は午後に来てほしい」

などという指定がありますが、最初はODINで自動で最適なルートを作成することができるんですけども、後でいろいろ修正が必要な場合があります。

それは、例えばドライバーさんの出勤がずれてしまうとか、他の配送先に急に行かなくてはいけなくなった、などです。

(前回投稿した追加配車機能などを使ったりですね!)

で、色々変更しているうちに、午前中指定 だった配送先が午後になってしまっている、などということがありえます。

ですが、それを防ぐことができるようになりました!!(๑´ω`ノノ゙ぱちぱち

配車表という画面で、ルートを見ると下記のように表示されるのですが

赤いエクスクラメーションが出ているのがおわかりでしょうか?

ここにマウスオーバーすると、次のようになります。

どれぐらい遅れるのかも表示される

 

すごいのはここからで、弊社の秀逸、S君がめちゃくちゃ早くこの機能を実装してくれました。

開発にかかった時間、

わずか1日弱。

 

すご!

元になった機能は、この開発の時に実装されていたとは言え、かなりオサレなUIにもなりましたし!

これからも、新しい機能をどんどん作っていきたいと思います!(`・ω・´)

 

 

 

 

追加配車機能をリリース

さてさて、ODIN リアルタイム配送システムにまた便利な機能が追加されました!

その名も「追加配車」機能!!(๑•̀ㅂ•́)و✧

一度配送計画を組んだ後に

「いや、ここにも急遽行ってくれる?」

などと、荷主さんなどから注文があるのは、配送の世界ではよくあることです!

それを、完璧に最適なルートを組んだ後の、一体どこに入れたらいいんだー??というのは、配車をする方にとって、頭の痛い問題でした。

が、今後はそれをODIN リアルタイム配送システムが解決します!!!(`・ω・´)

 

「配車表」という機能があるんですが、そこにまず、案件を登録します。

その案件の右にある「配車」というボタンをポチッ とするだけ。

案件から配車を選ぶ

案件から配車を選ぶ

 

すると、複数人のドライバーさんのルートの「どのルートのどの部分に出したら一番早いか」を自動で算出します。

しかも、ベスト5まで出すんですよ!

追加配車で、どのルートのどこに追加したらよいかを提案する画面のスクショ

追加配車で、どのルートのどこに追加したらよいかを提案する画面のスクショ。

 

なので、自動にするわけではなく、どれにするか選べます。

しかも!配送先には時間の指定がついていることがあると思いますが、それが追加配車することによってずれてしまうのであれば、上記の画面の赤文字のように、警告してくれます。

便利ー!!

この機能は多くのお客様から要望がありましたし、早くも実装してからすぐに

「便利になってヨイ!!」

と数件コメントを頂いております!ありがとうございます。( ˊᵕˋ )

 

さて、この機能、なんと今回、不肖私が作りました!

もちろん、全部私とは言えず、案件周りも色々変更が必要だったので、そちらを主にS君に手伝ってもらいました!

S君はプルリクもきっちり見てくれるし、色々アドバイスもくれるし、モデルの組み立て方なども議論できるし、仕事が早い!!

本当に優秀なプログラマーです。( ˊᵕˋ ) ありがとうー!

以前、「配車前からルートの総時間がわかる新機能が追加」という記事の時に書いたんですが、5月に配送計画周りをかなり変えたんですよ。

専門的に言うと、リファクタしたと言いますか。

その時めちゃくちゃ苦労したんですが、その時からこの追加配車機能はどう実装しようか見えていました。

なので、こういう機能実装が早くできるようにリファクタしてありました。

なので、今回はスムーズに開発が進み、着手からほぼ1か月弱でリリースでき、しかも良いものが作れました!!

ちょっと苦労したポイントと言えば、最初は一番早いルートにすぐ追加したほうがよいかと思っていたんですが、自分で触っているうちに、

「いや、選べた方がいいな。」

と思いまして、上記のスクショのようなダイアログで選択にしました。

プログラマーの方だったらわかっていただけると思うんですが、こういう処理の中にダイアログを出すとかちょっと大変なんですよね

でも、これを出したことにより、配送計画を変更する人の意思が反映させやすいのでそうしました!

私的にも、自分でも使いやすくて気に入っている機能であります。

プレスリリース全文はコチラから。(急な受注に即時に対応できる追加配車機能がリリース

 

ODIN リアルタイム配送システムなんですが、6月は1日に4件も発注が入るなど、多くの引き合いを頂いております!!(>_<)

ありがとうございます。

今後もお客様が便利に使える機能をどんどん作っていきます!(`・ω・´)

お問い合わせはコチラからどうぞ!

 

【業務用初】スマホで従業員さんの行動を詳細に記録する機能をリリース

なんと今回、業務用初!(弊社調べ)の機能をリリースしました!(`・ω・´)

乗車中か歩いているか、止まっているかがわかる機能

乗車中か歩いているか、止まっていたかの履歴がわかる機能

 

めっちゃ平たく言うと、今どきは、ランニングアプリとか、ヘルスチェックアプリとか歩数計とかで、何歩歩きましたね、とかアプリが教えてくれますよね?

ただ、ああいうのは自分で見るだけで、ほかの人のを見たりとかはできませんでした。

それができたのです!!( ˊᵕˋ )

ODIN リアルタイム配送システムへの機能追加となります。

 

今までもODINではリアルタイムで、現在走っているのかドライブ中なのかがわかったのですが、履歴まではとっていませんでした。

それを、記録するようにしました。

例えば、

・チラシを配布する際は、小走りで行うこと というポスティング会社さん

・配達の際は、小走りで行うこと という配達会社さん

・連続して運転を続けていないかを確認したい会社さん

・位置情報がわかっても、歩いていたら納品作業をしている、止まっていたら待機中だった、などを把握したい運送会社さん

などのニーズを想定しています。

【業務用初】スマホで従業員の行動を詳細に記録する機能をリリース

詳しくは、上記のプレスリリースをご覧ください。

 

弊社のODIN リアルタイム配送システムは、配送業・運送業さんのためのシステムですが、この機能は広く外出して仕事をされる会社さんにニーズがあると思っています!

2週間、無料でお試しもできますので、ぜひお試しください。

お試しはコチラから。

 

「ちょうぜつソフトウェア設計入門」という本を読みました

ちょうぜつソフトウェア設計入門」。

うちのプログラマーS君が

「おススメですよ!」

と言ってくれたので、読んでみました。

結論→よい本です!

かわいい絵がついていますが、中身は本格派!

普通に技術的なとっつきにくい話が展開されていますが、かわいい絵がついていることにより、とっつきやすい感じになっているのがすごい。

プログラマーの初心者向けというよりは、中級者、2年目とか3年目の方が読むとちょうどよさそうです!

 

ソフトウェアの設計って本当に大事ですよ。

この前、XにPostしたんですけど、一番大事なのはDBの設計ですが、次に大事なのは、クラス設計だと思ってます。

ただ、クラス設計についてまったくわからずにプログラミングをしている方も多くいると思います。

別にわからなくてもできるし、ソフトウェアは動くからです。

しかし、設計についてわかってやっている方が、他の人の開発が早くなるし、バグも少なくなります。

その逆も真です。

また、クリーンアーキテクチャーの一番内側に近い部分の設計がダメだと、技術的負債が膨れ上がります。

外側に近いほうはダメでもまだなんとかなるのですが。

 

この本は、いろんな手法をある程度の深さまで紹介してくれる点で優秀だと思います。

ぜひ、設計をちゃんとやってみたいという志がある方は、この本を読んでみてください!( ˊᵕˋ )

 

以下、私が読んでよかったなとか知らなかったことなどをメモしておきます。

①パッケージ原則

ちゃんとパッケージに分けましょう。

②オブジェクト指向とかSOLIDとか

オブジェクト指向の紹介と、SOLIDというソフトウェア設計の原則について紹介されています。

SOLIDは次の原則たちの頭文字です。

・Single Responsibility Principle 単一責任原則

・Open Closed Principle 拡張に対してオープン、変更に対してクローズドであるべき
この本の中で
「洋服をいっぱい着てというのはいいけど、痩せろとか胸を大きくとかは難しい、というのに似ている」
と紹介されていて、このたとえはわかりやすいな!と思いました。

・Liskov Substitution Principle リスコフの置換原則

・Interface Separation Principle  単一責任原則のインターフェース版

・Dependency Inversion Principle 依存関係逆転原則

 

ちなみに、SOLIDとは別で「デメテルの法則」というのが紹介されていて、すごい重要と思わないですが、これに名前がついてたのか!というのを知らなかったのでメモしておきます。

詳しくは下記を読んでいただきたいですが、
デメテルの法則を厳密に守るにはどうすればいいの?

現場ではこうなってるプログラムっていっぱいありますよね。

$this->car->getEngine()->start();
$this->car->getEngine()->getheat();
$this->car->getEngine()->getVoilder->getId();

 

みたいなやつ。

いや、もうEngineクラスに書きなさいよって。でも、書いてる時は夢中で書いちゃうから気が付かないんでしょうね。

③テスト駆動開発やデザインパターン

 

スタブとかモックとかをあんまり使い分けていなかったので、大変参考になりました。

・スタブはテスト用の疑似オブジェクト 仮に期待通りの答えを得たとしたら、を仮定するダミーオブジェクト

・モックは使われ方を検証するための疑似オブジェクト(呼び出し回数とかをちゃんとチェックする)

 

④アジャイル開発

 

アジャイル開発とは何か、というだけではなく、ソフトウェア開発の歴史が書いてあって、非常に参考になりました。

私の師みたいな人がよく

「歴史を知ったほうがいい」

ってよく言ってるんですが、その意味がよくわかります。

ウォーターフォールについて、一般に誤解があることもわかりました。

ドキュメント偏重とか、SIの歴史なども勉強になりました。(o_ _)o))


 

それにしても、ソフトウェア開発って苦労することばっかりですよね。

世に目を向ければ、ソフトウェア開発の失敗のニュースがよく飛び込んできます。

日本のシステム開発が少しでもよい方向に行ったらいいなと思います!

 

さて、弊社でも新卒・中途でプログラマーを募集しています!(営業も募集中)

ソフトウェア開発、設計とか考えてやりたいと思っている方がいれば、ぜひ弊社に応募してください。

イチから教えます!(`・ω・´)

応募はコチラから!

ちょうぜつソフトウェア開発設計入門を手に持つS君

 

「ハッカーと画家」という本を読みました

この本はどっかで読んだ本に紹介されていたのと、タイトルにいつも私が考えていることに共通することがあったので、手に取りました。

多分、プログラマーをしている人には普通に面白い本ですが、私にとって衝撃を与える、思い出に残る一冊になりました。

ハッカーと画家 コンピューター時代の創造者たち

ハッカーと画家

「普通のやつらの上を行け」という帯が若干恥ずかしい(笑)

 

まず、ハッカーという言葉に「物騒だな」と思われたかもしれませんが、これはここでは「優れたプログラマー」という意味で使われています。
「エンジニア」という広い意味ではなくて、「プログラマー」ですね。
著者のポール・グレアムさんという方は、後のYahoo!Storeとなるソフトウェアを作り、ベンチャー創業者として大きな成功を収めたことで知られる方、だそうです。

 

①アメリカ人はどうしていいプログラムを書くのか

 

冒頭の「メイド・イン・USA」という章にのっけから衝撃を受けました。
「アメリカ人はどうしていいプログラムを書くのだろう。」

どひゃー。これは、私もずっと考えてきたことなんですよね。私も日本人ですから、よく言われる
「日本ってさー 何かを改善するのはうまいけど、クリエイティブなものを作るのは苦手だよね~」
ってやつ、ほんとムカつきますよ。(アニメとかゲームとかはクリエイティブなもの作れてると思いますしね)

一瞬話はそれますが、私が会社を作った目的は
「日本にGoogleみたいな会社を作る」
ということなんですが、それは
「なんで日本にはソフトウェアの世界的に有名な会社がないんだろう??」
と思ったことが理由です。

車や車の部品を作ることはうまいのに…。

本書の抜粋ですが、
「米国人は一度何かをしたいと思い立つと、それがうまくできないんじゃないかとか、世間的に角が立つんじゃないかとか、そういうことを気にしない。
何かしたくなったら、ナイキのコマーシャルみたいにするんだ。Just do it.というやつだ。」
映画やソフトウェアはこれでうまくいく、だそうです。

まだ抜粋が続くんですが
「「几帳面」なんて言葉は、優れたプログラマがソフトウェアを書く仕事ぶりからは最も無縁なものだ。
コードはピラミッドみたいに、慎重な計画をしてから苦労して組み立てていくものではない。
(どうして日本ではよい車が作れるのかという話で)日本人の文化に、デザインと職人の仕事を尊ぶところがあるのが重要なのだと思われる。…彼らは、ものをうまく作ることに取りつかれているんだ。」

うわー。
職人を尊ぶ文化は、よいソフトウェアを生み出すのには向いていない
と言い換えていいと思います。

さて、プログラマーとは、「職人」なのか。「芸術家」なのか。
日本では、「職人」に近いと思っている人が多いと思います。
きめ細やかな仕事、整理整頓されたコード、素晴らしいアーキテクチャー。

ここで、職人と芸術家を私なりに定義してみました。
・「職人」→ 過程にこだわり、例えば「裏側を見せてもキレイ」とか「細部もめちゃくちゃちゃんとやってある」にこだわる
・「芸術家」→ 成果物にこだわり、「裏側はぐっちゃぐちゃ」、「細部はメインの引きたて」

確かに、日本は「職人の手仕事」が大好きで尊ぶところがあると思います。
それがカッコイイと刷り込まれて生きています。
プログラマーは「芸術家」なのか、「職人」なのか。

非常に定義が難しいです。
そして、私が思う「職人」と「芸術家」の最大の違いは
・「職人」 → 他人が指定したもの、あるいは期待したものを作る
・「芸術家」 → 自分が作りたいものを作る
だと思います。

プログラマーと一口に言っても、仕事や会社によって全然変わってくると思います。
受託開発・SES・Sier・下請け企業のプログラマーさんは圧倒的に職人でいることを求められると思います。
自社開発でやってる会社さんでも、企画は企画部がやって、プログラマーは完全に職人でいることを求められていることがあります。
弊社は、プログラマーさんも仕様を考えて実装するので、芸術家の割合が高いです。
ちなみに、これは職人がいいとか悪いとか、職人さんをディスする話ではありません。
何より、「ご飯を食べていく」ことを考えれば、普通に芸術家は職人よりも貧乏であることが多いですからね(笑)。

でも、ポール・グレアムさんの主張に確かにそうなのかもな… と思ってしまいました。
「職人を尊ぶ文化は、よいソフトウェアを生み出すのには向いていない」
というのは私の会社を作った目的に対するヒントを与えてくれるものでした。

②常識を尊ぶ人はハッカーに向いていない

 

これもなんかわかるなって感じでした(笑)。
「ちょっと変人だな」
という人が優秀なプログラマーには多いものです。(その逆は真ではないけども)

他大多数の人と同じことがしたいと思っている人が、同時に革新的なことを生み出せるはずはないのです。
品行方正・成績優秀な優等生が優秀なプログラマーかというとそうではないんですよね。
「口にできないこと」「異端であること」には価値がある、「道徳には流行がある」なども考えさせられました。

優れたプログラマーは画家に近い

 

わかる~。本書の抜粋で
「優れたソフトウェア設計者は、建築家がエンジニアではないのと同じように、エンジニアではない。
ハッカーは、画家が絵具に関する科学を理解するのと同程度にコンピューターサイエンスを理解していればよい。」

そうなんですよ。よく、
「文系だからプログラマーとかなるのは無理です。」
みたいなことを言う人はいるんですが、それはおかしいんです。

なぜなら我々がやっている仕事のほとんどが、現実という複雑な事象から、何かを抽象化して抜き出すことだからです。
それが画家のスケッチに近いと言われれば、そうなのかもしれない。
何か絵を描くときに、いきなり細部から描けませんね。

「作家や画家や建築家が作りながら作品を理解していくのと同じで、プログラマはプログラムを書きながら理解していくべき」
わかる~。
だから、上流工程とか下流工程、とかが分かれているプロジェクトってうまく行かないことが多いんですよね。
そして、スケッチというのは、書く練習が必要なんですよ。
優れた芸術作品というのは才能ではなくて、膨大な書く練習の上に成り立ってます。

ピカソとか、15万作も作ったらしいですからね。
経験から言っても、プログラマーはいっぱい書いたほうがいいです。

私も、プログラマーの新人に、
「うまくコードを書いてくれ。」
と言いません。
「とにかくいっぱい書いてね。」
と言います。

そして、書いただけではダメで、できれば誰かに継続的に使ってもらうことが必要だと思います。芸術というのは他人に評価されてなんぼだからです。

「多くの企業はハッカーにエンジニアたれと強要する。それがよくない。」
確かに、プログラミングをしていて思うことは、プログラミングに必要な能力って、エンジニアに必要な能力とちょっと違うんですよ。

ただ、あんまりこんなことを言う人はおらず、大体
プログラマー=エンジニア
と世の中で理解されているように思います。

この話も、いずれ別のところで語りたいなと思います。

④サポートはプログラマーと密にやる

 

これはですね、弊社でも意識していることだったので、ポール・グレアムさんの会社でもそうだったのかと思って嬉しかったです。
抜粋&要約ですが
「大企業ではユーザーサポートはユーザーの機嫌を取るためのものだ。ユーザーから電話がかかってくると、サポート部門は決まった形式にそれを入力し、時間が経ってからそれをプログラマのやることリストに加える。
Viaweb(ポール・グレアム氏の会社)では、ユーザーからバグ報告があがってきて1分もたたないうちに、サポートスタッフはプログラマの横に立っていて、プログラマが
『あちゃー、これはバグだね』
というのを聞いている。」

うちもですね、ODINの開発にあたり、同じような体制でやってます。(`・ω・´)

ODINのサイトに書いてあるんですが、
「サポート担当者と、システム開発者が机を並べ、緊密に連携を取って迅速にお客様へのご質問にお答えします。どうぞお気軽にご相談ください。」。
こうすることが、お客様の満足度を上げるだけでなく、よいソフトウェアを作ることにつながっていると感じています。

 

⑤ベンチャー企業について

 

「ベンチャーはほかのベンチャーと同じことをやっていてはいけない。ベンチャー企業の平均的な成長とは、すなわち、つぶれてしまうということだ。」
うう そのとーりで肝に銘じないといけないですね。

 

うわ、めっちゃ長くなっちゃった。

でも、この本についてまだ書ききれないぐらいです!

 

配車前からルートの総時間がわかる新機能が追加

新機能ができました!

配送ルートがもう決まっているものがあったとして、新しい行かなければいけない配送先が増えたときに、それを配送ルートに足したら、どのぐらい時間が増えるかというのを試算する機能です!

拘束時間を完璧に把握しながら配車できるようにする機能のスクショ

拘束時間を完璧に把握しながら配車できるようにする機能のスクショ

 

例えば、東京から大阪へ行かなければならないとして、途中に長野を挟んだら、結構走行時間が増えそうだなという予想ができると思うんですが、実際にどのぐらい走行時間が増えるのかなってわかりづらいじゃないですか。

ですが、この機能を使えば、ワンドラッグアンドドロップですぐにわかるんですよ!

とっても便利!!٩( ‘ω’ )و

プレスリリースはこちら!↓

拘束時間を完璧に把握しながら配車できるようにする機能をリリース

 

で、この機能なんですが、実はある大規模修正の副産物でできた機能で、他にも機能のアップデートがあります!

・配送計画閲覧画面にて、行先だけでなく住所を表示するように変更
・配車表のリニューアル
<変更点>
・積み下ろしのデザイン変更
・合積みの解除の際に、ひとつづつ解除するのではなく、すべてが解除されるように変更
・時間軸にて、配送先を追加する際に時間が足りないのかだけでなく、どれくらい余るのか表示するように変更
・足りない、余っているのメッセージの時間を〇分という表示でなく〇時間〇秒のように変更
・時間軸にて、移動時間が足りないような時間に配送先を追加した際、後ろをずらして間に合うようにする選択肢を追加
・配車表の表示時間範囲を、ボタンのクリックによって1日ずつ前後させることができるように変更
・スタート地点の時間と場所が選べるように変更
・最後の配送先を削除した際に、そのひとつ前の配送先の空き時間が自動的に削除されないように変更
・時間軸にて、配送先を削除した際に、その配送先の後ろの配送先の時間が自動で詰められるように変更
・通常の配車表という名称を「タスク軸」に変更
・タスク軸の配車表にて、配送先を追加した際に拘束時間が何時間に変化するかを表示するように変更

特に配車表がめっちゃ便利になったんですよ!o(>▽<)o

ぜひ使ってみてください!(無料お試しはコチラから)

 

上記に書いたのはユーザーさんに影響があることだけなんですが、実は裏側のプログラムがめっちゃ変わったんですよ!

というのも、配送ルートの更新系をミニイベント駆動にしたんですよ!

ついでに、プロパティの整理(分刻みのものと秒単位のものが乱立していたので整理)などしました。

なんと、10か月かかりました!!

長かった~(>_<)

これ、実は私が主導でやりまして…。本当にキツかったです(笑)

私はそこそこハードワークになれている方だと思うんですが、今回はしんどかった。

朝から晩までやるのはもちろん、2月って3連休が2回あったじゃないですか。

その3連休、両方ともこのためにプログラミングしてました。

人生の中できつかったプロジェクト10位には入りそうです。

既存のプログラムを直すのってしんどいんですよ。

新しいプログラムを書くのは楽しいことなんですが、自分以外の人が作ったプログラムを直すのは純粋にしんどい。(´ω`) 楽しくもないしね(笑)

そういう過去のプログラム上の不整合やまずい部分を技術的負債と呼びますが、まさに負債、借金!

技術的負債を返すのは大変だ~(泣)

借金なのでほっておくと雪だるま式に増えていくので、ここで改修に踏み切ってよかったです。

楽しくないとか言っても、それでも私はプログラミングが好きなので、休みでもできたという感じかもしれません。

特にこだわった部分は、エラー処理ですかね。

不整合なデータがデータベースに入ると直すのがより大変になるので、その前に食い止める必要がありますが、その食い止め方もなるべく発生から浅い段階で返すようにしました。

 

もちろん一人でやったわけではなく、協力してくれた皆さんのおかげです!( ˊᵕˋ )

TypeScript化をしてくれたM君、中盤でがんばってくれたS君、天才的なひらめきとスピードで終盤の開発をぐいぐいしてくれたS君には特に感謝です。

ありがとう!

 

この改修は今後の機能追加をやりやすくするためのものなので、今後の機能開発がスムーズにいくはずです!

ODIN リアルタイム配送システムの機能強化にご期待ください。( ˊᵕˋ )