マンガ・ロジスティクス・エフ

漫画とロジスティクスとFの話をします

「ぶっきらぼうな人」と言われて

よく、エンジニアのコミュニケーションは怖い、と言われることがある。率直で、矛盾を許さず、必要なことだけを言う姿勢が、そのような印象をもたらすのではないかと思う。一方で、エンジニアとして6年ぐらいやってきたが、エンジニアの仕事は常に「何が問題かを明らかにする」「そのための最適な解決方法を考える」ことなので、そういう言い方になるのだろうな、と思う。


おれは最近、同僚から「いちいち会話の中の矛盾を指摘しないでほしい。矛盾なしで話をするのは無理だし、それに気づくのも会話の役割だから」ということを言われた。

しかし、おれとしては会話の中に矛盾や不明瞭な部分があると間違った前提で会話が進んでしまうので、それは避けたいと思っている。もっと言うと、矛盾に気づけるぐらい丁寧に話を聞いているし、そうやって何が課題なのかを明らかにしたいと思っている。おれも同僚も、お互いに話したいことがある。解決したい課題がある。それは同じはずなのに、ちょっとした言い方で上手くいかないことがある。


いわゆる「ぶっきらぼうな言い方」をする人がある。周りの人は「あの人はぶっきらぼうな人だけど、悪い人じゃないから」と言う。おれはそういう人がもったいないと思う。その人と初めて話した人は、みんなその人から威圧感を感じたりする。嫌われているんじゃないかという印象を持ったりする。そしてそのたびに、周りの人は「そういう人じゃないんだよ」とたしなめたりする。みんな大変だ。

だけど、今回初めて「ぶっきらぼうな人」の側に回ったことで、おれはそういう人の気持ちが理解できた。「ぶっきらぼうな人」は、別に人が嫌いなわけじゃない。コミュニケーションが苦手なわけでもない。ただ、その人に出来る一番丁寧な言い方をしていて、それが伝わらないだけだ。


おれは、どんなときも自分に出来る一番丁寧なコミュニケーションをしているつもりだ。そして、丁寧に話しているのだから、相手にその気持ちが伝わっていると思っている。

でも、そうじゃないこともある。おれにとって丁寧だと思っている「問題を明らかにする行為」が、相手にとっては「問題があったことを責めている」ように捉えられたりすることもある。相手は「責められている」と思っているので、「人を責めるようなことをするときはもっと気を遣って!」と言ってくるけど、おれにとってはただただ丁寧にしているだけなのだ。


相手をおもんばかって、表現の仕方を変えられればそれがベストだ。でも、いつもそう出来るかと言われると、そんなことはない。それに、おもんばかったからと言って、それがいつも伝わらるとは限らない。おじさんが若者に合わせて話そうとして「若者にフランクに接したら、ウザい、セクハラだと言われた」なんて、どこででも聞く話じゃないか。

だから、結局やらないといけないのは表現の仕方を変えることじゃなくて、相手を信頼することなんじゃないかと思うのだ。「攻撃的な言い方をしないで」と要求する代わりに、「この人は自分とコミュニケーションを取ろうとしている」と信じることが重要なんじゃないかと思う。

もちろん、受け手だけが疲弊しながら頑張る必要は無くて、話し手も受け手が意図を受け止めやすいように工夫しないといけないと思う。でも、どちらかだけが工夫するのはコミュニケーションじゃない。コミュニケーションは共同作業だから、お互いがお互いのことを考えないと成り立たない。


言葉は便利だが、同時に難しくもある。文化が違うならなおさらだ。Twitterを見てれば分かるが、同じ日本語を話しているからといって、同じ文化圏にいるとは限らない。結局、おれたちが共有しているのはほとんど語彙と文法ぐらいなんじゃないかなと思う。

コミュニケーションは言葉と言葉で成立することが多いけど、実際に交わさないといけないのは言葉じゃなくて人格なんじゃないかなと思うことがある。言葉を通して、お互いのことを理解するのをコミュニケーションのゴールにすると、もうちょっと世の中は上手く動くんじゃないかな、なんて思ったりはする。

Ultimate Hacking Keyboard V2 を買いました

ultimatehackingkeyboard.com

Ultimate Hacking Keyboard というイキった名前のキーボードがある。真ん中からパカッと割れるタイプの分割型キーボードで、割ったところにアタッチメントとして拡張キーやトラックポイントなどを付けられるという、名前に違わぬUltimateなキーボードだ。

もともと2015年頃にクラウドファンディングで開始されたプロジェクトで、パッカーたちがキーボードを受け取れたのはなんと2019年……それも、予定されていたアタッチメントは付属せず、本体とパームレストのみが送られてきた。

ここだけ聞くとなんだか典型的な失敗プロジェクトみたいだが、面白いのがここからで、アタッチメントの発送の前にキーボードの新バージョンを発表した。それがタイトルにある V2 だ。V2は2020年11月ごろに発表され、自分は2021年2月ごろにオーダーした。

さて、今は2022年1月の終わりである。オーダーから実に11ヶ月を経て、ようやくこのキーボードは自分の手元にやってきた。まだ2日ぐらいしか触っていないが、すでに 𝓔𝓷𝓭 𝓰𝓪𝓶𝓮 の予感がしている。

特徴

アタッチメントとトラックポイント

一番目を引くのは、上述したアタッチメントによる拡張だろう。ポインティングデバイスとして以下の3つが用意されている(本体と別に購入する必要がある)。自分はトラックポイントを選択した。

トラックポイントを搭載したメカニカルキーボードは非常に少なく、台湾 TEX Electronics 社の製品や ARCHISS Quattro TKL ぐらいだ。

tex.com.tw

archisite.co.jp

トラックポイントを採用するデバイスでは、多くの場合真ん中のボタンでスクロールが出来る。UHKの場合は、レイヤーによってトラックポイントの挙動を変えられる。

  • Baseレイヤー: ポインタ移動
  • Modレイヤー: スクロール
  • Fnレイヤー: カーソル移動

Fnでカーソル移動出来るのが面白い。広範囲をカーソル移動するのにぴったりだ。欲を言えばShiftと同時押しで文字列選択が出来ると良かったのだが、そこまでは対応していないようだった(勘違いだったら教えてほしい)。

トラックポイント、シンプルなデバイスに見せかけて、たまに質の悪いものに当たることがある。止めたい場所でうまく止められなかったり、軸がブレていてフラフラ動いてしまったりする。本家本元のThinkPadでも安めのモデルだとあんまり操作感が良くない(※個人の感想です)。

これまた主観だが、本機のトラックポイントは非常に質が良いと感じた。止めたいところでピタッと止まるし、力を込めればたくさん動かせる。残念ながら、現時点ではポインタやスクロール速度の調整には対応していないようだ。自分はOS側の設定で調整している。Macの場合は、トラックパッドとマウス(トラックポイント含む)の設定は異なるので、Magic Mouseなどを使っていない限りはこれで特に問題ない。

ところで、トラックポイントにつきものなのが ドリフト だ。これは「触ってないのに勝手にポインタが動く」現象で、トラックポイントの構造上どうしようもないものとされている。筆者のUHKでも数回起きているが、ThinkPadなどの他のキーボードと同様、しばらく触らなければ勝手に直る。

ちなみにUHKのFirmWareにはドリフトに関するIssueが立てられており、そのうち根本解決するのかもしれない。前述の通り、ドリフトはこれまでトラックポイントにはつきものの悩みだったので、もしファームウェアレベルで直せるのであれば革命的な気がする。

配列

配列はいわゆるRow-Staggared、普通のキーボードと同じものだ。ちょっとおもしろい点として、スペースキーの下にもスイッチがついている。ここはキーボードのスイッチとは異なり、マウスのようなカチカチとしたスイッチだ。少し固めなのであまり使う機会はないが、マウスの右クリックをアサインしている。

レイアウトはUHK Agentというデスクトップアプリケーションで変更できる。さほど変わったところはないが、設定を直接ファームに書き込めるのが非常に便利だと感じた。他社のものだとクライアントがWebベースで作られていて、直接ファームの書き換えとかまでは出来ないことが多い。その場合はWebから設定ファイルをダウンロードして、別のデスクトップアプリでファームを書き換えることになる。特に使い始めのころは、試行錯誤しながらレイアウトを頻繁に書き換えることになるので、手数が少なくてすむのは純粋にありがたい。

キーキャップとキースイッチ

キースイッチはCherry互換のものが使える。購入時にいくつかの選択肢の中から選べるが、PCBソケットがついており、購入後に交換することもできる。

キーキャップは刻印ありのものとなしのものが選べる。もちろん購入後に好きなものを選んでもいい。

余談だが、キーキャップの手触りがすごく良い。どうやらPBT Double-shotらしいのだが、そこそこ厚めに作られているらしく(測ってないけど)、かなり好感触。

打鍵感

良い。安物のメカニカルキーボードにありがちなバインバインとした反響音も無く、タイプしていてとても気持ちいい。

スイッチ以外にキータッチに影響する要素を良く知らないのだけど、プレートが金属(多分)なのが関係してるのだろうか?

何でこんなに時間かかったの?

冒頭で述べたように、オーダーから到着まで1年近くかかっている。量産体制がなかなか整わなかったり、半導体不足のあおりを受けたり、試作品の品質に満足行かなかったり、という理由のようだ。これまでの経緯はブログに記載されているが、金型からキーキャップまで、かなりのトライ&エラーを繰り返している。

ultimatehackingkeyboard.com

充分な試行錯誤を経たこともあってか、出来上がってきた製品の品質は非常に高かった。使っていてストレスを感じるところがほとんどない。 上述のトラックポイントの使用感の話も含め、かなりこだわって作られているのではないかと思う。

ちなみに、今注文すると5月ぐらいに届くらしい(ホントかよ)。欲しい人は早めに注文しておくと、忘れた頃に届くと思う。ちなみに、V1は最終的には注文から1週間ぐらいで届くようになっていたらしいので、V2も量産体制が整えばそのぐらい早くなるのではないかと思う。

まとめと所感

これまで使ってきたメカニカルキーボードの中ではいちばん良かった。長く使えそう。

プログラミングの入り口として自動テストは有効か

毎週、Twitter SpacesとDiscordで交互にテスト自動化の話をしながらランチを食べる会というのをやってるんだけど、この中でプログラミング経験の無いテスターが自動テストを覚えるのはプログラミングの技術を学ぶ上で有効かという議題が盛り上がった。

その場で出た意見は次のようなもので、概ねハードルが高いという意見で共通していたと思う。

  • 自動テストは開発技術を転用したものなので、普通に開発スキルが無いと厳しい
  • 自動テストだけ覚えてもプロダクトの品質向上には寄与しないことが多い
  • 自動テストライブラリのシンタックスを覚えただけでは足りず、一般的なプログラミングスキルは当然必要になる
  • 初めてのプログラミングの対象がブラウザなのはつらそう
  • 自動テストはマイクロサービスとして捉えたほうが良い

以下は自分の意見。

モチベーションの重要さ

プログラミング経験が全く無い人が、自動テストからプログラミングに入門するのは大変そうだな、というのはその通りだと思う。特にE2Eでは、操作対象がWebブラウザやモバイル実機ということもあり、それらに対する知識がどうしても必要になってくる。期待する結果を得るまでに会得しないといけない知識と労力が見合わないと感じることもあるかもしれない。

ただ、ハードルが高いということが、すなわち入門対象として不適切とは言えなさそうだな、とも思った。例えば、ゲーム作りはそこそこ難易度が高いプログラミングだと思うが、本当に作りたいと思うものがあったり、優れたゲームプログラマーになりたいのなら、頑張って覚えると思う。

新しいことに挑戦するときに、覚えることが多いのは当たり前だ。エンジニアなら、何かをしようとしたときに、予想の10倍ぐらい新しいことを覚えないといけないことが多いと思う。それでも、学ぶことを諦めず、常に挑戦することで、優れたエンジニアになれるのだと思う。

自分の例で言うと、社会人3年目のときにExcel VBAで業務を自動化したのがプログラマーとしての入り口だった。VBAもまた、初学者にとってあまり親切とは言えない言語だったし(Basic、てついてるのにね)、Excelもまた複雑怪奇なインターフェースを持っていた。覚えることが無数にあり、「変数」「配列」といった基本的な概念が理解できず、そこで何ヶ月も費やした。学び始めてしばらくは、覚えることの量に対して、達成できるものがあまりに少なく、非常に実入りの少ないものだった。それでも、目の前の仕事を効率よくしたいという強い情熱があったので、根気よく取り組むうちに出来るようになった。何より、Excelそのものは自動化が面倒な類のものではあったけど、自分自身は普段の業務でExcelに慣れ親しんでいたし、コマンドプロンプトに比べれば間違いなくとっつきやすかったはずなのだ。

プログラミングに限らず、何か新しいものを学ぶときは、今の課題感や解決したい問題に対する直接的なアプローチになるようなものを選んだほうがいい。そのほうが今持っている業務知識をフルに活かせるし、モチベーションが高いから継続して取り組める。

モチベーションが薄いと、どうしても効率を意識してしまう。例えば、できるだけ新しいことを学ばず、難しい部分を回避しながら進めようとしてしまう。これは、何かを実現することが目標なのであれば良い姿勢なのかもしれないけど、当然知識として身につくものは少なくなってしまう。

なので、ハードルが高かろうがなんだろうが、学びたいと思ったものを学ぶのが結局一番効率が良いのだろうなと思う。好きこそ物の上手なれっていうしね。

自動化を覚えた先

それはそれとして、自動化を入り口にしたとして、その先に何が待ち受けているのかは整理しておいてもいいだろう。

例えば、ここに一人のテスターがいるとする。彼は自分の普段やっているテストを自動化するためにSeleniumシンタックスを覚え、見事にその業務を自動化した。おめでとう!

これが品質に寄与するかというと、自分はほとんど寄与しないと思っている。彼はあくまで彼の仕事を自動化しただけである。よく言われるテストだけでは品質は上がらない法則の自動化バージョンだ。実際に品質を高めていくには、その先に進む必要がある。先に進むために必要な技術がある。アプリケーション開発の技術だ。

例えばテスタビリティ。自動テストは、ある程度書き進めていくと、非常に自動化が困難な箇所に出会うことがある。このような箇所は、自動テスト側だけを工夫してもどうしようもない。アプリケーションに新しいインターフェースを追加したり、適切な抽象化を行うなどして、よりテストしやすくする必要がある。

インターフェースという言葉が出てきたが、自動テストとは特定のインターフェースに対して行うものなので(実際は自動か手動かに関わらないけれど)、そのインターフェースに関する知識や、良い設計についての知識、経験がどうしても必要になる。もちろん、単にテストしやすいだけが良いインターフェース設計ではない。

つまり、冒頭のテスターが自動テストを覚え、それによって品質を向上させようとするならば、必然的にテスト以外の開発技術が必要になるのだ。テストの技術を学び、自動テストの技術を学べばそれでテストエンジニアとして完成ということはない。むしろ、テストに詳しい開発者になるぐらいの気概を持って望んだほうが良いと思う。

別の視点として開発者から見た自動テストについてはテスターもよく理解しておいたほうが良い。テスターは「完成品をテストする」という流れに慣れてしまっている。これはつまり「自動テストが無い状態での開発は安全ではない」という肌感を持たずに自動テストを書いているということだ。TDDのような「作りながらテストする(テストしながら作る)」流れを経験したり、あるいは自動テストが無い状態で複雑なものを変更する経験をすれば、異なる視座で物事を見られるはずだ。

品質を上げる手段はテストだけじゃない

いま、QA・テスターというロールはすごく注目されていて、いろんな会社で一人目のQAを募集していたり、テストを専門にする会社が並の開発会社よりも良い条件でテストエンジニアを採用していたりする。

一方で、これもよく言われることだけど、品質やテストという言葉で表されるものが幅広すぎて、採用する側・される側でミスマッチが起きがち、という話も耳にする。QAを必要としている会社は、間違いなく品質に課題感を持っていて、それを解決するためにQAを募集している。たいていはQAが入ることでテストの網羅性を上げたり、品質文化の醸成なんかを期待している。でも、実際に必要なのはそうではない可能性がある。

場合によっては、品質を上げたり、安心して開発できるようにするために必要なのはテストですらないこともある。普通に既存のバグを潰していったり、その過程でユニットテストを拡充させたほうが良いこともある。仕様を整理することからスタートしたほうが良いこともある。監視やアラートを入れる必要もあるかもしれない。開発者が品質にコミットできないようなプロジェクトマネジメントになってるのかもしれない。

「開発者がユニットテストを書いてくれない」というのはQAエンジニアから良く聞く悩みでもある。書いてくれない、という言葉が出るということは、QAがユニットテストやそのテスト対象について良く知らず、それゆえに書くように説得することも出来ない、ということだ。逆に、自分としてはそういう提案や説得もQAがどんどんやっていくべきだと思っている。品質を上げる手段はテストだけではないので、品質のプロたるQAはそうしたテスト以外の武器も持っておくべきだ。

おわりに

テストは、学習や理解のためのアプローチだと言われることがある。テスターは日々の業務でテスト対象のプロダクトとしての仕様や振る舞いについては良く理解しているはずだ。その知識をテコにして、プログラミングを覚え、自動テストを覚えるのは効果的だと思う。

一方で、プログラミングの文法を覚えただけでは良いコードが書けないのと同様、自動テストの書き方を覚えただけで良い自動テストは書けないし、効果も上がらない。

世の開発者たちは、コードが複雑になりすぎないよう、ドメインの複雑さを紐解いてシンプルにコードで表現することに日々全力を注いでいる。テスターもまた、同じことをテストというフィールドでやっているはずだ。開発者とテスターのそれぞれが複雑さに立ち向かわないと、ソフトウェアは堅牢にならない。堅牢にならないということは、つまり求めている品質を満たせないということだ。

開発とテストは表裏一体、分けようと思っても分けられないものなのだけど、なぜか分かれてしまっていることが多い。分かれている状態を正しいものと思わず、きちんとあるべき姿に戻さないと高い品質のものは作れないことが多い。自動テストを覚えたい、プログラミングを覚えたいと思うテスターは、そのあたりを意識しておくと良いのではないかと思う。

水澄まし、雑用、マルチ・ポテンシャライト

物流業界には「水澄まし」という業界用語がある。これは、作業場における物の流れをスムーズにする役割を指す。例えば、荷物のサイズを事前に仕分けしておいて、大型の荷扱いが難しいものを別のレーンに投げたりする。あるいは、納品された荷物のダンボールを事前に切っておいて、作業場でカッターを使うシーンを減らすようなことがある。これらは全体の業務効率を上げたり、作業の安全性を高めたりするのに役立つ。

この「水澄まし」のような仕事は、たいてい事前の計画には入っていない。事前の計画に基づいて作業の導線を設計して、いざ作業がスタートしてから必要になるものだ。作業場全体を見渡して、どこにボトルネックや事故の可能性があるかを見ながら、必要な支援をダイナミックに行う必要がある。それぞれの仕事は、特定の誰かの担当にするには小さすぎることが多い。必然的に、全体の効率を考えながら、そういう細かい仕事を拾っていける人が必要になる。

おれが物流業界を離れて随分経つけど、それからどんな職場で働くときも、つねに「水澄まし」として働くようにしてきた。とはいえ、その名前が通用するのは物流業界だけなので、大抵は「雑用係」を自称してきた。蛍光灯を取り替えたり、オフィスのLANケーブルを這わせたり、端末のキッティングをしたりしてきた。開発会社なのに開発者が誰も居なくなってしまった時には代わりに開発をして、お名前ドットコムのレンタルサーバーをAWSに切り替え、Gitでバージョン管理を始めた。あるいは、スタートアップでQAをやったり、E2Eテストを書いたりした。営業もやったし、クレームも受けたし、客先でデバッグしたりもした。おれにとって、そういう全てが愛すべき「雑用」だった。

どんな組織にも、必ず誰もやりたがらない仕事があるし、誰も拾わないボールがある。そういう仕事に名前を付けて、意味を見出し、誰かが専属で担うような大きな仕事にするのがおれの仕事だと思う。そうやって色んな事を程々に出来ることが、自分のプロフェッショナリズムだと思っている。


ところで、最近『マルチ・ポテンシャライト』という本を読んだ。

マルチ・ポテンシャライト 好きなことを次々と仕事にして、一生食っていく方法 | エミリー・ワプニック, 長澤 あかね | 自己啓発 | Kindleストア | Amazon

(リンクテキストに「一生食っていく」「自己啓発」などのワードが並び治安が悪いが、大変良い本)

興味がコロコロ変わり、特定の専門領域に縛られない仕事の仕方をする人たちについての本だ。いままで、ジェネラリストとか、飽き性みたいな呼ばれ方をしていた人たちにマルチ・ポテンシャライトという名前を付け、彼らの中にもいくつかの種類がある(例えば、連続起業家のような「フェニックス」タイプや、一つの会社でいろんな役割を果たす「グループハグ」タイプなどだ)ことを明らかにし、そしてそういう働き方に特有の悩みや壁を乗り越える方法について書いてある。

この本の素晴らしいところは、いろんなことに興味を持ってしまう人が、その特性をどうやって仕事にして、食べていくかに着目しているところだ。サブタイトルもそのまま『好きなことを仕事にして、一生食っていく方法』となっている。だから、単に「世の中一つのことを突き詰めるだけじゃなくて、いろんな働き方があるよね」という説明だけじゃなく、マルチ・ポテンシャライトのための生産性システムや、マルチ・ポテンシャライトとして働く上でありがちな不安なんかについても書かれている。

読み終えて、おれはなぜ色んなことに関心を持ちがちなのだろう、なぜ雑用が好きなのだろうということを考えた。そして冒頭の水澄ましのことを思い出した。つまり、業務プロセスでもプロダクトでもサービスでも何でもいいんだけど、そのサイクル全体がどういう目的を持っていて、どうすればその目的を満たすきれいなサイクルを作れるのか、そのために今何が足りないのかを考えて、足りないところに自分が入るのが好きなんだと思った。

マルチ・ポテンシャライトは、世の中のさまざまな側面を学ぶうちに、それぞれのテーマが互いに関連し、影響し合っていることに気づき始める。視野が広いので、一つの分野を深く理解しているスペシャリストが見逃しがちな、システム全体の問題に気づける。そして、ある選択がほかの部門に影響を及ぼすことを知っているから、事情をよく理解して思いやりのある解決策を生み出せる。

一方で、オフィスの蛍光灯が切れているとき、ほとんどの社員たちはそれに目もくれず、一部の優しい社員が直しているような会社のことを考えた。蛍光灯が一つ切れたぐらいで対して仕事には影響しないし、それを変えたところで給料に差は出ないだろうけど、そういう細かいところに継続的に手を入れていかないと職場環境はどんどん悪くなってしまう。そういう細かいところに気づいて直してくれる人は貴重だし、そういう人がいると職場の雰囲気は明るくなる。

でも、その人に甘えてばかりでいいんだろうか?それは「全体最適」につながるんだろうか?「なんでも二つ返事でやってくれる人」がいることで、いろんな面倒ごとがその人に押し付けられて、組織自体は何も良くならないようなことをたくさん見てきた。

結局、雑用係を自称している限り、雑用は雑用のままなんだなというようなことを思った。雑用係がいる限り、雑用そのものがスケールし、それを前提とした組織構造になってしまうのだろうなと思った。スペシャリストたちが自分の仕事に集中するために、様々な細かい面倒事が押し付けられるところだ。おれはあんまり大きい会社で働いたことはないけど、会社が大きくなればなるほどそういう部署が出来る可能性があって、たぶん「総務」とか「庶務」みたいな名前がついてるんだろうなと思う。


ただ雑用を引き受けるだけじゃ組織は何も変わらない。その雑用の中から仕事として切り出せそうなものを探して、組織全体を良くするためのパーツとして整理し、それを専門職のチームとして成り立たせることが必要だ。

そういう仕事は、全体を見渡せる人じゃないとできない。同時に、それはただ「マネージャー」という肩書きを持っているだけでも出来ない。もちろん、ただの雑用係にも出来ない。幅広い経験と、それに裏打ちされた高い視座を持ち、全体のことを考えながら組織に新しい役割を作れるような人でないと出来ない。 『マルチ・ポテンシャライト』は、そういうことを考えさせてくれる本だった。

JaSST Online の実行委員をやります

JaSST Online の実行委員をやることになりました。2021年7月31日に開催される、JaSST Online Cloverではパネルディスカッションのモデレーターを務めます。

jasst.jp

今回のテーマは「アウトプット」、つまり技術(知識)の発信です。プログラミングなどの開発ナレッジと比較して、テストに関するナレッジは比較的発信する人が少ないように感じています。特に、テストコード「以外の」テストについて、例えばZennとかで語られるケースは非常に少ないです。

その理由の一つに、テストによって得られる知識や経験がドメインに密結合しがちで一般化が困難なことがあるのではないかと思っています(おれの抽象化技術が低いだけかもしれない)。あるいは、抽象化したテスト観点などの知識が所属企業の資産として扱われ、それを共有すること自体が情報漏えいとみなされるケースもあります。

一方で、ブログや漫画やポッドキャスト、はたまた勉強会での登壇など、様々な形で知識をアウトプットし、業界やコミュニティ全体の向上に貢献している人も多いです。もともと所属する企業や組織で大きな成果を挙げていて、その経験を元に執筆している人もいます。あるいは、アウトプットの成果が高く評価されて、会社を作ってしまうに至った人もいます。

おれ自身も、Qiitaに書いたちょっとした記事がたまたまバズったのがきっかけで、いろんな人と知り合ったり、良い転職先に巡り会えたりしました。自分が書いたものが、自分自身の助けになったらそれはうれしいことだし、もし人のためにまでなったらそれは最高に最高なことです。


JaSST Onlineは2020年から始まった新しいシリーズで、今回のCloverが3回目になります。他のJaSSTは JaSST'21 Tokyo のように年を付けるのが通例ですが、JaSST Onlineは年に複数回開催するため、年ではなく花の名前を付けています。

今回、Cloverという名前に決まったのは、Cから始まる花が意外と思いつかなかったのと、クローバーの花意外とかわいいんだよ、ということと、ソフトウェアテストに関するナレッジシェアリングが加速して、それこそクローバーのように足元を埋め尽くして、たくさんの四葉が出て欲しいなーという思いからです。

別にブログ書いたりポッドキャストやったり漫画書いたりしないと良いテストエンジニアになれないと言いたいわけじゃないけど、それによって得られるチャンスは大きいし、もし興味がある人がいたらどんどんやっちゃえばいいじゃん、と個人的には思っています。

「興味はあるけど、始めるためのあとひと押しが足りないんだよなー……」みたいな方、ぜひ奮ってご参加ください。参加申込期限があるので気をつけてね!

仕事を辞めてプログラミングスクールに通おうとしてる人に伝えたい3つのこと

別にプログラミングスクールに限った話ではないと思うのだけど、将来への不安からスキルを身に着けるために学校に通い直す、みたいなのはよくある話だと思う。

自分も何度か検討したことがあったけど、結局そういう選択肢は取らなくて、普通に独学で勉強して、今ではソフトウェア開発者として生計を立てている。

会社は辞めないほうがいい

何かを始めるとき、所属している組織(会社でも学校でも何でもいい)を抜けて、新しいことにフルコミットすると「一念発起して始めた」という感じが生まれるのでテンションが上がるのだが、辞めて得られた時間を全部新しいことに使えるかと言うとそうでもない。

なんでかというと、新しいことを始めるのは思ったよりエネルギーがいるからだ。新卒3ヶ月とかならともかく、3年目とかにもなれば、業務のほとんどはルーティンワークになっているだろう。時間あたりの消費エネルギーは、新しいことを学ぶより格段に低いはずだ。その時間を前提に、将来の学習時間を見込むと、期待はずれのことになる。

つまり、こういうことだ。仮にいまの会社が長時間労働体質で、1日14時間とか働いているとする。会社を辞めたら、その14時間をまるまる学習に使えるだろうか?実際のところ、慣れた職場、慣れた仕事で過ごす14時間と、新しいことを学ぶ14時間は全然違う。大抵の人はそんなに集中力が持たない。

なので、一念発起するなら、会社を辞めるのではなく、スキマ時間で勉強するという方向で頑張ったほうがいい。プログラミングに限った話で言えば、無料あるいは少額で学習できる教材がそこかしこに転がっている。思い切った選択肢を採るのはそういう教材を一通り試してみてからでも良いと思う。

もちろん、退職によって解決出来ることが多い(パワハラ上司から逃げられる、長時間労働から脱出できる)のであれば退職しても良いとは思うが、それは別にスクールに通い始めるのとセットではなくてもいい。普通に転職して、同じ条件でゆるめの会社に行こう。

いきなりプログラミングにジャンプしない

先にタイピングとWordとExcelを覚えよう。

プログラミングは問題解決の手段としては高コストな部類に入る。高いITリテラシーが必要で、一つの物事を成し遂げるのにたくさんの知識と作業時間を必要とする。ハイスペックなパソコンも必要だ。セキュリティホールがあった場合には、それによって一般ユーザーに迷惑をかけてしまったり、場合によっては訴訟に発展することもある。

世の中の大抵の仕事にプログラミングは必要ない。ポータブルスキルが欲しいなら、ブラインドタッチとWordとExcelを練習しよう。世の中にはそれすら出来ない人間が大勢いるので、それだけでかなりの差別化になる。

おれの最初の上司は、一本指打法で、30分かけて、5行の日報を書いていた。新卒で入った会社の給料が安かったのは、そういう社員に合わせてベースラインを引いていたからだ。ブラインドタッチが出来て、ちょっとしたExcel関数が使いこなせれば、同じ仕事内容でも給与レンジが高い会社に入れる。

今出来ることを大切にしよう

「転職したいけど、転職できるだけのスキルが無い」と思ってる人に是非知ってほしいことがある。それは、間違いなくあなたにはスキルがあるということだ。無いと思っているのは、ただの思い込みだ。

あなたの勤め先が、そのビジネスで金を稼げているということは、顧客はあなたの仕事に価値を見出しているということだ。あなたの仕事がいわゆるマックジョブ、つまり誰にでも出来るようマニュアル化されたものだとしても、そのマニュアルを使って仕事をして、顧客に価値を届けているのは、他でもないあなた自身の手だ。

良くある勘違いとして、「うちの会社はまだ紙とペンで仕事している。大企業ではこんな泥臭いことはしていないはずだ。この会社での経験は他の会社では何の役にも立たない」というのがある。

実際には、大企業も含めてほとんどの会社に紙とペンでの業務が存在する。FAXだって現役だ。歴史ある企業ほど、20年以上前に大枚払って導入した社内システムから抜け出せずに、そのまま使い続けていたりする。

随分脱線したけど、要するに、スキルを難しく考えないこと。あなたが「無駄だった」と思っているその経験は、意外と世の中で重宝されるものなのだ。

もし、それだけじゃ自信が持てないというのなら、上に書いたような一般的なIT技術からまず身に着けていき、それらを使って今の仕事を効率化できないか考えてみよう。更にその先、もっと効率の良い方法を模索する中で、プログラミングという手段があることを思い出してみてもいいと思う。

 
 

2021年元旦やったことまとめ

開発

デスクトップアプリを作ってみたいなーと思い、Electronを触ってみたりしていた。 qiita.com

NextJS x TypeScript x ElectronでTodoアプリを作ったり。

github.com

TypeScriptが良く分かってないので、 TypeScript Deep Dive を今度読む。

食事

板餅/イタモチ | 板餅(包装餅)専門店/(株)渡英商店

正月はここの餅を食べてた。妻がレンズ豆のぜんざいを作ってくれて、玄米餅を入れて食べてた。おいしかった。

漫画

flowers.shogakukan.co.jp

面白いけど、ちょっと欧米への憧れが強すぎる。ミステリにおける登場人物の葛藤や人間関係を強引に

「僕は常々思っているんですが……欧米ではこのように……」 

で解決している。主人公自身は海外生活経験者ではなさそうなので、Twitterで見た欧米の知識を使ってカウンセリングしてるみたいだった。