【学び】ドライバーさんから学んだAPI開発の目的
はじめに
私は現在、世の中を便利に、もっと面白くするお手伝いをしたいという思いを持って、現場で活躍するエンジニアを目指しており、RecursionCSを通じてコンピュータサイエンスの基礎を学習しています。その学習の傍ら、早朝にタイミーを使って某物流業者さんの職場で働いています。
この日は、1人のドライバーさんも早朝から出勤しており、隙間時間ができたタイミングでお話しする機会がありました。普段は私たちが帰るタイミングでドライバーさんたちが出勤します。そのため、動き方を知る上でもとても貴重な日でした。そのドライバーさんの働く姿勢や話から学べることがたくさんありましたが、中でも、テキスト上で理解したつもりだったAPIの意味が、実際の現場でどのようにAPIとして使えるのか・つながるのか、その意味を知り、とても勉強になった体験をしました。
本記事では、APIに関して学んだこと、そしてその他学んだことを記録として残していきます。
主観が多いと思いますが、その点ご了承ください。
業務の流れ
私が出勤した後の業務は以下のように進みます。
① 輸送用トラックから届いた荷物が入ったボックスを輸送エリアごとに仕分け
② トラックへの積み込み
③ 冷蔵・冷凍商品の仕分けとトラックへの積み込み
④ 配送後、配達できず営業所へ持ち帰る商品を置くためのボックスの用意
⑤ 小物輸送用の段ボールの準備
⑥ 先日付商品を日付ごとに仕分け
この業務をドライバーさんが出勤する前に完了させることが課せられたミッションです。
そのため、いかに効率的に仕分けと積み込みができるかがカギになります。
ただし、このミッションは出勤時に使用するアプリに明記されているわけでも、現場の社員さんが明示的に言っているわけでもありません。あくまで、私個人がこの仕事に取り組む上で、最低限達成すべきこととして、また、働かせていただくマナーとして自分に課しているものです。これから気楽に働こうと思っていらっしゃる方の中に、身構えてしまった方がいらっしゃったらごめんなさい。。。
ミッションを達成するために行なっている工夫
上記の業務が時間内に完了するかどうかは「当日に届いた物量」と「チームワーク」によって変わります。
ここに対して自分が達成するためにしていることを分解してみました。
「当日に届いた物量」
量に関しては私がコントロールできるものではありません。出勤日によって状況が全く異なります。
ここに対してできることは、2つです。
① 仕分け後に入れるボックスへの置き方「軽いものは上に、小さいものを奥に、大きく重いものを手前に」
初期状態ではボックスと呼ばれる棚に、まだエリアごとに仕分けされていない荷物がたくさん入っています。
以下のイメージのようなものに、ダンボールや袋がパンパンになって入っています。
※https://www.csjapan.net/product/transfer/transfer_01.html より引用
ちなみに、この正式名称は「ロールボックスパレット」と呼ばれるそうです。
このボックスをあらかじめ複数用意しておき、トラックで届けられたボックスの荷物を、用意しておいたボックスにエリアごとに仕分けしていきます。この時、仕分けする方は番号を言って、リレー方式で荷物を隣にいるワーカーさんに渡していき、ボックスに置いていきます。
これはあくまでも仕分けです。エリアごとに分けた後、トラックへの積み込みがあります。
積み込み時に効率化の妨げになるのは、大きな荷物が後からたくさん出てくる時です。
荷物を受け取ったワーカーさんは基本、受け取った順にボックスの奥に荷物を積み込んでいきます。しかし、トラックに積み込む際にはペットボトルや工業用製品の入った重い荷物を下に敷き、その上に軽い荷物を乗せていきます。
つまり、ボックスから荷物を取り出すときに、重い荷物や大きい荷物がボックスの手前にないことがあるということです。
ここでできることは、なるべく重い荷物や大きい荷物は手前におけるように、配置することです。
どの順番でどんな荷物が来るかは瞬間瞬間で変わりますが、無神経に荷物を置いていくのではなく、この意識を持って配置するだけで、積み込み時に通常より楽であることが実感できます。しかも、同じ物量のボックスを使い時間を計測した結果、約6分、時間が変わることがわかりました。
これが効率化のためにしている1つ目の工夫です。
② 待ち時間となる瞬間を利用すること
トラックへの積み込みが完了するタイミングで、新たな荷物を積んだトラックがやってきます。
そして、このトラックからボックスをおろして、仕分け場に持って行く間に3~6分くらいかな、待機時間が生まれます。最初は冷蔵用・冷凍用商品が入ったシルバーのボックスが下ろされます。以下のイメージ図がシルバーになったようなボックスが最初にトラックから降ろされます。
ちなみに、タイミーワーカーはこれにはタッチできません。
このとき、荷物を降ろして仕分けするスペースに持って行く人、お話をする人がいらっしゃるのですが、ここが効率化のチャンスポイントです。
冷蔵・冷凍商品も、一箇所にまとまったボックスからエリアごとに仕分けを行ないます。仕分け時には先ほどのようなボックスではなく、以下のイメージのような保冷バッグよりもさらに大きい保冷バッグを使用します。
使用している保冷バッグには温度計が搭載されており、保冷バッグ内の温度が基準に達していない場合は、温度を下げるためにアイスノンのようなブロックを中に入れて冷却します。
今の季節は暖かく、保冷バッグが基準温度以上であることがほとんどのため、アイスブロックを入れて、冷やしておく必要があります。
そうです、ここです!
お話ししている人に、「お話中すみません、あとで簡単に冷凍・冷蔵商品を運べるように準備手伝っていただけませんか?」と言って、協力を要請します。ちなみに、この協力を依頼して断られたことはありません。いい人が多かったということですね!
ここで、以下のイメージのような木製の台車の上に、先ほどの保冷バッグを乗せ、保冷バッグの中にアイスボックスを入れていきます。ここを協力して行ないます。全部で8〜9個用意します。
この動作をこのタイミングで行なっておくことで、保冷バッグの冷やし忘れ防止、ダンボール積み込み後にスムーズに冷却を待たずに冷蔵・冷凍商品を仕分けしてトラックに積み込みできます。
これが2つ目の工夫です。
「チームワーク」
チームワークも重要です。その日初めての勤務の方と仕事を進めるのか、経験のある方と仕事を進めるのかによって、生産性が変わります。
しかし、経験のある方とのみ進めると、短期的にはコストがかからなくても、長期的には引き継ぎができなかったり、新しいワーカーさんを見つけることや新たに入ってくる方がついていけず、もうあそこには行かない、となってしまい、現場で働く人が理想人数よりも集まらない、といった集客するうえでのコストになってしまったりといった事態になりかねません。
つまり、ワーカーさんが来やすくて、何も言わなくても自分でやれることを見つけて動いてもらえるようにすることが必要です。
そのためにしていることは2つです。
① 困っていそうなら声をかけること・手伝うこと
自分の持ち場を担当しつつ、初めてお会いした方の動きもチェックするようにしています。
みなさん、自分の持ち場でいっぱいになることも多く、サポートに回りきれないことが多いのが現状です。私自身も初めて出勤したときには、ワークフローがわからず、わからなくなる都度、近くの方に聞きながら覚えましたが、聞くときに内心「仕事止めてしまってごめんなさい」と思いながら働いていました。
後から分かったことですが、わからないことを聞かず、自分の判断で商品を積み込みしてしまった結果、ドライバーさんが荷物を降ろすときに荷物がごちゃごちゃだったり、商品の情報が配送リストになかったりと、大変だったことがあったようです。これは、本人が分かる方に聞かなかったことも原因ですが、聞きづらくて遠慮してしまった可能性もあります。
聞ける、という安心材料があることは重要であると認識していたため、動きが止まっていたり、周りをキョロキョロ見ている方がいたら、何かあったか、聞くようにしています。
また、両手が塞がった状態でスライドドアを開けようとしている場合には、商品が落ちてしまうリスクもあるため、ドアを開けるようにしています。
このようにして、まず聞くことができる、という状態を作りつつ、手伝っています。
② やることを明確にはっきり言うこと
仕分け時には絶え間なく、仕分け先の番号を伝言していきます。
これを聞き逃して聞き直すと、次の商品の仕分けが止まります。
そのため、「〜番!」と相手に伝わるように言う必要があります。
また、初めての勤務の方に対しては、何をどうするのかを明確に伝えます。
以前、どこに置いていいかわからない荷物の相談を受けた際に、「そこに置いてください」といった指差した先に置いてもらおうとしましたが、違う番号のボックスに置いてしまって、後から自分で戻したことがありました。
この場合、「そこに置いてください」ではなく、「何番のボックスに置いてください」と言った方がよかったとわかり、それ以来、返事をするときは明確に言うよう心がけています。
指示を出せる方が持ち場から離れられないような場合には、こちらから声をかけて質問を聞き、流れを止めないようにします。
その他にも、何をしていいのかわからなくて、手持ち無沙汰の状態であるように見えたときには、周りの状況や自分の状況を見て、「〜を積み込むのを手伝ってください」とお願いしたり、先ほどのような保冷バッグの冷却のお手伝いをお願いしたりします。
こうすると、手が空いたら次に何をするのかを学んでもらうことができます。
これらを実践して、時間内にミッションをクリアするために動いています。
一緒に働いたドライバーさん
ドライバーさんの立ち回りと改善姿勢
上記の実践内容は、一緒になったドライバーさんも実践していることがわかりました。さらに、早くて丁寧。
プロフェッショナルを感じる立ち回り、指示出し、「何か手伝おっか?」といった声がけ、など、自分が気づいて実践していたことを確実に実践していらっしゃいました。
それもあってか、普段よりも10分早く、その日のミッションをクリアすることができました。
残りの時間は掃除をしつつ、ドライバーさんからたくさんの質問がありました。
「なんか仕事してて、もっとこうしたらやりやすいのに、とか、困っていることある?」
といった質問をいただき、やることのワークフローを明示しておくと全体の流れがわかりやすいこと、トラックによっては設定が全て「未設定」と表示されてしまい、トラック積み込み時に積み込み場所がわからず属人化していることなどを伝えました。
このとき、その方はメモをとっており、真摯に向き合って、少しでもよくしていこう、という気合と優しさを感じました。
私は、この姿勢に胸を打たれました。
今よりもよくするために、相手の雇用形態に関係なく改善しようとする姿勢は、どんどん真似して見習う必要があるとあると感じました。
せっかくの機会と思い、許可を得て私からも普段疑問に思っていた質問をしました。
バーコードには全て意味がある
商品を梱包した段ボールにはQRコードやバーコードが添付されています。
これは、商品の出品者から購入者・受取人までの工程で、それぞれどのタイミングで何が使用されているかを知りました。
例えば、Amazonの倉庫から出品する商品は、
・Amazonの倉庫での仕分け・持ち出しと配送業者の受け取り(集中受付センターへ)
・配送業者内での仕分けと持ち出し/営業所での受け取り(営業所へ)
・営業所での仕分けと持ち出し/注文者の受け取り(注文者へ)
といった、ラストワンマイルがあります。
現在、物流業界として、このラストワンマイルをいかに効率化するかが課題となっているようです。
実は、もともとAmazonから物流業者に対しては仕分けをせず、まとめて商品を配送していたそうです。
しかし、受け取った物流業者側での仕分けコストの増加により、コストがかかったこと、現場での混乱、注文者への配達遅れなどがあったことから、Amazon側で仕分けをしてから物流業者へ運ばれるようになりました。
これによって、配送までの時間の短縮やコストカットが実現し、Prime会員向け配送料無料を実現したみたいです。
また、バーコードは上記の工程ごとに必要となる状態を管理するために使用されているとわかりました。
現場で混乱しないよう、間違ったバーコードを読み込んでもデータを弾くように設定されているみたいです。
これをデータで管理することで、商品が現在どこにあり、どんな状態なのかをリアルタイムで確認することができるようになりました。
この話がとてもリアルで面白く、ビジネスフローがどうなっているのか、システムが関わる人にどう貢献するかを想像できて、ワクワクしました。
普段使っているシステムに対する疑問
段ボールに貼ってあるバーコードなどを読み込むことで、ドライバーさんはその日の配送エリアと荷物量を知ることができます。
ここまでは想像でき、実際にドライバーさんに聞いてみるとそうだったことがわかりました。
疑問に思っていたのは、法人と取引をするときでした。
個人の場合は、営業所へ持ち込み、物流業者独自のシステムで管理できますが、法人の場合はどうなのか?
中小企業の場合は物流業者が作成したシステムを使用し、伝票の発行などに使用するそうです。
なるほど、自社システムを使用いただくと。
企業の規模が大きくなるとそうではないようです。
その企業独自のシステムを使って取引しているとのことでした。
「あれ?違うシステムを使って、どうやって物流業者のシステムにデータを送るんだ?」
APIがこうやって使われるのか!と実感
帰宅後、すぐに調べてみました。どうやって異なるシステム間が繋がるのか?
調べる前は、システムとシステムを繋ぐためのシステムが必要なのかなと思っていました。
しかし、調べると、自社の基幹システムから出荷データを変換して物流業者のサーバにデータを送信する方法と物流業者のAPIを使用して自社の基幹システムを使用する方法、などがあるとわかりました。
「なるほど、ここでAPIが活躍するのか!!」
納得しました。そして、文字で理解したつもりのAPIが体感としてどう役に立つのかがはっきりとわかりました。
このようにAPIを導入することで、1からの開発が不要かつ保守性も高いとわかりました。
まとめ
もし「APIについて勉強してみたけど、いまいちピンとこない。。。」と感じている方は、実際にサービスを使っている現場を観察することで理解を助けてくれるかもしれません。
現在学習している内容・行なっている実装が実際の現場ではどのように役に立つのか、という視点を持つことの重要性を体感した体験をシェアさせていただきました。学習と実社会のつながりが見えたことが何よりの収穫です。
私自身は、まだ開発経験はありませんが、この感覚を忘れずに、エンドユーザーがどうなるのか、どういう流れの中で何を使うのがいいのかを考えて開発していく姿勢を忘れずに、スタートラインに立てるよう、努力していきます。
現場の課題をテクノロジーでどう解決できるか、目的を見失わずに、引き続き学び続けていきたい、そう思えた体験をシェアさせていただきました。
最後までお読みいただき、ありがとうございました。
画像引用元URL
Discussion