新人Advent Calendar 2016の13日目の記事を担当します
IT業界に入ったばかりの新人エンジニアが実際に行っている業務効率化の方法についての記述をお願いします
とのことなので、「業務効率化のために実践した5つの方法」を書きます
そもそも(業務効率化とは)
- 与えられた、もしくは目の前に転がっているタスクの消化速度を上げる
- 余計な業務の負荷を減らす(≒人的コストの削減)ためにタスク管理を徹底し仕事内容に関してマネージャと交渉する
ナドナド手段がありますが、本稿では前者(設計・実装力を上げる)のことだと思って進めます
技術的バックボーン
- IDEによる開発が独学含め未経験。
- 就活時の技術アピールがテキストエディタで書いたphpのスクリプトだった(コンパイラ言語を知らない)程度
- レンタルサーバーでWordpressとかDrupalでサイト構築してアフィリエイトを趣味でやってた
以下に書く実践内容も学生の頃からIDEでバリバリ書いてる人からしたら何を今更…と思うかもしれません
追い込み駆動開発
- 無事に就職が決まり、大学の夏休みに勉強がてらとEclipseをインストールしようとした→TomcatでHello,World!するまでに1週間掛かった
- 当時のツテで小さな会社の経理システムの魔改造(localで動くphpに無理やりLaravelを組み込んで機能追加)などやって無事に完成せず(精神的に)死んだ
入社前のそんな事からあっていち早く追いつく為には単純に仕様への理解を深め、手戻り・脇道せずに素早く開発するしかないと思って約1年間取り組みました
5つの実践
-
気になるOSSをウォッチする
-
アプリケーション、フレームワーク、ライブラリ問わず
-
よくわからない技術から逃げない(わからないまま適当にこなしてあとで後悔しない)ようにする
-
社内のコーディングとは違う作法でも有名なコントリビューターのコードは参考にする
-
本を買う
-
ネット上に転がってる個人レベルのドキュメントは結構適当な事が多いと気づいたため
-
一行一行が丁寧に書かれた本は役立つ
-
あえて枯れきってないジャンルの本を買って腐る前に読もうとしてみる
-
英語と数学を勉強する
-
Map-reduceだとかTensorFlowだとか深層学習だとかに関するドキュメント(書籍・論文)を読むとカジュアルに線形代数が出てくるので大学数学は地道にやり直した
-
技術に対する関心の障壁は実装レベルで使うかにかかわらず対処しておくのが良いと思った
-
英語は必修科目。日本語依存からの早期脱却を
-
アンチパターンを知る
-
新しめのライブラリ(Exoplayerみたいな更新が早くてドキュメントがすぐ腐るタイプの)はSlideShareとかStackOverflowでシェアされてる事が多いので実装前にまず調べる
-
ミッションクリティカルじゃなくても目に入ったら知識として入れておく
-
ハマりポイントをウンウン言いながら徹夜して消化するのは楽しかったけど業務に対してするべきではない
-
テンション(緊張感)を上げる
-
上のすべてを試験勉強のような緊張感で取り組む
-
効率化のための努力の効率化
結び
- 各人のネットサーフィン効率化のために箇条書きで纏めました
- 全て一年間続けたわけではなく、内省や人からの説教によって徐々にハードになってゆきました
- これらを意識することで趣味だったプログラミングを仕事レベルまで引き上げることが出来ました
- ※効果には個人差があります
- 追い込む時は心と体の健康と相談する
- (業務効率化の)銀の弾丸は無い(ので色々やってみるのが良いと思います)(し、これからも色々試してスキルアップしたいと思います)
読んでいただきありがとうございました。来年も良いエンジニアライフを!