My insight

あるソフトウェアエンジニアの気づきを公開。エモい話、技術の話など。不定期更新。

新米エンジニアの踊る現場

はじめに

このエントリーは『DevLOVE Advent Calendar 2013 「現場」』の12月29日(50日目)の記事です。

前回の記事はオカモンさんによる「家庭」という名の「現場」です。漫才面白かったですよ!

まずは自己紹介

どんな人なの?

社会人2年目の新米エンジニア@ieryです。新米おいしい!

ハンドルネームは「イエリィ」と読んで欲しいのですが、チェックインする時など「あい・いー・あーる・わい」と言ってたりもするので、読み方にはあまりこだわっていません。

文系の学部卒ですが、友人からは似非文系と言われます。中学から独学でゲームプログラミングをかじってミニゲーム作ってました。

今は株式会社ヴァル研究所という会社で働いています。公共交通機関の経路案内ソフト『駅すぱあと』の開発元です。

どんな仕事してるの?

ネット広告業界における媒体社として、自社の広告配信サービスと社内向け管理サービスをJavaRubyで開発・運用しています。 サービスは広告代理店が販売し、代理店との直接のやり取りは隣の販売チームが担っています。 また、業務の一環としてアジャイル開発の考え方や手法の導入をしたり、企画に関わったりもしています。

1年目はAndroidアプリを開発するチームに居ました。Java繋がりとは言え、配置転換にはちょっとビックリ。

最近していること

システム思考、自動化、コード設計をメインに勉強しています。仕事優先ならインフラ周りを勉強するとすぐに役立つのは間違いないのですが……オフの勉強はやりたいことを優先しています。(・ω<)

コミュニティ活動は参加し始めてここ半年ほどです。この記事を書くきっかけになったDevLOVEのイベント(たてらぶ DevLOVE現場甲子園 完結編)で、初めてスタッフ側としてお手伝いさせていただきました。

私にとっての現場

現場ってなんだろう?

まず私なりの現場の定義を考えてみました。

私にとっての現場は、「何か課題がある時、それを自分事として捉えて行動する領域」です。

この定義に従うと、「仕事」「私生活」といった捉え方は「現場を性質によって括ったもの」になります。

では、私の「仕事」の現場は何か、というと……

  • 私が所属する広告配信システムの開発チーム
  • 広告の販売チーム
  • 広告の枠(在庫)となるサービスを作っている別の開発チーム(1年目に所属していたチーム)

今の私にとっては、これらのチームの業務領域が「仕事」の現場です。

「仕事」の現場で何をしているのか

私が良いと感じたマインド、コミュニケーション環境、開発環境、業務フローなどを社内に持ち込んで試しています。 具体的には、

  • チームのリポジトリSVNからGitへ移行(12月ごろからGitの勉強を初め、移行は1月から実施)
    • その一環でGitのチーム内トレーナーみたいなことをしたり(他のメンバーは全員先輩でしたが)
    • その流れで新人研修で初めてGit教えたり(前年まではSVNだった)
  • GitHubに移行したのを契機に、コードレビューをリリースまでのフローに組み込み
    • テストを書いてレビューやリファクタリングをしやすく
    • コードの質を高めるために、勇気を出して先輩後輩関係なく容赦なくツッコミを入れ、良いコードには :sushi: を付ける
    • 自分が頂いた指摘箇所は、可能な限り優先して直す(指摘を放置しない)
  • セクションを超えた情報共有と保存が気軽にできるように、社内IRCを活用(話題毎にコミュニティを作る)
    • 話題に適当なチャンネルが無ければ、関係者を集めて作ってしまい、自分から都度話す
      • 広告の販売チームと開発チームを全員集めたチャンネルも作成
  • 相手の時間を尊重しつつ、積極的に質問する(無理に自己解決しようとしない。組織の力を借りる)
    • 逆に質問されたらきちんと返す

といったことです。

どれも最初からは思い通りに行きませんでしたが、目指すところ・メリット・デメリットをきちんと見せることで、取り組みに協力してもらえています。

現場で思ったこと

固定観念の罠

配属後いきなりアプリの開発チームに投入された私は、最初の半年で早くもセクショナリズムや固定観念の罠に自分からハマっていました。

  • 開発だから、営業には口出ししない
  • 新人だから、プロセスには口出ししない/重要な意思決定には関わらない

こうした考え方が主体性を奪っていたことで、楽しいというよりは純粋に精一杯という気分が支配的でした。

行動が変えた意識

意識が変わる契機になったのは、Gitの勉強を自分で始めたことです。当時は社内でGit/GitHubを導入する動きが始まったところで、チームもアプリのリリースが終わって少し余裕が生まれたタイミングでした。

「そのうち導入されるなら、今のうちに勉強しておこう」

というくらいの気持ちでしたが、勉強してみると素晴らしさが分かり、「これはいち早く導入したい!」という気分になりました。これが、私にとって最初のプロセス改善に取り組む動機になりました。

その後は前述の通り、色々やってます。

意識を変えるということ

意識を変えるには、仕組みや空気を変えるのが効果的だと思っています。

空気を変える手っ取り早い方法は、自分から動いて良さに気づいてもらうことだと思っています。

その際に心がけていることは、必要性を感じたら失敗を恐れないで早く行動することです。そのために、最小限に仕組みを作って動かす準備ができた時点で調査から行動に移ります。浅い理解に基いて行動すると失敗も多いですが、振り返りを通じて失敗から学ぶほうが効率的です。最終的に目指した価値が得られれば良いので、途中で失敗してもあまり悔やみません。

共感してくれた誰かが一緒に動いてくれるようになったら、後は仕組みが回って空気も作ってくれるので楽になります。自転しない仕組みは導入に失敗したか、本質的な不整合があるか、そもそも不要か、きちんと見極めます。

何のためにしてきたか

ちょっとワガママですが、

「自分が望むやり方で、社会に最大限貢献する/できるようになること、それによって生計を立てること。」

これが就活中から変わっていない、私の人生における究極の目的です。

この目的達成のために、チーム全体、密接に関係する他のチーム、会社全体、取引先、サービスのユーザー、業界、ユーザーを取り巻く社会にまで、当事者意識をだんだんと広げていきたいと思っています。

当事者意識の拡大には、様々な認識を共有することを通じて個々人の知見を広げていくことが最初のステップだと考えています。未知の領域で当事者意識なんて持ちようがありません。

会社は経営方針やセクションなどで個々人の仕事や知見の方向付けをしてくれますが、社会が抱える課題を組織全体として合理的に解決することで価値を生み出し、その対価としてお金を頂いているということを忘れてはならないと思っています。私は普段忘れがちですが。

何をするつもりか

私を取り巻く現場が私をより良く磨いてくれるように、私自身と現場の両方を磨いていきたいと思っています。

終わりに

私にとって初めての公開エントリーでしたが、楽しんで頂けたでしょうか。

次回、12月30日(51日目)の記事は大佐さんです。お楽しみに!