gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

正のスパイラルと負のスパイラル

直接の考察のきっかけとしては…先日書いた「MACアドレスでの認証があずましくない理由 http://d.hatena.ne.jp/gallu/20130606/p1 」の元ネタになった事象が「実際に発生した(ギリギリ、辛うじて回避。厳密には"わずかに回避しきれていない可能性"があるのだけど、対応不能ではないレベル)」状況と、もしこれを「おいちゃんが突っ込まなかった」場合の惨事の予想とその時の彼らの行動と…その辺を一式シミュレートしたあたり。
その辺を起点にして、以前から思っていた事を、まとめてみようかなぁ、っと。


割と見かける負のスパイラルから。
基本的に「学習/勉強は、必要になるまでしない」で、よく発生します。以下、実際に「売るほど腐るほど」見ているケースから、要約。


その1:言われた
今まで知らない「これをやって」を言われて、慌ててググります。
とりあえず「深く根っこや原理までを噛み砕いて理解する」ほどの時間的余裕もないので、一旦、ググって出てきたソースをコピペして、最低限のテストだけして「通らばリーチ」で仕事を仕上げます。
何事もなければそのまま「忘却の彼方」に流して終了できるのですが、修正変更問題がある場合は「とりあえず場当たりで」修正をあてます。でもやっぱり「基本思想や原理の把握」までやってる時間はないので、理解は出来ないまま「なんとなく動いているような気がするからいいかなぁ」で納品、それ以上にはつながりません。


その2:気付かなかった/知らなかった
MACアドレスがまさに(途中まで)そのケースなのですが*1
「知らないからとりあえず無知なままに実装」しますが、実際には問題がある実装なので、トラブルが露見します。
大体にして「露見したトラブル」ってのは落ち着いて修正できる時間的余裕とかないので、とにかく「対処療法考えてググって場当たりにパッチあてて」という作業に追われます。


どちらにも共通して言えるのは「時間がないので原理とか哲学とか根っことか根本とか考え方とか」っていう、本来「最も重要な」部分が、時間制約上「すっ飛ばさざるを得ない」状況で、故にすっ飛ばし、そのために時間がなくなり、時間がなくなるから学習せず、そのために場当たりの弥縫策で対処療法をせざるをえず、そのために「学習にならない」&「問題が発生しやすい」状況で、そのために時間がなくなり、そのために以下LOOP。


同じ仕事が来ても「同じように」時間を使ってしまうので、わりといつも時間の余裕がとれない。
亜種として「同じ仕事に対して同じように駄目な実装をする」と、露見した時の対応コストが半端なく、隠して「言い訳する」「踏む」「逃げる」などといった、技術者的とは言いがたい解決策のスキルがたけていくようなケースってのも以下略。


上述、完全な「摩耗ルート」で。
まぁこの場合多分、30歳とか35歳とかで「エンジニア定年」とか騒ぎたくなる程度に、体力がついてこなくなります。
もちろん「とはいえつぶしが利かないので居座っている」タイプも存在して、その場合の問題の根の深さは言わずもがなでございます。


まぁ、こんな仕事している限り、エンジニア稼業ってあんまり「面白い」仕事じゃないですわな。


で、言及しておきたい正のスパイラル(ちょっと黒い目の技付きw)。
ポイントは「なんとなく、見たなぁ」程度に記憶をしていることです。知識へのポインタ、程度が把握できてりゃOK。
いきなり言われても「…あれ? 確か、アレだよなぁ」とかなんとなく目見当つくんで、調査がそこそこ的確で、時間的余裕が少し発生します。
またコピペするにしてもコードを読む時間が取れるので、気になるところを「とりあえずマーキング」だけでも出来る & 学習が習慣になっていると、納品後にしても「気になるところを確認してみる」とか色々できます。
ちなみに「納品後に気づいた」場合、相手にもよりますが、基本的には「一旦締め切りに間に合わせましたが、この辺に気づいたのでよかったら修正したいのですが」と申し出ると、多くの場合、そんなに邪険にされないというかわりと喜ばれます。


何よりも「一度ちゃんと噛み砕いている」ので大枠の基本やら考え方やらが身につくので、次に同じようなお仕事が来た場合応用が利くので、サラっといけるか、あるいは理解が深まるので、スキルが練られてきます。


まぁまぁこんな事があるので。
もちろん締め切り大切ですしそのために「一旦ググってコピペ」を、全面的には否定しないのですが。
「きちんと事後に噛み砕く」のと、それ以上になによりも「ある程度の感度であちこちにアンテナを張る」「直近直接に関係のない事についても、広く浅く学び続ける」ってのは、実利実務に直結する「重要事項」なんじゃないかなぁ、とか思うわけですが。


どんなもんなんですかね?

*1:…あの会社、トランザクションすらまともに出来てなかったしなぁ………