奇特なブログ

「殊勝に値する行いや心掛け」を意味する、奇特な人になる為のブログです

技術に対してどういったスタンスで接するか等々

えっと、先日から思うところが多々あるテーマなので、ちょっと書いてみたいと思いまして。

あと、「とても大事なテーマ」でもありますしね。

だって、ココ間違えたら「自分の好きな技術ばかりをプロダクトやサービスにぶち込むだけの技術オナニー野郎」になってしまうと思いますから。

いません?クライアントやエンドユーザーのニーズを何も考えずに、ただ「流行っているから」とか、「この方が効率的で使い勝手良いから」ってのをユーザーのユースケースやユーザーストーリーもロクに考えずに作ったりする技術者とか。

 

でも、この辺「技術とは、一体何の為にあるのか」って所だと思うんですけどね。

技術って、「ITのシステムを作って、利益を上げる為の問題解決の手段」なんだと思うんです。

でも、こう言うと、一部(でもないですかね、今でもまだ)の技術者は「コイツは技術を軽視している、そんな簡単な事じゃないのに」という話になりがちなんですよね。

いや、まぁ「その話はその話で別に間違っているわけじゃない」と思うんですね。

僕も技術者(他の人格もあるけど、全部ペルソナだと思う)ですから、過去の「技術で辛かった」経験を思い出してみますと、

「KVS(具体的にはRedisですが)をパフォーマンス重視という側面でだけで使った結果、データの正当性に問題が生じた」なんてのも。

振り返ってみたら、そりゃあそうですよ。

だってRDBMSでいう「トランザクション」使えないんですから、異常なデータになった時にロールバックしたり出来ないわけですし。まぁ、Redisにもトランザクションという機能があるにはあるんですけど、DBの専門家さんに教えていただいた所、「データをロールバックする仕組み(クラッシュリカバリ)がないとトランザクションとは言えない」ということでして。

 

ここら辺、詳しくは、以下の本にも書いてありましたけどね。

 

www.amazon.co.jp

 

なんか、当時を振り返ると、もぐら叩きでいうとバグがもぐらみたいで、もぐらを叩いても叩いても収まる気配がない感じでしたね。

原因としては、「設計(データの流れとかライフサイクルとかも結構大事かなぁと)」とか「対象技術の適切な使い方を知らなかった」とかがあったなぁという認識なんですけど。

で、前者は単純にスキルの問題もあったかと思いましたけど、ただ後者については周りの技術者も・・・誰一人気付いていなかった?(特にそういった話が出ていた記憶はないですね)かと。

まぁ、僕もその時点では気付かなかったです(っていうのは失態ですね)けどね。

 

ということで、上記の「技術ってそんな簡単な事じゃないのに」っていうのは、上記事例を見てもまず間違いのない所ではあるんですけど、

とはいえ「その技術って、どういう問題を解決する時に適切な技術か」ってのも、やはり同時に考えておかないと、「対象技術の不適切な使い方」をしてしまい、上記の様な形になってしまっても無理はないとも思うんですよね。

 

霞食って生きていけるならともかく、「技術を自分の自己満足を満たすためではなく、お金にする」って観点がないと、生きていくのも大変だと思いますし、今後はこの辺の観点が無いと厳しそうにも感じますね。特に、若い人ならともかく、中堅(年齢も含めて)以上のエンジニア(って僕もですけど)は特に。

 

他に、ビジネス展開に合わせて技術の使い方を変えるってのだと、例えば以下とか。

 

・作ってすぐ捨てたり、拡張性を考えていないシステムなら、プログラムのメンテナンス性に拘る必要はない

 

まぁ、ビジネスであんまりそういったケースも無いとは思うんですけど、例えば僕のHP上の以下の二つのサービスは、特に拡張性とか考えてないので、プログラムのメンテナンス性に関しては「グダグダ」だったりしますし。

 

ツイート整形&並べ替え

ツイッターの仕様だいぶ変わって、動かなくなってるかも)

 

自作版Hit&Blowトップ

 

・演出の一環として、ダイアログをスローモーションでゆっくり出したい場合などには、速度はむしろ遅い方が良い

 

速度って、基本的には「速い方が良い(レイテンシが重要というのもありますし)」のは勿論なんですけど、特にBtoCでかつ「娯楽系」のアプリなんかだと、「演出が重要」って部分もあると思ってまして、で、演出において「逆にゆっくりの方が良い」ケースも多々あるなぁと最近感じてまして。・・・ゲームやってて時々感じる時ありましてね。「臨場感」とか「迫力」とかそういった部分だと思いますけど。例えば、ホラー系で「ジワジワ」と恐怖を感じていくとか(笑)あと、ペルソナ2(に限らないと思うが)で、ボス戦の時だけは、もっとゆっくり戦闘に突入させた方が「ココぞ感」がより増して、より良いんじゃないとか。

 

話を戻して、そういった上記の様な事もあると思うので、ビジネス展開やサービス内容に応じて、技術の使い方を考えるっていうのが大事だと思うんです。・・・ココは、何年経っても変わらない気がしますね。

 

とりあえず、本題についてはココまでで、後は最近のエンジニア界隈の記事についての感想を。

 

hiroki-uemura.hateblo.jp

 

現在バズっている?この記事。

色々思う所ありますけど、「ちょっとしたバグの調査であるテーブルのレコード数を調べるのにも、発行するSQL文を添えた作業依頼書を承認リレーする必要がありました」って所が一番気になりましたね。これ、多分技術者に対する「信用」の問題だと思いますし、あと「どういった技術者なら信用出来て、どういった技術者なら信用出来ない」って所についての考察が不十分って所なんだと思いますね。仮に僕が採用側に立ったんだったら、信用出来そうにない技術者に対してなら、上記の様な事を要求するかもしれない・・・という以前に、そもそも採用しない気もしますけどね(苦笑)

 

blog.yuyat.jp

 

こちらも色々ありますけど、「仕事は問題解決の連続」って所が、この記事の本題にも当てはまる話だと思いますね。あと、UNIX哲学は、以下の本に詳しく書いてあります(すごい良書)けど、久々に読み返そうかなぁと。

 

www.amazon.co.jp

 

yuuki.hatenablog.com

 

ブログって、常々「頭の中でモヤっとしている自分の考えを整理する為に書くもの」だと思ってますから、「書くこと(講演で話すことも一緒)で、自分自身のスキルアップにつながる」と思いますけどね。

 

engineer.typemag.jp

 

半分ぐらいは同意なんですけど、ちょっと極端かなとも同時に思いましたね。

ココ、ポイントとしては、以下リンク先の様な「ギークとナードの違い」があるんだと思ってまして、この記事でいう著名人の方々は「ギーク度合いが強くて」、他の多くのエンジニアは「ナード度合いが強い」って事だと思うんですね。

 

gigazine.net

 

だから、ナードの方が技術力が高いってのも分かるっちゃ分かるんですけど、かといって「技術やサービスに関して、非技術系の人々に伝えるエバンジェリスト的な役割」の人もいないと、「技術がどれだけ難しくて大変なことなのか」とかを理解していただくことも出来ないと思いますし、そこについて非技術者の方々の理解が進んだから、エンジニアの価値が以前に比べて上がった部分もあるんじゃないかとも思ってみたり。だから、単なる役割分担の話でしょうと。個人的には、もう少しナード要素を増やしたいなぁとは思いましたけどね。

 

あと、根本的な話として、「ギークでもナードでも、結局オタクだろ?でも、オタクは嫌いなんだ」っていうのは、色々と終っているとは思いますね。エンジニアに限らず、「専門家って本質オタクよ?」だと思いますから。

 

あともう一つ、「プログラマーが技術力を高めることに重きを置き過ぎると、会社やプロダクトへの貢献とかけ離れてしまう可能性が出てくるということ」とありますけど、まさにこれが、今回の本題とモロに関係がありまして、「技術をお金にする」って観点が抜けているって事だと思いましたね。

 

・・・結論としては、中々厳しそうだって所ですね(苦笑)