読者です 読者をやめる 読者になる 読者になる

ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

どの車両にどのメーカーの部品が組み付けられているかわからないもの?

3月に発表されたリコールが、4月になってからディーラーから該当車両なのでと修理の案内が届きました。
修理の予約をすると、5月の後半にならないと空いていなくて、先日やっとディーラーに車両を持ち込みました。

1ヶ月以上経ってから案内

新車で正規ディーラーから購入した車両です。
リコールが発表されてから1ヶ月以上経ってから案内が届くのは、どうしてなんでしょうね。
ディーラー側の準備が整わないと、案内しないものなんでしょうか。

予約で1ヶ月以上待ち

修理の予約をすると1ヶ月以上待つことになり、リコールの発表から2ヶ月半以上かかることになりました。
土日に限定すると予約が多いのは想像できますが、車検や1年点検の予約でも、1ヶ月以上前からじゃないと予約できないんでしょうか。

f:id:AJYA:20160525125819j:plain
photo credit: BOSS Military Spouses Appreciation Day - Free Vehicle Inspection - U.S. Army Garrison Humphreys, South Korea - 11 May 2012 via photopin (license)

修理ならぬ確認

ディーラーに車両を持ち込んで、リコール内容の説明を受けました。
そこで改めてわかったのが、エアコンのコンプレッサが2メーカーあるそうです。
一方のメーカーのコンプレッサが車両に使われていたら修理が必要で、もう一方のメーカーなら修理は必要ないということでした。

点検の結果は、修理が不要なメーカーのコンプレッサが使われていたので、15分ほどで作業は終わりました。
そうでなければ、1時間くらいかかるらしいです。

今回のリコールの内容が、コンプレッサオイルの充填不足なので、最悪の場合、潤滑不足でコンプレッサが焼きつくようです。
そうなると、コンプレッサを駆動するためのベルトを外して、冷媒を抜いて、取り付けのボルトや配管を外し、新しいコンプレッサを取り付け直して、真空引きして冷媒入れてという作業を1時間でできるものなんですかね。


該当生産期間の全ての車両を点検しているようで、車台番号の範囲までメーカーのサイトには示されていました。
エアコンのコンプレッサが2メーカーあっても、車台番号からどちらのメーカーなのかわからないものなんですかね。
わかっていても、互換性があるから修理で他方のメーカーに交換されているということも考慮して、全ての車両を点検するという判断なんでしょうか。
ディーラーの整備担当の方は、通常の作業以外にもリコールに関する作業が増えて大変だなと思いました。

JavaScriptのオブジェクトを少し学びました

JavaScript

あるシステムで、データに対して5から-2の点数をつけることになりました。
複数のデータに対して、それぞれ点数をつけなければなりません。
何点を何個つけたのかを数える機能も必要です。

例えば、3個データがあって、2個のデータに2点、1個のデータに-1点をつけた場合、
5点:0個
4点:0個
3点:0個
2点:2個
1点:0個
0点:0個
−1点:1個
−2点:0個
と表示しなければなりません。

formのsubmitで遷移したタイミングで選ばれた点数を数えるのであれば、GETまたはPOSTでサーバー側に渡されたデータを元に集計すれば実現できます。
そうではなくて、ラジオボタンをクリックされたタイミングでformのsubmitをしないで数えなければなりません。
そのため、JavaScriptで実現する方法を考えました。

f:id:AJYA:20160524075805j:plain
photo credit: Running Orc mit p5.js via photopin (license)

サーバー側で集計するなら

PHPなら連想配列

$pointsArr = array(
	5 => 0,
	4 => 0,
	3 => 0,
	2 => 0,
	1 => 0,
	0 => 0,
	-1 => 0,
	-2 => 0);

と定義します。
選ばれた点数がキーになっているので、選ばれた点数のキーに対する値に1を加算していけば、集計ができます。
PHP: 配列 - Manual

JavaScriptで集計する方法

JavaScriptで同じように集計しようと、配列の添え字にマイナスを使っても大丈夫か検索したら、一般的ではないようです。
他に方法はないかと検索すると、オブジェクトが使えそうだとわかりました。
JavaScriptで覚えておくとよいデータ構造 - 配列・オブジェクト - いろいろ解析日記

オブジェクトで

var pointsObject = { "5": 0, "4": 0, "3": 0, "2": 0, "1": 0, "0": 0, "-1": 0, "-2": 0 };

と定義して、選ばれた点数のキーに対する値に1を加算していって、集計を実現しました。


JavaScriptでの実現方法に悩みましたが、オブジェクトが使えることがわかってからは早かったです。

なぜ次回は引き受けたくないと思ったのか

考え

先日お客さんとの納品物の確認会があり、細かい点の修正がありましたが、修正した上で納品することになりました。

後日営業さんと話す機会があり、話しているうちに「次回あったら、引き受けたくないですね」と言っていました。

そのときは感じたことをそのまま言っていましたが、なぜ引き受けたくないと思ったのか、考えてみました。

他社開発の運用とサポートが業務

この案件は、お客さんが開発したシステムの運用と利用者に対してのサポートを行いました。
こちらでは使い方や挙動は、わかります。
なぜそうなっているのか質問すれば答えてもらったので、疑問に思ったことは解決はしています。

システムへの理解は深められはしましたが、改善することはお客さんの開発したシステムなので、こちらではできません。
利用者のサポートをしていたなかで気がついた改善すべき点や、問い合わせが何件もあってシステムを改善すれば問い合わせを減らせる点がありました。

f:id:AJYA:20160523135613j:plain
photo credit: Woman and Grief via photopin (license)

改善案が採用されない

改善すべき点も簡単にまとめて、納品物の確認会で説明しました。
改善すべき点には、お客さんへの発注者が、利用者に対して説明してはいるが、利用者が忘れてしまっているから、効果がないと言われた項目がありました。
費用がかかるため、修正はできないとも言われた改善点もありました。

確かに費用がかかる部分を修正したくないのはわかります。
それでも何度も利用するシステムで、次回も同じ問い合わせが利用者からあり、不便をかけるなら、せめて修正にかかる費用だけでも算出して提案してから、修正する/修正しないを判断して欲しいと思います。

あと気になったのが、サポートが頑張って対応すればいいという発言もありました。
サポートが頑張るものではなく、どうすれば問い合わせをなくせるものなのか、考えるべきではないかという思いがあります。

わかったこと

次回も同様にシステムの運用とサポートを行ったら、改善されずまた同じことをやり取りをすることになるのが、引き受けたくないと感じている理由でした。
進歩させる余地があり、費用の壁があるとはいえ、なにかできるのではないかと考える状況にもなっていないことが、納得いっていないのです。
こんなことは世の中にごまんとあり、自社のシステムで何度も経験はしています。
それでも、利用者の多さ、サポートの件数の多さを考えると、改善すべきてという思いの方が強く、そこから引き受けたくないという気持ちにつながっています。

大勢の子どもが遊んでいる場での親のふるまいに悩みます

考え

子どもを遊具で遊ばせながら、この注意書きを見て最初は、「怪我をしないように子どもを見ているように言っているんだ」と思っていました。
「子どもが無理に遊ぼうとして立ち往生していたら助けに行ってと言っているんだ」とも思っていました。
f:id:AJYA:20160522055020p:plain

遊ばせていると、すべり台の滑る部分を下から上に登っていく子どもがいました。
上に登っていくと、滑り降りてきます。
何度もやっていました。
その間、他の子どもたちは滑って降りてくることができません。
滑りだすところの先頭にいた子は、やめてよと言っていますが、なかなか止めません。

滑りだすところにつかまったまま、なかなか滑りだそうとしない子どももいました。
どんんどん後ろが詰まってきます。
やっと滑りだしたら、またされた子どもたちが続々と降りてきて、すべり台の滑る部分に何人もの子どもたちがいる状態です。

こういった光景を見ていたら、
「怪我をしないように子どもを見ているように言っているんだ」
「子どもが無理に遊ぼうとして立ち往生していたら助けに行ってと言っているんだ」
というより、
「子どものマナーが悪くて迷惑をかけてることがないか見ているように言っているんだ」
と思い直しました。

僕の子どもも、そういう子どもを見て真似をしそうだったので、都度声をかけてやらせませんでした。
他人の子どもには声をかけたりはしませんでしたが、声をかけられる位置にいたら、言うだけで手は出さなければトラブルは起きないものなんでしょうか。
子どもなんだからそれくらいいいじゃんという認識の方もいるのかもしれないと考えると、トラブルを避けたい気持ちが勝ってしまい、僕の子どもにぶつかってきたとかがないと、なかなか声をかけづらいです。

譲ってくれたり助けてもらったりしたときは、当然声をかけてありがとうと伝えてはいますが、叱ることになると悩みます。

1週間の振り返り(5/14〜5/20)

デリバリー系のピザを久しぶりに食べました。
f:id:AJYA:20160522000515p:plain
食べたのはドミノピザです。
広告にすべてのメニューが掲載されていないので、掲載して欲しいです。

  • 5/14(土)
    昼食としてドミノピザを購入しました。
    大人2人、子ども1人でMサイズ2枚を食べました。
    5人前くらいあるらしいですね。
  • 5/15(日)
    午後から公園で子どもを遊ばせました。
    子どもは初めて会う子を勝手に追いかけてたりしてました。
    追いかけられていた子が帰るときに、バイバイと手を振ってくれました。
  • 5/16(月)
    同じ内容が2回表示されているとの問い合わせがあり、調査をして回答しました。
    毎回迅速に回答を出せるか心配になり、問い合わせがあるたびに、少し気分が落ち込みます。

ajya.hatenablog.jp

  • 5/17(火)
    必要な項目はすべて入力したはずなのに、必須項目が入力されていないと表示されるとの問い合わせがありました。
    調べてみるとキーワードを最低3個入れて欲しいところに、2個しか入っていないからでした。
    メッセージがもっと親切ならわかってもらえたかもしれません。
  • 5/18(水)
    見積を9枚作成して、7か所にメールしていました。
    一日でこれだけ作ると、相手先や内容を間違えそうになるので、慎重に確認作業をしていました。
  • 5/19(木)
    新しいシステムに別のシステムから機能を移植していました。
    別のシステム側でのリポジトリへのコミットの単位が適切だったので、移植する機能を抜き出すのが手早くできました。
  • 5/20(金)
    朝から納品媒体を作成していました。
    CDに書き込んだりするのは1年前にも行っていたので、記録を元に手早くできました。
    印刷物の体裁を整える作業に手間取りました。
    何十枚も印刷物があると、扱いにくいです。

のどが痛く感じるようになっていましたが、徐々に弱くなってきて、痛みはなくなりました。
まだ鼻が詰まるので、ブタクサ等の花粉に反応してしまっているのかもしれません。

納品作業が終わって、慌ただしかったのが少し落ち着けそうです。
遅れ気味になっているシステムがあるので、集中して開発して早く開発を完了させたいです。

Todoの管理をToodledoで継続中

1ヶ月ほど前に、Todoの管理を手帳からToodledoに戻したと書きました。
ajya.hatenablog.jp
www.toodledo.com

継続して利用していて、改めて便利だなと思った点を書いていきます。
f:id:AJYA:20160520054548p:plain

ContextとPriorityを使って実行したい順序の設定が可能

僕の場合、Contextを「A.6-9」「B.9-12」「A.12-15」「D.15-17」「E.17-19」「F.19-」を設定しています。
Contextを変更して、どの時間帯に実行するのか適切そうか決めています。

同一Contextに複数のTodoがある場合は、Priorityを変更して順序を決めています。
5段階に分かれていて、これで十分です。
これで足りないということになれば、同一Contextに詰め込みすぎとわかるので、Contextを見直すきっかけとなります。

ノート欄で思いつきを保存

Todoごとにノート欄があるので、Todoに関して思いついた細かいことも入力していくことができます。
32,000文字まで入力できるそうなので、日本語ではどれだけ入れられるのかわかりませんが、今まで不足して困ったことはありません。

繰り返しの設定が柔軟

Repeatが用意されている選択肢として、毎日、毎週、2週に1回、毎月などあります。
これで十分な気がしますが、月曜から金曜日という選択肢はありません。
こいうったときは、Advanced optionsというリンクをクリックして「Every Mon, Tue, Wed, Thu, Fri」と入力すれば実現できます。
金曜日にチェックを入れれば、次は月曜日のTodoとして表示されてきます。


便利に使っていますが、処理をしなければならないTodoが、処理をしたので待ちのTodoになることがあります。
今はContextを未設定状態の「No Context」にして最後に表示されるようにしています。
もっといい設定方法があれば、知りたいと思っています。

地元以外で一人で食事をするときはどこに行く?

先日この記事を読みました。
探すの面倒だし、味は間違いないから安心できるというのは理解できます。
20代では2割も!旅行先でも「チェーン店」で食事する人たち – しらべぇ | 気になるアレを大調査ニュース!

チェーン店はなるべく選ばない

僕の場合は、チェーン店はなるべく避けるようにしています。
ずいぶん前に新潟に宿泊を伴う出張をした際は、ホテルの部屋に近隣のお店を紹介するペーパーが用意されていました。
そこから、おまかせで総額がわかっているお鮨屋さんを見つけて、夕食として食べたことがあります。

東京で展示会があって宿泊した際は、ホテルの1階にレストランが何軒かありました。
その中から中華のお店に入って夕食として2品食べた記憶があります。

チェーン店を選ぶなら

2年前の4泊5日の出張のときは、地元ではお店が遠くて食べたことがないチェーン店を探して行ったり、食べログで探したラーメン店に行って夕食を食べていました。

チェーン店に行くにしても、行ったことがない店を選んでいくようにしています。


今はなかなか一人で外食する機会がないですね。
外れたと思いたくはないですが、行ったことのないお店で食事をしたいと思っています。