CAT GETTING OUT OF A BAG

What the tester is thinking.

ピクシー絵本の思い出

 

この中でも特にお気に入りだったのが、こちらの5冊。

f:id:miwa719:20190503091719j:plain

f:id:miwa719:20190503091720j:plain

f:id:miwa719:20190503091440j:plain

f:id:miwa719:20190503091721j:plain

f:id:miwa719:20190503091531j:plain


当時、お出かけする時にはポシェットの中にピクシー絵本を2、3冊しのばせていくのが習慣になっていて(京浜東北線の電車の中でよく読んでいた)この5冊が選ばれることが多かったように思います。

この5冊のどこが気に入っていたのだろう?と思いながら読んでみたのですが、面白いことに気がつきました。『ひもぐつ』以外の4冊は「何かを作るお話」なんですよ。

ピクシー絵本の内容は「動物のお話」「家族のお話」「仕事のお話」「数のお話」「冒険のお話」「友達のお話」など多種多様です。その中で「何かを作るお話」が何冊も上位を占めるのですから「何かを作る」ことに対して、特に興味を持つ子供だったのかもしれないですね。

そんな子供も大人になり、医用機器を作る仕事に就き、毎日毎日「作っては壊し、また作る」ことを30年近くやってますが、一向に飽きることがありません。

ちなみに『ひもぐつ』は、こんなお話です。

あたらしい赤いひもぐつを買ってもらった主人公(トーマス)が、お母さんにひもを結んでもらって出かけたら、かけよってきた子犬にひもぐつのひもをほどかれてしまいます。家にもどってお母さんにひもを結んでもらおうとしましたが、お母さんはパンを作っていて手が離せません。そのあともいろんな人に頼むのですがみんな忙しくて結んでもらえない。「だれも手伝ってくれないなんてひどいよ」とがっかりしていると、女の子が通りかかります。「わたしが教えてあげるわ。結び方をおぼえて自分で結べばいいじゃない」

トーマスは練習し自分で結べるようになりました。89回目で!

これを読んで(わたしもひもぐつのひもを結べるようになりたいなー)と思いました。最後のページには「くつひもの結び方」が載っていて、まだ履いたことのない『ひもぐつ』に憧れ、眺めていた記憶があります。*1

*1:『ひもぐつ』は「できないことができるようになったお話」であり、そこにも惹かれる要素はあったと思いますが、当時は「ひもぐつへの憧れ」が強すぎて、著者が伝えたかったことは受け取れてなかったなぁ。

誰も使ってない機能にバグが見つかった時にどうするか

 

Twitterのタイムラインにこんなツイートが流れてきました。面白い問いですね。数年後にこれを見てどう思うのか(今の自分と比べてどう変わったのか、または変わらないのか)に興味があるので考えたことをメモしました。(自分宛てなので好き勝手に書いてます)

なお、考えている最中「いつか誰かがその機能をうっかり使うかもしれない」呪縛に取り憑かれて何度も脱線したので「その機能は未来永劫、絶対に使われることはない」を前提とします。あと「誰も使わない機能をなぜ作った?」「他の機能は大丈夫なのか?」についても考えないことにします(書いておかないと妄想が思考を邪魔するので書いた)。

「3. 機能を削除する」について

この中だと「機能を削除する」が好きです。めっちゃ好き。こんな風に書くと「好きとか嫌いで仕事してはいけません」と叱られてしまいそうだけど「機能を削除する」が好き。今の自分ならこれを選びます。

誰も使ってない機能だとしても製品の一部として提供している間は何かと手間がかかります。新しい機能を追加したり、既存の機能を変更するたびに誰も使ってない機能との関連や影響を考えるだろうし、リリースのたびに誰も使ってない機能が正しく動くことをテストしなればならないし。ちょっとした手間であっても塵も積もれば山となるわけで大変なんだよぅ。誰も使ってない機能にコストをかけるのはバカらしいのでやりたくない気持ちもある。そこに労力をかけるくらいなら、違うこと(やるべきこと)に使いたい。仕事とは言え(誰も使ってない機能なのに…)と思いながら作業するのは精神的に苦痛です。

「機能を削除する」ためのコストはかかるけど、以降「誰も使ってない機能」に関してコストはかかりません。良い。

お客さまにとっての価値

元々使ってないので機能を削除しても何も変わらないのかな。個人的にはシンプルになって良いと思うけど。その機能分プライスダウンするなら価値は上がりますか?何に価値があると思うのかは人それぞれでむずかしいと感じるけど、価格は分かりやすいと思う(この文脈では「安かろう悪かろう」は無いものとします)。それ以外だと何だろう。今後は「誰も使ってない機能」のために消費していた(消費するであろう)リソースを他の何かに割り当てられると思えば「新しい価値」を提供することは(計算上)可能のはずなのだけど…

「1. バグを直す」について

製品として提供してしまった機能はそう簡単には削除できません(少なくともうちの製品はそうです)。となると「バグを直す」か「放置する」のどちらかを選ぶことになります。ここで「バグを直す」を選びたくなるのは…自己満足なのだろうな。バグがあるのが分かっているのに直さないでいるのは気持ちが悪い。直せばスッキリする。ただそれだけなのだな。バグを直すには多少なりともコストがかかるので「未来永劫、使われない機能」なら放置した方が安い。

お客さまにとっての価値

元々使ってないのでバグを直しても何も変わらない。うっかりリリースノートに「バグを修正しましたっ」と書いたら(そんな機能は使ってないし、むしろ要らなくね?)(それよりもこっちの機能をどうにかしてほしい)とか思われたりしてね。価値が下がってしまう可能性がある。

「2. 放置する」について

お客さまにそのような問題があるということをお知らせした上で「放置する」なら受け入れられそう(自分が)。何もしないでそのまま放置するのと、バグを直すことにしたのに(優先順位が最下位のため)いつまでも直さないでいるのは似ている。これについてはまだ自分の中にうまく取り込めていない感じ。全てのバグを直すことはできないのは分かっているんだけどな。完璧主義者でもないのに変なの。

お客さまにとっての価値

元々使ってないので放置しても何も変わらない。問題を公表したことが良いイメージ(誠実性や透明性など)につながるのなら、なんらかの価値を与えられるかもしれない。うーん。ちょっと無理があるね。何も変わらないですね。

ここまでのまとめ

本題とは外れますが「自己満足のために仕事してる部分がある」が観測できたのはよかったです。これからは暴れる前に何かを主張する前に(これは自己満足かな?)と問いかけるようにしたい。あと熱中してる時とか…(身に覚えがある)。スッキリした時もかなり怪しい。スッとしたとかツイートしてる場合じゃないわよ(笑)。すこし消化不良するくらいが私にはちょうどいいのかもしれないな。いずれにせよ、仕事に自己満足はいらない。

 

「多数決で決める?」

開発現場で課題や問題を解決していく最中におこる「小さな会話」が「よいチーム」をかたち作る(のではないか)という仮説から、うちのチームでよく使われる「フレーズ」をいくつかのイベントで紹介したのですが、とうとうボット化する者が現れました。これは感慨深い…。ありがとうございます!

yoshitake-1201.hatenablog.com

 

ちなみに私達は、資料で詳しく紹介されてないフレーズが通知されたときは「こういう風に使ってるんじゃないかな?」と想像しながら意見交換しています。
(なお、我々の中では「多数決で決める?」というフレーズは、「このままだと多数決になっちゃうよ、それでもいいの?」という感じで使っているんだろうという結論になりました。今度ご本人たちにお会いしたときにどういう感じで使っているのか聞いてみようと思っています)

 

詳しく紹介していないフレーズもこんな風に話題にしてもらえるのは想定外でした。これもまた嬉しかったです。福岡と栃木ではいつお会いできるか分からないので(笑)「多数決で決める?」というフレーズについて解説しておきたいと思います。

こんな良いことが起きる

  • 決めようとする、決まる
  • ハッとする(関さんに決められてしまう、やばい!)*1
  • それまで黙っていた(実は意見のある)人が口を開く(そうならざるを得ない)
  • もう少し(ちゃんと)考えたくなる、考える
  • 難しいかもしれないけど、より良いものを選べる

状況

  • どうでもいいことを話しているわけではないのに、みんながノッてこない
  • 論点がずれてきた
  • こうしたほうが良いと薄々気がついているのに言わない(やれるのにやりたくない雰囲気を出してる)
  • 間違ってはいないけど(最適解ではない)安易な方に流れてしまいそう

解説

「多数決で決める?」は「多数決で決めちゃダメなもの」に使います。普段の開発の中で何かを決めたり選んだりするシーンってよくあると思うのですが、多数決で決めていいものなんて無い(そういう開発を私たちはしていない)んですね。みんなそれは分かっています。

状況にも書きましたが、話し合っているうちに論点がボヤけてしまうことってあるんですよ。だんだん理詰めではなくなってきて「納期がー」とか(もう今日は結論までたどり着けなくてもいいかぁ)と時間切れを狙って(るように見えるだけかもしれないけど)ダラけてしまう、みたいなの。ないですか?

そんな時に誰かが「じゃあ、多数決で決める?」と言うと(いやいやいや、そうじゃないだろwww)と思いますし、その一言で場の雰囲気も変わります。みんなでクスッとするのがいいんですよ。

おまけ

「多数決で決める?」と似たフレーズで「うなずきんで決める?」があります。意思決定支援ツール『うなずきん』に話しかけると「うんうん」と頷いてくれるので、自分の都合のいいように話しかけて使うんだけど、たまに頷かない(首を左右にふる)時がある。うちのチームに3個くらいあります。

うなずきん NatureVer. Green

うなずきん NatureVer. Green

 

おまけのおまけ

うなずきん以前の意思決定支援システム(懐かしい)

 

*1:間違ってはいないけどヘンテコで難しいやつにされる可能性がある

何かを始める時に『やめどき』を決めておく

2019年が始まって1か月半が過ぎようとしています。『今年の抱負』のようなものを設定しなくなってからだいぶ経つのですが、今年は50才を迎える記念すべき年なので、何かひとつ新しいことを始めたいな!と思っています。

始めるより終わりにするのが大変

何かを始める時ってそれなりに労力が必要です。始めてからそれを継続するのも大変なんですけど、一番大変なのは(途中で)やめる時です。自分(たち)でやるぞ!と決めたことをやめるわけですから、多少の痛みを伴います。でも痛いのは嫌なので無意識に避けてしまうのか、なかなかやめられないんですよね。

やめどきがわからない(わかりづらい)ケースもありますね。ダイエットなどは目標体重があるので比較的わかりやすいと思いますが*1、チームの風通しを良くするために朝会を導入します!みたいなケースです。風通しが良くなればいいのですが、どうなんでしょうか。

『やめどき』を決める

うちのチームでは、何かを始める時に『うまくいったらどうなるの?』(風通しが良くなるとどうなるのか、どんな良いことが起きるのか)について話します。それと一緒に『やめどき』を決めておく場合があります。最近だと新しい技術に対する調査がそうだったかな。まだ誰も正解を知りません。「調査は明日までね。そのあとはまた考えよう」ー うまくいってもいかなくても「明日まで」というのがとても重要です。これがないと永遠に…ということはないでしょうけど2、3日なんてあっという間に溶かしそうですよね。

朝会の話に戻ると「1か月限定」でやってみるのはどうでしょうか。1か月やったらおしまいです。で、チームのメンバーから「どうしても続けたい。私たちには朝会が必要なんだ!」という声があがったら、また「1か月限定」でやってみるのです。こうすれば(それほど風通しが良くなったわけでもないけど、朝会自体は悪いことではないし…)と、その効果に疑問を持ちつつも何となく続ける、ということがなくなります。

『やめどき』を決めておいたほうが良いケース

  • はじめてやるもの
  • 正解がわからないもの
  • ゴールが設定しづらいもの
  • 効果がわかりにくいもの
  • 難しそうなもの
  • やること自体は悪くない(むしろ良い)もの
  • とりあえず始めようとしてるもの
  • 熱中してしまうもの
  • ずっとやる(継続できる)と思っているもの
  • やりたくないけどやらないといけないもの
  • やりたいけど躊躇してしまうもの

 

『やめどき』を決めておくと「やめる時の労力がゼロ」になるだけでなく「何かを始める時のハードル」もちょっぴり下がるような気がしませんか?…というわけで、私も1か月限定でやってみようと思います。体幹を鍛えたい。まずはプランクから!

Nike Training Club

Nike Training Club

  • Nike, Inc
  • ヘルスケア/フィットネス
  • 無料

*1:実はダイエットってやったことがないのであれですが、目標体重になってからもダイエットは続くのでしょうか?体重を維持するためには続くのかもしれませんが、それはダイエットとは言わないのだろうと思い「やめどきがわかりやすい」一例として挙げました。→ 調べました。ダイエットとは「健康または美容上、肥満を防ぐために食事を制限すること。転じて、何らかの方法で減量すること」だそうです。この記事では「目標体重になった。これ以上は減量したくないのでダイエットをやめる」ため「やめどきがわかりやすい」ということにします。(脚注は便利なのでどんどん使っていきたい)

お客さまから見た『落とし穴』という視点

近所のBOOKOFFで仕事関連の専門書を購入しました。ウルトラセール中(全品20%OFF)*1で、定価4,000円(税別)の本がBOOKOFF価格で510円、さらに20%OFFの408円でした。

デジタルイメージングの落とし穴 CT&MRI編―CT・MRI検査の進め方とスキャンテクニック

デジタルイメージングの落とし穴 CT&MRI編―CT・MRI検査の進め方とスキャンテクニック

 

近くに医療系の大学があるので毎回わくわくしながら専門書のコーナーを覗くのですが、これは私の中での専門書(医学系)部門ベスト3に入るくらいの掘り出し物!新年から縁起が良いです。

f:id:miwa719:20190104075703j:plain

f:id:miwa719:20190104075507j:plain

20年前に発行された本ですが、医師や診療放射線技師(以下、お客さま)が本当にやりたいこと、目指したいものは基本的には変わってないように思います。本のタイトルにもありますが、これまでお客さまから見た『落とし穴』という視点では考えたことがありませんでした。同じものでも視点が変わると違って見えたり(ああ、そういうことだったのね)と理解が深まったりします。とても楽しみです。

専門的な内容ですので読んだからすぐに分かるというものでもありませんが、医療の現場でお客さまがどのようなことを懸念している/していたのかを知り、落とし穴に落ちないよう(技術で落とし穴自体を塞げるなら塞ぐような*2)手助けがしたいです。テストの合間の休憩時間などを使って1年かけてゆっくり読んでいこうと思います。

*1:BOOKOFFウルトラセールは1月1日〜1月4日です

*2:難しい問題は今でも残っているかもしれないし、20年経った今だからこそ実現できるものがあるかもしれない

自分のiPhoneの電話番号が覚えられなくてカッとなってApple Watchアプリを作りました

テスト中にいきなりアプリがクラッシュしても、直前に操作していた内容や手順を11個くらいまで遡ることができるのに、自分のiPhoneの電話番号(11桁)を覚えることができません。

自分のiPhoneに電話をかける状況になったことはないのですが、飲食店などに電話をして予約する際に「では、ご連絡先をお願いします」と言われる時があって困っていました。

毎回こんな感じで対処しています

  1. そばに誰かいる時は「私の電話番号を電話帳から探して表示してお願い!」と頼む
  2. お店の方に「あの……もしかしてナンバーディスプレイとかで表示されてないでしょうか…?」と聞く
  3. もうどうしようもないときは自宅の固定電話の番号を伝える*1(そのあと家に電話して事情を話す)
  4. 「折り返しこちらからご連絡しますのでー」と言われたときは最悪で 3. の方法も使えないので、事情を話し一旦電話を切りどこかにメモしてからもう一度電話する


先日、娘(大学院生)がその犠牲者(1.の方法を使った)になりました。電話を切ったあと娘から『通話中でも電話帳から自分の電話番号を表示して相手に伝える方法』を教えてもらいました。教えてもらったというか強制的に教えられたのですが、手順が難しくてスマートにできそうもありません。(間違って電話を切ってしまうんじゃないかと不安になる)*2

自分のiPhoneの電話番号を表示してくれるApple Watchアプリを作りました

Apple Watchのホーム画面からアイコンをタップすると自分のiPhoneの電話番号を表示してくれるアプリです。それだけです。せめて自分の電話番号くらいはAPIから取得するかーと思ったのですが、調べたら難しそうなので諦めてハードコード(Labelに直書き)しました。1行もコード書いてない。

stackoverflow.com

Apple Watchのホーム画面からアイコンをタップします。

f:id:miwa719:20181230151750j:plain

自分のiPhoneの電話番号が表示されます。これでもう安心だ。

f:id:miwa719:20181230163251p:plain

アイコンはフリー画像から見つけました。電話といえばこれだなと思って。画像からアイコンにするのはいつもここで作ってます。画像を指定すると iOSiPhoneiPadApple Watch)とAndroid用のアイコンを作ってくれます。とても便利です。

f:id:miwa719:20181230171659p:plain

makeappicon.com

 

開発環境

  • Xcode 10.1(Swift 4.2)
  • iOS 12.1(まだ 12.1.2 にアップデートしてない)
  • watchOS 5.1.2

*1:自宅の電話番号は40年くらい同じだし何度もダイアルを回してかけていたので暗記している

*2:テストでは11個くらい手順を覚えられるのにな

違和感のつかまえかた

ソフトウェアテスト #2 Advent Calendar 2018 - Qiita 24日目の記事です。

qiita.com

はじめに

医用機器(自社製品)のソフトウェア開発に従事して、あと数年で30年になります。うち15年くらいはプログラマー、現在はテスターとして日々奮闘中です。

私は開発現場で感じるちょっとした『違和感』を大切にしています。風邪のひきはじめに「なんとなくだるい」「鼻がツンとする」「喉が痛い」「寒気がする」というような違和感を感じた時、症状がひどくならないよう行動を変えるのではないでしょうか。それと同じようにソフトウェア開発の現場で感じる違和感も『注目すべきシグナル』と捉え、活動のきっかけにしています。

この記事では

  • 何を見て違和感をつかまえているのか
  • 違和感をつかまえやすくする工夫
  • 違和感をつかまえたあとのこと
  • 違和感をつかまえるために知っておくと良いこと

について記載します。どれも私の経験に基づいたものであり、思考法や認知心理学のような専門的な話は一切ありません。気楽に読んでいただけたらと思います。そうそう、風邪をひかないように前もって何かをすることも大切ですが「予防」のような話もありません。いくら気をつけていても風邪をひいてしまうことはあるよね、という前提です。

本題に入る前に

ところで「違和感を感じる」という表現は、日本語としてどうなのでしょうか。この記事を書くにあたり、はじめに違和感を感じたのはそこでした。せっかく『違和感』について書くのだから、違和感なく読める文章を書いてみたいと思ったのです。「頭痛が痛い」のような表現は明らかにおかしい感じがしますよね。そこで『重言(二重表現)』を調べてみたのですが、いろんなご意見があるようです。この記事の中での「違和感を感じる」は「重言(二重表現)ではない」ことにして書き進めたいと思います。自分なりの解釈は脚注 *1 にメモしました。

何を見て違和感をつかまえているのか

私が何を見て違和感をつかまえているのか(その兆しも含めて)一部を列挙します。どれもチームや製品に対して解決すべき課題や問題が見つかったものです。皆さんは普段どのような周波数で違和感をつかまえていますか?

朝会やディスカッションの場で

  • 同僚の様子(顔色、声のトーン)がいつもと比べてどうなのか
  • 話している内容がわかりづらい
  • 聞いたことに対しての答えが直球で返ってこない
  • 「仕様なんで」
  • 「ずっと前からそういう動きになっています」
  • 「今回のは大したことない変更なんで」
  • 誰かの作業を待っている
  • 自分に関係ありそうなことなのに黙って聞いている
  • 「全部やりました」
  • 正しそうなことを言っている

チケットを見る

  • 書いてある内容がわかりづらい
  • 文章が長すぎる
  • 変更内容にプログラムの断片やコミットしたファイル名しか書いてない
  • 一見すると文章だがよく見るとプログラムを日本語にしただけ
  • 作業中(実装中)とだけ書いてある
  • 仕切り直しが多い
  • ずっと調査している
  • なかなか手をつけない(後回しにされる)チケット
  • 作るものに対してテストケースが少なすぎる/多すぎる
  • うまくいきすぎている

コミットログを見る

  • 変更した内容に対して変更したファイルが多すぎる
  • 1日に同じファイルを何回もコミットしている
  • 金曜日の朝の時点では苦戦していたはずなのに帰る間際にコミットしてる

製品を見る

  • 昨日と比べてどうなのか
  • 操作を間違えてしまう(スムーズに操作できない)
  • 速すぎる
  • もっさりしている
  • 一瞬だけど応答が遅くなった
  • 一瞬だけど表示がチカッとした
  • うるさい
  • 疲れる
  • 揃いすぎている数値(719.000 のような数値)
  • ディスクアクセスランプがやけにチカチカしている

自分自身を見る

  • 時間を忘れてテストしている(ものすごく楽しい)
  • 後回しにしたことがある
  • 焦っている
  • 退屈、つまらない
  • 眠い
  • いらっとした
  • スッとした

違和感をつかまえやすくする工夫

この記事の執筆中に 秋山浩一さん @akiyama924 と何度かメッセージをやりとりしました。*2
その中で

  • 違和感をつかまえやすくする工夫
  • 違和感に対する感性を高める工夫

があるのではないか、という話しになりました。狙いを定めて何かを仕込んだり試したりするのはこの記事の範疇ではないのですが、狙ってないけどいつも無意識にやってることがきっかけで違和感をつかまえられているとしたら、それが『工夫』なのかもしれない。

いつもならこんなことはしないけど(だって無意識にやっていることだから)ほぼ日手帳に『狙ってないけどいつも無意識にやってること』を書き出してみました。書き始めてから数分で1枚に書ききれなくなってしまい(なにかおかしいかも…)と違和感を感じ、書くのをやめて秋山さんにメッセージを送りました。

f:id:miwa719:20181214124015j:plain  

f:id:miwa719:20181217230204p:plain

『狙ってないけどいつも無意識にやってること』を(なぜ、それをやったのだろう?)と見つめ直してみると、その根底には(こんなことが起きたら嫌だな)という思いがあります。その思いは「過去に見た問題や不具合や自分の失敗」からくるものが多いのですが、中には説明がつかないものもあり、それはどこから舞い降りてくるのか自分でもわかっていません。

今回は『狙ってないけどいつも無意識にやってること』『無意識に思っていること』を抜粋して載せます。なぜそれをやるのか(何を心配しているのか)はあえて書かないでおきます。 *3 なぜなら、私はこのような断片から想像することが好きだからです。突拍子もないことを思いついてしまったり、意識化できていないこと(暗黙知)を引き出せるような面白さがあります。

なぜこんなことをするのだろう
過去にどのような問題があったのだろう
うちの製品に対してこれをやるとしたらどんな問題が見つかるかな
《テストしてみる 》
そういえば、全然関係ないけどずっと前にこんなことがあったよね
あれはどうかな

《テストしてみる 》
うわあああ、ちょっと何やってるんですか!!(プログラマーの悲鳴)

もう一つの『違和感に対する感性を高める工夫』については、いつか別の記事で書きたいと思っています。

狙ってないけどいつも無意識にやってること、思っていること

  • 遅いPCで動かす(低スペックのもの)
  • いつもと違う順番で起動する
  • 起動直後は特別な状態である
  • 何日間も電源を落とさないで動かす
  • PCのシステム日時を23時55分に変更していつもと同じように動かす
  • たくさんデータを登録した状態で動かす
  • ひとつもデータがない状態で動かす
  • 古い装置で生成したデータを使う
  • 新しい装置で生成したデータを使う
  • いつも使っているデータを使う
  • いつも使っていないデータを使う
  • 壊れたデータを使う
  • 壊れたメディアを使う
  • 設定ファイルがいつも読めるとは限らない
  • タスクマネージャでリソース状況を見ながら動かす
  • モニタの電源をOFF→ONする
  • 他のダイアログ(メモ帳など)をかぶせて動かす
  • 放置する
  • ダイアログボックスで「どうする?」と聞かれてもすぐには選ばない
  • テキストボックスで(やってることがありすぎるので省略)
  • ラジオボタンはどうにかして2つ以上選ぼうとする
  • ドロップダウンリストは下から選ぶ
  • 常に何もないところをクリックしている
  • ゆっくり操作する
  • 素早く操作する
  • 何度何度も繰り返す
  • 両手を使う
  • 手と足を同時に使う
  • 「しばらくお待ちください」と言われても大人しくお待ちしない
  • 制限を突破しようとする
  • 接続しているものを外す
  • OSで定義されているショートカットキーを押す
  • 雷が鳴っている時は瞬電を期待している(瞬電が嫌そうな機能を触る)
  • エラーが起きた時さらに別のエラーを起こそうとする
  • ログファイルを見る
  • ログファイルを全部削除してから動かす

この記事を同僚(テスター、プログラマー)が読んだら(ああ miwa がいつもやってるわ)と思うのではないでしょうか。テストはこれとは別にやるので、ここに挙げたのは『工夫』というよりは『習慣』に近いかもしれません。

違和感をつかまえたあとのこと

せっかく違和感をつかまえたのに(そういうものなのかもしれない)と勝手に納得して無かったことにしてしまったり、気にはなるけど明らかな問題(バグ)でもないしなぁと、何となくそのままにしてしまうことってありませんか?

違和感の中には「気にしすぎ」も当然ありますし、今の製品には「マッチしていない」場合もありますね。他の人も同じように違和感を感じているけど大人の事情で「今はそういう実装」になっているものもある。開発の終盤でこんなことを言ったら(いまそれ言う?)(いちいちうるさい人だな)と思われるかも…とかね。なんとなく表に出さないままにしてしまう状況は少なからずあると思います。

でも、あとから問題が発覚して(ああ、あの時の違和感がそうだったんだ、みんなに話しておけばよかった…)と思うんですよ。勿体無いよね。違和感に申し訳ない。だから言いづらいなと思う違和感ほど誰かに伝えるようにしています。杞憂であったとしてもそれはそれでいいのです。『これは仕事だから仕方ない』と思うと躊躇せずに言えるようになります。このフレーズはいろんな場面で使えるので便利です。違和感を自分ひとりのものにしておかないのがポイント。だいぶ気が楽になりますよ。

声に出す

違和感を感じた瞬間に首を傾げたり、小さな声で「ん?」「あれ?」「いまのなんか変だったよね?」と声に出します。これをやると何も言わないときと比べて『違和感を無かったもの』にしづらくなるのがよいです。私の異変に気がついた同僚が「なになに?」と興味を持ってくれることもあります。

観察する

違和感の正体を明らかにするために、どこに違和感を感じたのか、なぜおかしいと思ったのかを考えたり調べます。観察した結果をほぼ日手帳にメモするときもあります。小さな違和感ほど時間の経過に伴ってその感触が薄れてしまうので、違和感を感じた瞬間に(いまのあれはなんだ?)を考えるようにしています。

そういえば、この記事を書きはじめたときに「違和感を感じる」に違和感を感じたのですが、なぜそう感じたのかを考えたり調べました。これと同じですね。

同僚に話す

観察した内容をチケットに書いたり、朝会や朝会の二次会で話題にすることもあるのですが、それよりも先に同僚に話すことが多いです。同僚はどう思うのか、同じように違和感を感じるのかどうなのか。違和感の正体がわからなくてもよいので話します。

もしあなたのチームや組織だと(個人で感じる違和感レベルのことは)そこまで真面目に受け取ってもらえる風土がないと思うのでしたら、まずは違和感を交換しあえる同僚を一人作ってみてはどうでしょうか。二人で感じる違和感なら話しやすいよね。*4

違和感をつかまえるために知っておくと良いこと

いつもの状態を知る

『何を見て違和感をつかまえているか』にも書きましたが「いつもと比べてどうなのか」「昨日と比べてどうなのか」から違和感を感じているということは「いつもの状態を知っている」「昨日の状態を知っている」ということになります。いつもとの差分=違和感となるのでしょうね。風邪のひきはじめも同じで「いつもの自分の状態」を知っているから感じることができます。製品やチームもこれと同じですね。当たり前だけど重要なことだと思います。

練習ではなく実戦で

私は中学高校と6年間卓球部に所属していたのですが(女子シングルスで県チャンピオンになるくらいの腕前だったのでまあまあ上手なほうだと思います)

  • 練習すれば獲得できる技術
  • 実戦(試合)を重ねることでしか獲得できない技術

があります。後者は相手の動きと打ち返されたボールを見た瞬間に様々なことを判断して反撃するようなテクニックが必要になってくるのですが、違和感をつかまえることもこれに似ています。ソフトウェア開発の現場でより多くの違和感をつかまえられるようになりたいと思うのなら、練習ではなく実戦(本物)でやることを強くおすすめします。瞬発力を鍛えよう!

疲れているときは違和感をつかまえられない

これは言葉のとおりです。違和感をつかまえられないというより、いつものパフォーマンスで仕事ができないのは困るので1時間に1回は休憩を取るように心がけています。たまに熱中し過ぎる時もありますが Apple Watch が異変を感知して「スタンド」を強要してくるので安心です。8時間も仕事したら疲れるので残業もほとんどしません。

おわりに

ソフトウェア開発の現場で感じる違和感をテーマに

  • 何を見て違和感をつかまえているのか
  • 違和感をつかまえやすくする工夫
  • 違和感をつかまえたあとのこと
  • 違和感をつかまえるために知っておくと良いこと

について記載しました。

いろんな周波数を使ってつかまえたちょっとした『違和感』を大切にしながら、今後もより良い製品を丁寧に作っていきたいと思います。

*1:『重言(二重表現)』の例としてよく挙げられる「馬から落馬する」などが「漢字」の重複を含むために「文字」の重複を二重表現だと誤解されることが多いが、二重表現とは「まだ未解決」「すべて一任」「あらかじめ予約」のように「意味」が重複する表現のこと。例えば「体操着」は「衣類の名称」であって着るという動作自体の「意味」は含まれない。そのため「体操着を着る」と言っても二重表現にはならない。「違和感」もこれと同様で「違和感」は「感じの名称」であり、感じるという動作の「意味」は含まれない。よって「違和感を感じる」は二重表現にはならない。「歌を歌う」「舞を舞う」なども同じ。どうしても気になる場合は「違和感がある」「違和感を覚える」「違和感を抱く」「違和感に気づく」のように違う言葉で置き換える方法もある。この記事の内容だと「違和感に気づく」でも良さそうではあるが、私の感覚だと「気づく」よりも早く訪れるのが「感じる」であり、別物である。今回は「感じる」ことに拘りたいので「違和感を感じる」を使用することにしました。

*2:今回のお題は Twitter経由で秋山さんからいただきました。どのようなことが知りたいのか興味があったのです。

*3:次回のとちぎテストの会議 #toteka で話してもいいけど、わかりづらいことを延々と聞かされる辛いセッションになります(私だけがものすごく楽しいやつです)

*4:チームや組織は概念で実体は自分です。風土は自分たちで作ろう!