ITエンジニアの視界

35歳を超えてもエンジニアリング領域で生きるITエンジニアの見たもの感じたことを発信していきます。

プログラミング中。

先日ソースコードを登録したサイトにはリクエストの機能があります。 そのリクエストに「文章禁止文字があったらエラーになる」というリクエストがありました。 2017年に登録されたリクエスト。登録された方も気にしていないでしょう。けれど2件のLike(Facebookのいいね的な)のが付いていました。

「これならイメージつくな」と感じました。 リクエストの言語種別もJava。 手を動かし始めています。

リクエスト通りであれば文章の中に文章禁止文字があればエラーになる。それだけで良いはずです。 けれど仕事上ではあまり役に立たなかったプラスαをしたくなりました。 ユーザから「文章がエラーになる。どの禁止文字がどの位置にあったのかわからない。教えてほしい。」といわれたらどうなるか気になったのです。 「どの禁止文字がどの位置にあらわれたかを知りたい場面があるはずだ」と。 それがわかるような作り方をしました。

さらにリクエストの内容が気になりました。「この人はプログラムに組み込みたいわけじゃなさそうだ。ツールとして使いたい?」と。 そのために画面を作る必要を感じました。 仕事上でもJavaGUIを作る場面はありませんでした。知識は少しあるものの実践経験はない類です。 ちょっと躓いただけで諦めそうになりました。「どうせこんなの」と思って匙なげかけました。 ちょっと頑張って検索して事例を探してみたらできそうな感じがしてきました。

GUIはなんとかでき、あと一つ機能を組み込んだらソースコードを登録サイトに登録しようと思っています。 これも売れないでしょう。けれど、登録したらまた少し充実感が得られるかもしれません。 そう思うとちょっとワクワクします。

プログラムソースコードを販売サイトに登録した。

プログラムソースコードを書いてみました。 処理の進捗ダイアログでプログレスバーを表示するという簡単なもの。 それをソースコード販売サイトに登録しました。

きっかけは、プログラムのソースコードを販売するサイトを知っていたこと。何年か前に知ったサイト。 そのサイトは国内向けに始まったのだけど、あまり活性化していないのか海外路線にシフトしたような感じでした。 仕事でプログラミングをしていたかったけど、そんな機会は実際にはほとんどなく、今ろくでもない状況に。 そのサイトを知った時には、そんなサイトは流行らないだろうから登録だけして放置していました。 今日はそのサイトにすごく簡単なプログラムを作って登録してみたのです。

きっと売れません。でも、なんだかやりたいことができた気がしなくもないです。 今日を振り返れってみると

  • 買ったが全く使っていなかったOffice 365のExcelで初めて成果物ができた。
  • ソースコード販売サイトに登録していたアカウントを復活させることができた。
  • ソースコード販売に必要なPayPalアカウントを復活させることができた。
  • ソースコード販売サイトに初めて成果物を登録することができた。

となんだかできたことがありました。

30分程度で書いたプログラム。 プログレスバーなんていうニッチで、実装してるなんて見たことのない機能。 仕事上でも使うことなんてなかった無駄知識。 それでも「ユーザにとって進捗表示は欲しいものだよな」と思っていた機能。 今日、ソースコード販売サイトに登録しました。

前頭葉のモヤモヤはありますが、何かできたと思えてよかったです。

これまでを振り返ってみる。

今日は仕事っぽいことをしながら、降ってくる仕事に慌てふためくばかりでした。 とにかく優先順位がつけられない。前頭葉あたりがモワモワしてしまって、左腕の肘が体に吸い付くような形で緊張してしまう。そんな日でした。 何も自信がもてない。前向きなことを考えてみようと思ってみるけれど「嫌だなぁ」となってしまう。

昔はこうだったのかをふと思ってみた。 25歳くらいで挫折したことを思い出しました。仕事ができなくて会社に行く途中足が止まってしまったのです。上司に泣きついてしまいました。 30歳くらいにも、上司と相性が合わないというか人間関係で悩んで、受け入れられないことに涙を流してしまいました。 40歳の今日、前述のような状態で上司に泣きつきました。実はその前に一旦会社の外に出て何か気分が晴れるかもと外を歩き回ってました。 こう振り返ると、毎度毎度後ろ向きなことをしていると思います。情けなさを感じます。

20歳で社会人になったころに思っていたことも思い出しました。 「どんな仕事でも楽しさを見つけられる人は強い」 少し眩しいと思える言葉でした。今は素直にそれに共感できないことでまた悶々としています。このことに自分自身が落ち込むような悪循環。

40歳まで会社に勤めさせてもらっているということは、何らかの成果をだして認められてきたのだという認識はあります。 私は部署内ではプログラミングや技術的な部分が他の人よりも得意だと思っていました。それに沿った仕事もさせてもらってきました。 今は部署内の事情もあり、仕事を回す系の業務を期待されています。これが辛い。

40歳にもなって馬鹿馬鹿しい話ですが、仕事をこなすことはできても回すことができないんです。 悩んで抱えてしまう。悩みたくも抱えたくもないのに。 技術的なことは理解ができても、そうでない多量で読解力が必要なものには上手く対応できていません。 今はメンバーがフォローをしてくれています。こんな私にも相談をしてきてくれています。 上手く応えたいと思うも、そうできない自分がアップアップしている情けなさに現実から逃げたくなります。

情けない話

今「仕事ができない」人になっている。そうなってしまうんじゃないかと不安。他人から直接何か言われた訳じゃない。皆が忙しくしている姿に漠然と不安を抱いている。自分がそんなに仕事したくないと思っている。追い込まれたくない。安心したい。安心していると感じたい。

思い返せば何年も仕事に不安を持ってきた。ことあるごとに不安にさいなまれてきた。涙を流したこともある。時間が解決してくれた体験から、今さら変わることへも不安になって現状を続けてきた。

これから大きな仕事がある。頼れる人が居なそうで、自分に何か降って来てしまうのではと不安。悶々とした状態から抜け出したい。気持ちが楽になりたい。

馬鹿だから馬鹿を馬鹿にしたくない

会社でキャビネットのカギがなくなったと聞いたので、一人で騒いで探しました。結局カギは見つかって良き良き。

何処にあったかというと、カギ入れてるバインダーに入ってたんです。探してたカギはちゃんと入ってたんですよ。位置がずれて。それに気付かず、確認もせずに「ないない!」と騒いだ訳ですわ。馬鹿ですよね。

 位置がずれてなかったらこんなことにはならないよな?と思ってメンバーに話してみたんです。そしたら笑われちゃって。「騒ぐ前に確認すれば済むでしょ」って。馬鹿ですよね。私。

そんな馬鹿は自分で騒ぐことをしたくないんです。上に見られて気に留められたら面倒。チェックリストだの承認だの月次週次で確認だのと面倒臭いったらありゃしない!

なので、鍵のバインダーに鍵に合わせてシール貼ったんです。順番になるように色を合わせて。日本人の多くは「揃っているものや整然と並んでいるものには揃え並んでしまう習性がある」ってのを聞いた事があったのでやってみることにしたんです。どうなることやら。上手く機能すればいいな。

 

大人は管理したいって思って頑張って指示してチェックして「やらせる」のに苦労してるの良く見ます。私はやらなかったり漏れたりするので迷惑かけてます。そんな私は「馬鹿だな」って思うんです。「やらせるなんて努力しちゃって」って。

管理ってのは管理してることは重要じゃないんです。目的は管理されてることで管理することじゃないから。要は「馬鹿を説得して更正させるやめて、罠にはめて管理しろよ」っえことです。こう言うことを言うと「管理の大切さを知るのも大事な勉強」って言う人がいるんですが、「馬鹿に言っても何言われてるのかわかんないから無駄。その立場にならないと響かない。管理させるのは目的じゃないだろ馬鹿め!無駄なことはやめろ!」って思っちゃいます。

管理すること、管理に時間が割かれることで安心だか満足だかする大人がいて、そんな大人が「コストダウンだ!業務効率化だ!」って言うんですから辟易します。管理するために人が動くことこそ、生産性がない無駄の極みなのに。

管理は大事。管理させるのは無駄。管理業務を減らすことが一番効果的な活動だよね。

 

CoinhiveがNGなのは「利益が設置者にしかない」からかもね。

Coinhive騒動。有罪。これは悪しき判例なのか。 www.itmedia.co.jp

Coinhiveで家宅捜索の一見を耳にしたときは「なんだそれ?何が問題なのよ?」と率直に思いました。いろいろな人が反応を示し、家宅捜索の根拠からJavascriptのライブラリを読み込む前にいちいち確認するようなサイトまで出て、Web系に携わるエンジニアを中心に大騒ぎになりました。裁判の結果は有罪。法律に抵触したと司法が判断したのでNGは確定。この判決に憤慨する人たくさんいると思います。

そんな中ですが、なんでそんなことになったのかを考えてみたんです。判決の理由は公開されれば見えますし、そこで明らかになるんですけどね。

Coinhiveって広告を表示させることなくマネタイズができる手段。悪しき広告が表示されず、利用者が必要としている情報だけ提供できる素敵な手段だと思った。けど、これが落とし穴だったと思うんです。 法律上、他人のPCのリソースを勝手に使用してOutなのだというところですが、Coinhiveの方法だと「利益の所在がはっきりしてしまう」から起きたことなのでしょう。

広告は、利益の所在がはっきりしません。少なくとも二者、普通三者に利益の所在が発生します。「広告主」「運営者」「閲覧者」の三者です。広告主は広告を掲載することで取引機会を得られます。運営者はアフィリエイト報酬にて利益を得られます。問題は閲覧者で、悪しき広告では不利益を被るのですが、閲覧者によっては利益を得る機会にも成りえます。広告であれば三者が利益を得ることできるので不利益になるケースは限られます。「広告が悪しき広告」「閲覧者が広告を不要感じて消したいと思う」のがその例になります。Coinhiveの設置はこの不利益を防止するのに対して効果的な手段となります。しかし、一方で「広告主」「閲覧者」は機会を得る場を失うことになります。不利益を得なくなる一方で利益も得られなくなるということです。

Coinhiveのマイニングは、広告サイトで閲覧者が得る不利益を防ぎつつ、運営が自力で収益を上げサイトを維持できる一方、広告主や閲覧者が広告から得る利益はなくしてしまいます。そういう場が醸成された中で、運営者が閲覧者の同意なく閲覧者のPCを使ってマイニングを行い運営費を得るというのは、運営者のみが利益を得ることになり閲覧者の持つ労働力の搾取をしたということになる。そういう理解を私はしました。

「閲覧者からの同意が得られれば良い」についても、Javascriptの読み込みをいちいち確認するサイトのアプローチ(確認を取ればOKだろ?なやり方)は効果的ではないのでしょう。なぜなら、「金が必要なら、有料サイトという例があるのだから、その手段でマネタイズをするのが、情報とその対価の取引として健全である」と言われれば反論が難しいからです。Coinhiveのマイニングは、従量課金ではなく従量報酬方式だからです。閲覧者がサイトを開いていれば、閲覧者に利があろうとなかろうと運営者は利益を得てしまう。これは情報提供にたいする対価とは言いづらく、搾取のほうが体としてしっくりきてしまいます。コインパーキングに車を停めるとき、車を停めて置けるから利用者はお金を払って自分の車を停め、従量課金に従う。自分が住まない部屋を借りる(見ないサイトを開いておいとく)として、そうするのは部屋の居住権を持っているからこそ家賃を払う。どちらも利用者に利益や理由がありますが、Coinhive設置サイトにはこれら利益や理由が当てはまらない。

CoinhiveがNGなのは「利益が設置者にしかない」から。経済活動における等価交換(いや、対価交換・不等価交換のほうがマッチする?)の原理に反する度合いが限度を超えたレベルでOutだったのだと思います。

警察や検察の「技術に対する理解が足りない」という指摘をするエンジニアもいましたが、「そういうことではない」のでしょう。

コミュニケーション能力という害悪

タイトルがよろしくない。

趣旨は「大事なのは相手の主張の意味と意図をくめることだよ」です。

コミュニケーション能力という言葉が出てきてしばらく経って、伝える方面の流行に始まり傾聴が大事だとか言う話になってきたなと、風の便りから思うわけで。コミュ障的で自分にコンプレックス持ってた私は、ふと思ったのでした。極論、この手合いの話はクソだなと。

とかくエンジニアの話は分かりにくい。分かりやすくしようと比喩を交えたところで分かりにくい。結論から簡潔にと要望を受けて端的に結論から言うと、経緯がわからんし理由もわからんと言われ、理由を説明するも2,3理由が続けば難しいと言われる。これはコミュニケーション能力の問題か?伝える能力の問題だろうか?だろうな。下手くそなんだ。

ではない。この事が示すのは、「それは題材自体が、本質的に複雑で、正しく簡潔には説明ができないもの」だということなんだね。そうわかった。

人ってのは、ものを理解する時には自分の持ってる知識と経験を使うはずで、それ以外は情報や体験が必要だよね。平易に言えば、前提知識が必要な題材はその知識を得てからじゃないと理解できないってこと。当たり前ってね?

日頃を振り返って欲しい。説明を受けてわからないことがあったらどうしてるか。本当に必要なのは何か。伝え上手でも聞き上手でもいい。行動なんて見かけや体裁は些細なこと。

自分が話し手の意図をくめてないときの、話し手が口にする、自分の意に反する意見・呟きを軽視しちゃならない。それは、話し手の方が自分よりも知識や経験を持っていて、危険だと言っている警告に他ならない。

コミュニケーション能力なんて言葉に踊らされるな。「相手の主張の意味と意図をくみ取る」事ができなければ、伝え方も傾聴も価値を持たない。行動論や性能のようなコミュニケーション能力というのは、本質に対して害悪だ。そう思う。

エンジニアリング領域において、簡潔とは本質をストレートに言うことと等しい。枝葉がなく幹だけだから見栄えが悪いが、例外を除く枝葉の説明を包括する。もし、エンジニアが答えた質問の回答を簡潔に言い直させて納得したなら、気をつけた方が良い。きっとあなたの課題解決にはまだ障害がある。

システムは突き詰めると0と1の二択の世界だ。人どうしが融通して課題解決できるような柔軟性は、そもそも存在しない残酷で正しい世界なのだよ。