エンジニアとして心がけていること
最近社内の開発メンバーに「自分はこういうことを意識してやってるよ」的な話をする機会が増えてきたので、まとめて書き出してみた。
会社で掲げている行動理念とは別で、あくまで個人的に意識していること。 http://www.machiiro.jp/cto_message/
開発周り
命名には気を使う
プロジェクト名、クラス名、変数名…開発を行う上で命名を行うシーンは多い。
命名をするにあたって、
- 対象の責務に合わせた名前にする
- 一般的な名称、単語があれば、なるべくそれを使用する
- 統一感を持たせる
といったことを意識するようにしている。
これだけでコードの可読性が上がったり、grep やリファクタリングがしやすくなる。
typo しないよう意識する
typo は恥ずかしい上に、grep の妨げになるので、なるべく起きないように意識している。
具体的には
- 怪しいと思ったらその単語で検索する
- コピペするか、体が覚えるようにわざと手で入力する
といったことをしている。
いつ開発環境が壊れても良いようにしておく
ローカルに重要な情報は持たないようにする。
ソースコードは全て git に、ファイルは全てクラウドサービスなりファイルサーバー上に置く。
ツールの設定は端末間で共有できるようにする。
難しい場合はデフォルト設定で利用するか、最悪設定手順をまとめておく。
メール、デスクトップは常に整理整頓しておく
メーラーの Inbox にメールは溜めない。
メールが残っている=タスクが残っている。
デスクトップにファイルを置いたままにしない。
もしくは後で消しても問題ないようなものだけ置いておき、定期的に削除する。
実装に詰まる=「考えが足りない」
追加開発や仕様変更が発生した場合に、その実装がちょっとスムーズに出来ないような場合は、
恐らく元々の仕様に「何か考えが足りない」、と思うようにしている。
実際には単純に実装が大変なだけだったりすることもあるが、
何か別の仕様を入れることで、シンプルに問題が解決できることもある。
サービスやプロダクトの開発をしている時は特に意識している。
余計な機能は開発しない (けど考えておく)
初期段階では不要だけど後々必要だろうな…という機能は大抵必要とならないので実装しない。
必要になってはじめて気付くことが出来る要件もあったりするので、不用意に先行して開発はしない。
ただし、何時でも開発できるように頭の中で設計だけはしておく。
課題のバックグラウンドを共有する
自分が誰かにタスクを依頼する場合でも依頼される場合でも、
その課題のバックグラウンドを伝える、もしくは共有するようにする。
バックグラウンドを知ることで初めて出てくるアイディアもある。
また、関係者が当事者意識を持ちやすくなる。
作業を共有するのではなく、あくまで課題を共有する、という意識を持つ。
自己成長周り
身に付ける技術・スキルを厳選する
関連する全ての技術を深く掘り下げて学習することは、現実的に難しいので、
身に付ける技術・スキルは厳選するようにしている。
判断材料としては
- 興味があるか
- その技術は将来性、発展性があるか
- 直近または近い将来の業務に対して、良い影響を与えそうかどうか
など。
周りの期待値を少しでも超えるアウトプットを意識する
上司や先輩、同僚が持っているであろう期待値を、
少しでも超えるアウトプットを出すよう常に心がける。
例えば、
- 仕様
- デザイン
- 性能
- スケジュール
- マネジメント
などを、本来の期待値以上のものにする。
端的に言うと、身近な人に「これすげーじゃん!」って言ってもらいたい :)