概要
BBSakuraNetworks Advent Calendar 2022 10日目 に寄稿します。
今までのエンジニア生活の中で失敗が自分の成長につながっているなと最近よく感じています。
なので失敗について考えたことと今までの失敗をまとめていこうと思います。
かつての自分が出会い成長させてくれた失敗を共有することで少しだけ誰かに役に立てればいいと思います。
コマンドライン
ではここからは具体的にどんな失敗と出会って来たかを記載していきます。
- パイプの中で restart
ログを調査しているときに突然サーバが再起動して後から調べてみると、こんなコマンドを打っていたことがありました。
# cat /var/log/messages | restart | grep ****
はい、なぜ再起動したかお分かりですねw
間に restart コマンドが入っていて
確かこの時は、systemd コマンドで httpd の restart 時間を確認していたときだったと思います。
幸い検証環境だったのでよかったのですが、これが本番環境であったなら、、、
この件で学んだのは、極力 root ユーザにならない
、パイプでのコマンド実行には気をつける
でした。 - history 実行
ローカルでの開発環境だと history コマンド実行で前の history を見たり、↑キーを押してコマンドの再実行をすることがよくあると思います。ローカル環境だと自分が実行したコマンドしか出て来ないので、履歴からのコマンド打ち間違いをすることは少ないのですが、root ユーザや共通アカウントなどでhistoryからコマンド実行した場合自分と違う人が実行したコマンドも履歴が出てきます。特に↑コマンドで実行して、以前にrm *
などのコマンドが実行されていると恐ろしい結果に。
実際にrm *
を /var/log/** 配下で実行して特定プロセスのログが全て消え、問題になった現場に出会ったことがありました。履歴はローカル環境などでよく使うからこそ、本番環境や root ユーザでの実行には細心の注意が必要だと学びました。
エンジニア方言は一般的な会話や資料では自重しなければならない時がある
- ホゲホゲ, フガフガ
エンジニア以外の方へシステム仕様を伝えるために資料を作ることもあると思います。その時に先方から呼び出されてホゲホゲ、フガフガがちょっとした質問になったことがありました。
「ホゲホゲ株式会社ってなんですか?フガフガ部署ってどこの部署ですか??」
エンジニアとの会話だと、ホゲホゲ、フガフガは市民権を得たメタ構文変数で自然と??利用しているので、普通に資料にもホゲホゲ、フガフガを利用してしまいがちなのですが、エンジニア以外の方と話をする時はホゲホゲ、フガフガはエンジニア会話の共通語で日本人全員が当たり前に利用している言葉だと思ってはいけないと理解しました。最後にエンジニアが言葉を埋める時に使う用語ですと説明すると
「エンジニアだけで勝手に日本語を作らないでくださいよ(笑)」
とツッコミを受けました。 - めんどくさい
プログラマーの三大美徳に
1.怠慢(Laziness)
2.短気(Impatience)
3.傲慢(Hubris)
というものがあります。Perl を開発したラリー・ウォールの言葉です。
(意味はネットを検索すると詳しく解説してくれている記事が多く見つかると思います。)
「めんどくさい」という言葉を「解決すべき問題が見つかったので、対応策を考える必要がある」の意味でエンジニアが利用することがよくあると思います。
しかし、仕事に対して「めんどくさい」ってエンジニア以外の人が聞くとあまり良くない感じに聞こえてしまいます。
「めんどくさい」はエンジニアとエンジニア以外で、ポジティブな意味とネガティブな意味という全く正反対の感情を持つ言葉の典型例だと思います。
この「めんどくさい」を何気なくエンジニア以外の方に使ってしまったことがあり、
「めんどくさいならやらなくていいですよ!」
とお叱りを受けたことがありました。
いつも何気なく利用している言葉がエンジニア以外にも市民権を得ていると考えて利用してはいけないと学びました。
最後に失敗について
失敗には積極的な失敗と消極的な失敗があると思います。
積極的な失敗: 行動した結果の失敗
消極的な失敗: 行動しなかった結果の失敗
どちらも失敗に違いないのですが、積極的な失敗の方が次につながる失敗であることが多く成長に対して貢献度が高い失敗であったと感じています。
当たり前のことしか言っていないのですが、この積極的な失敗と消極的な失敗を意識して積極的な失敗の回数を増やすことでエンジニアとして行動の質を高めることができるのではないかと考え、あえてこのことを最後に記載しました。