読者です 読者をやめる 読者になる 読者になる

こしごぇ(B)

旧:http://d.hatena.ne.jp/koshigoeb/

働き出して一年目に覚えた事

せっかくだし、もうちょっと思い出話を続けてみる。

自分が一年目の頃に、何を覚えたかなと言う話。きれいにまとめる自信はないので、思い出したことをつらつらと。

基本的に、とある一人の先輩エンジニアからの教えが大きい。

覚えなかった事、まえおき

覚えなかった事というか今でも出来ない事は明らかで、いわゆるビジネスマナーとか一般常識。これは新卒一ヶ月の子に負ける自信がある。バイト採用→社員登用→転職という経路で今に至り、その間にビジネスマナーを学ぶような研修を受ける事も無く、独学で身につけることも無く社会不適合っぷりを遺憾なく発揮し続けて来たわけで。

最初にバイトで入った制作会社で学んだ事は何かあっただろうか。とにかく実践の日々。エンジニアは自分一人だし、分からないなりにどうにかするしかなくて、どうにかやり過ごした記憶しか無い。

今の会社に転職してからは学ぶことだらけ。そもそも、転職の理由が「先輩エンジニアから学びたい」というものだったので希望通りだったわけです。

楽するための苦労

エンジニアなら楽をしろという話から始まった様に思う。楽をするための苦労。今ではだいたいの事の出発点になっていると思う。たぶん。

時間計測

タスクを見積もるためのベース作り。自分がどれだけの時間をかけて作業したのか。自分がある時間でどれだけの作業が出来るのか。自分がどれだけの出力を持っているのか把握する話。 だいたい間違うけど、肌感覚として持っておかないと自分の作業計画をたてにくい気がする。けど、割と感覚でやってるから数字で突き詰めるやり方は知らない。

ほうれんそう

エンジニアに限らず、社会人としての一般常識的な報告、連絡、相談。特に一年目なんて自分だけで処理できる事なんてたかが知れてるというのが自他共に認めるわけで、ほうれんそうなしには無理ゲーでしょうね。うざがられるなんて事は考えもせず、さっさと自分で解決できないと判断して聞きまくってた懐かしい思い出。

報告とか連絡は朝会とか日報で済んでたかな?

なれ合い禁止

これは覚えた事に入れるのか微妙だけど、「遠慮せず言うべきことは言う」という感じの事。自分としては特に増長した記憶はないんだけど、とにかく思ったことはあれこれ言わせてもらったと思う。当時は分からない事だらけだったので、ため込んでても仕方が無いし邪魔くさかったら逆に言われるだろうと思って、基本的に空気を読むとか遠慮とかそういうのを自重した。なんというか、自重するのを自重した。記憶が間違ってなければ。

アジャイル

XPをベースに先輩社員が編み出したアジャイル的開発手法。ホワイトボードと付箋を使った見える化とか、週単位のイテレーションによる短期リリースとか、コードレビューとか、継続的インテグレーションとか。ペアプロも若干あったかも。クリティカルな作業はペアでやるとか。毎週の定例MTGや週末の振り返りで気になることがあれば随時修正していった記憶も。

正直、実践で身につけただけで、理論だって(?)説明出来るほどの理解は実は無かったりする。

開発環境

当時は Windows マシンで開発をしていて、プロダクトの動作確認などには VMWare Player を使っていた。原則として、プロダクション環境とほぼ同一の環境で開発、動作確認するという方針。開発環境を維持するために、必然的にある程度の Linux 知識も身につけていった様な気もする。

途中までチーム方針で Zend Studio を使っていたけど、途中から何を使っても良いという話になって Medow と NTEmacs を使う様になったのも懐かしい(これは1年目じゃないかも)。あまり実践できてないけど、生産効率を上げる(楽をする)ために道具にこだわり続ける(苦労する)事は重要ですよね。慣れたものが一番という感じに思考停止するのは、楽をするのではなくて単なるサボり。怠惰。これは駄目絶対。

本当は、IDEを使える様になりたい気持ちがあるわけですが、メリットを全く実感できていないため、IDEマスターと一緒に仕事する機会を夢見る今日この頃。なんだかんだ、Emacs とターミナルで十分かなと思ってしまうわけです。

バージョン管理

はじめはCVSで、2年目近くでSubversionに移行した記憶。バージョン管理という概念になじみが無く感心した記憶が若干あったりなかったり。CVSについてはタグがどうこうとかよく分からず、マニュアルに従って作業していた記憶しか無い。なんとなく馴染んできたのは、Subversionを使う様になってから、特にブランチをマージするのに慣れてきてからだった様な気がしないでもない。

作業手順

クリティカルな作業を行う際、必ず手順書を作りレビューを通してから実行するという事を学んだ。また、定型化できる作業なら定型マニュアルに落とし込む所まで行う事も学んだ。ミスは起きるものという前提にたって、起きるミスを事前に防ぐために最大限努力する事を学んだ。人災の可能性を減らすための自動化という事も学んだ。リスク管理というのかな。

障害対応・データセンタ

サーバがたくさん置かれた施設がある事を学んだ。中はとても乾燥していて、とても寒くて、長時間いると体がおかしくなることも学んだ。

ひよっこ

確か、一年経っても全然自信は付いてなかったと思う。せいぜいコーダ—に毛が生えた程度の木っ端だ、的な。エンジニアだと名乗っても良いんじゃ無いかなと思えるようになったのはいつ頃だったかね。今でも自信なんてないけど、無駄に卑下しても仕方が無いので、無理矢理そこそこ出来ると思い込む様にしてる感じです。お金を払わせてる身分で自分をゴミ扱いしてると、ゴミに金を払わせてる事になるわけで。

そんな感じの思い出話でした。