LAMPエンジニアってこういうもんでしょ

こういうもんでしょって話をつらつらと

責任の所在を明確にすることとしないことの大切さ

人間というのは脆いもので
人が作り上げた仕組みのある一点においての責任を全部任せると簡単に壊れます。
その責任の重圧というのは周囲の人の生活を脅かしたり
場合によっては生死の行く末すら左右するものです。
普通に考えれば誰もそんな重たい責任は負いたくないですし
ごく当たり前の事です。
人には心があり感情があるからです。

逆にプログラミングにおいては
責任の所在を明確にしておくことで可読性、メンテナンス性の向上など
良い作用が多分に発揮されるところです。
「処理」というものをいかに標準化し
特定の範囲における責任を集中させ明確にするかということは
プログラマーの技量に関わる重要な点であると考えられます。

組織におけるリードエンジニアとして活動する中で
「責任の所在」という話を繰り返しするようになりましたが
逆に組織論の中では一切こういう話をしないなとふと気がつきました。
人が関わる部分に関しては責任を分散し冗長化し分散していく事で
特定の人の離職や休みの場合のリスクを低減させられるからです。
自分も含めて誰かがいなくても回るように仕組みを作る事が組織として目指すべき姿だと思っていますし
この考え方はインフラ設計に似ているなと思ったりします。

プログラミングにおける責任の所在の明確化は
どちらかというと軍隊のような階級組織に似ていると思います。
ソフトウェアに寄った方がハードな軍隊式で
ハードウェアに近い方がよりソフトな減退的な組織論なのは面白いところです。

最近コンウェイの法則についての考察のブログを読みましたが
エンジニア組織を作っていく上では
相反する組織論を同時に考えて行く必要があるのではないか
ということに想い至ったので酔っぱらいながら書き記したまでです。

qiita.com

 

まだまだ言いたい事はたくさんありますが
組織論みたいなものは誰しも一言があり
語り始めるとケンカになるか酔っぱらうかなので
どうかアルコールの場でじっくりと語りたいものです。
今日のところは以上です。
どうもありがとうございました。

「技術のこと教えてください」って言っている人に教えることなんて何もない

表題の通り
本日もポエムです。

友人との会話の中で出てきた話で
当たり前なのに当たり前にならないとても不思議な話だと思います。

 

何かの情報をインプットしようとした時に知識のある人から情報をもらおうとすること自体はとても良いことだと思います。
ただ、何も行動を起こしていない、自分で調べもしていない事に対して「教えてください」では、何を教えれば良いのかわからないわけです。
何を知りたいのかもどこまで知っているのかもわかりませんし、少なくとも検索エンジンがそういう場合に非常に有用な手段だという事を知らないということぐらいしかわかりません。
その場合に返す言葉は結局「ggrks」になってしまうのです。
これは冷たい返答ではなく、まず自分で調べるところから始めましょうという小学生にもよくわかる丁寧な返答です。
調べてみてわからなければ改めて訊いてみてください。
相対的に見てエンジニアの多くは技術の話が好きで教えたがりの人が多いです。
きっと必要の無い部分までたくさんのインプットを授けてくれるでしょう。

 

ここから蛇足です。
この話にはふたつの重要な要素があります。
ひとつは「能動的であるかどうか」
もうひとつは「初めの一歩を踏み出しているか」です。

「能動的であるかどうか」は知識の獲得の上で非常に重要です。
教育論を語る上でどうしても教える側のスキルに目がいきがちで
社内教育の多くは講師側の人間の技量を上げる事でうまくいくと思われている傾向があるように感じます。
しかし本当に重要なのは教育を受ける側のモチベーションだったりします。
人間の脳みそは興味のあることに対しての吸収は早いですし定着もしやすいですが
興味の無い事はほぼ覚えられないようにできているそうです。
能動的に知識を獲得しようとしている人は時間対効率が良く
受動的な人は非常に効率が悪いということです。
日本語で言い直せば
「教育を受けている人」は成長せず
「学習を行う人」はすぐに成長する、ということです。
本当に知識を獲得したいのであれば「教育を受けに行く」という行動ではなく
「調べて飲み込む」というステップの方が圧倒的に量も質も良い、ということになります。

もうひとつの「初めの一歩を踏み出しているか」の話は
ひと昔前に投資や融資の話で聞いた事がある話です。
事業の構想を持っている人が複数いる中で
素晴らしい事業を考えたけど無一文の人で5万円融資して欲しい人と
事業計画には多少穴があって100万円の貯金がある5000万円欲しい人であれば
後者の方が融資を受けやすいという話です。
これは「100万円を貯める」というステップに到達している人の方が
何もしていない人よりも信頼できる、ということらしいです。
また、綿密に練り上げられたサービスのプレゼンを上手にするよりも
プロトタイプを持っている人の方が投資を受けやすい、というのも同じ話かと思います。
何かを始める事にはとても労力がいりますが
何かを始める事ができない人には対価を与える事も応援することも難しいのです。
行動をして初めて得られるものがあるという事はビジネスの世界では常識です。
何も行動を起こしていないのに「知識をください」は当然通らない主張だとすぐにわかりますね。

 

不思議な話ですが
IT企業に勤めている人でエンジニアと業務上直接関わるエンジニア以外の職種の人で
平然と「技術のこと教えてください」と言うだけで何かを教えてもらえると思っている人が少なからずいるようです。
業務がスムーズにいくようにweb技術の基礎の話やプログラミングのワークショップなどは行う事もありますが
事業に関わる技術の領域は広く全てを伝える事は到底できません。
入口を提示してとっかかりを作ること
技術に触れる機会を増やすことが出来る精一杯だと感じています。
技術に限らず知識の獲得は、これだけ情報が氾濫している時代ですから容易なはずです。
その中で、正しい知識を精査し取り込む工程で知識のある人に教えを求めるのであれば理解できますが
能動的に動けない人には誰も手を差し伸べなくなるのは仕方ないことだと思います。

 

早く人間が働かなくても成立する世の中にならないかなと思っている末端のエンジニアのポエムでした。

「エンジニアに向いている人」ってどんな人なのか

最近エンジニアリングの教育資料をアップしているエンジニアを多く見かけるようになりました。
対象者は現職エンジニアと言うよりは、これからエンジニアになりたい人や、他職種ではあるけどエンジニアリングの勉強をしたい人、という切り口です。
システムやITというものが一般化してきて、システムやエンジニアリングに理解があった方がより質の高い生活が出来る、ということだと思います。
実際に学校教育の場でもプログラミングが必修科目になったりしていますし
時代の流れとしてはあっているのかなと思います。

ただ少し思うのは、仕事以外で関わるエンジニア以外の人は漠然と「必要になるかもしれない」という感覚はあるものの
自ら知識を取得しに行っていないということです。
エンジニアがエンジニアとして成立し続けられる理由は自ら学習し続けることにあると思いますし
それをしてこなかったエンジニアが新卒研修と現場での経験という貯金を切り崩し35歳で定年を迎えるのだと思っています。

開発業務はある意味孤独で、実験と発明と応用の繰り返しです。
過去のナレッジを使いまわせる事も多分にありますが、広い世の中から次々に新しい発明が生まれ
それを取り込めるのか、応用出来るのか、あるいは採用しないのかを日々考えながらの作業になります。
そうして作られた製品は一般化していき、ゆくゆくは「当たり前にあるもの」になっていくのだと思います。
プログラミングは日々簡単に書けるように進化していき、もうすぐ非エンジニア職の人がプログラミングをする時代になっていくのだと思いますし
その時にエンジニアリングのスキルがある事は大きなビハインドになるとは思うのですが
その一方で「新しい知識を習得し続ける」というサイクルが作れない人はあっという間に時代に置いていかれると思うのです。
逆に、今から職業エンジニアとして頑張りたいと思っている人は、最低限そこがクリア出来れば大きく可能性が広がるとすら感じます。

 

よく「頭の良さ」とか「論理的思考」とか「数学的な知見」とかが議論に上がりますが
職業エンジニアの多くは研究職ではなく作業者の側面が大きいです。
いかに製品を速く正確に出し続けられるかと、作った製品がどれだけの利益を生み出すかが給料に反映されていきます。
まだシステムエンジニアはたゆまぬ努力でお金が稼げる時代なのかなと思う一方で
エンジニアが夢見るエンジニアはもう少し先の時代に淘汰された先にあるのかなと思ったりします。