はじめに
この投稿は DevLOVE Advent Calendar 2013 12月21日の記事です。
前日は nnasakiさんでした。
自己紹介
kurobaraと言います。
こんな感じのことをやったり、考えたりしてます
- C/Java/AndroidをSIerとしてやってきて、現在はPHP/Rubyを使うwebエンジニア
- 趣味で、Java系の何かとか,Googleのプロダクト扱ったり、Goをやったりと幅広で技術的なこと
- プロダクトと技術指向な感じで何か色々とやってる感じ
- 今後は事業領域やデータ分析的なこともやりたいような予感
経歴というほどの経歴ではないですが、経歴を知りたい方は過去のブログ記事を参照してください。。。
今回の記事は、同僚にぜひにと誘われましたので、良い機会だと思ったので書いています。
前置き
正直なところ、これまで「現場」という感覚で捉えたことが無かったので考えるきっかけになりました。
恐らく、仕事をしてる中では、いかによくやるかとは考えて行動しているはずです。。。
某映画に有名にセリフがあります。
「事件は会議室で起きてるんじゃない。現場で起きてるんだ。」
これは、その通りかなと思っています。
このセリフが出る映画の上映当時、自分はガキだったので「( ´_ゝ`)フーン」って感じでした。
今では、その言葉の意味とか言ってしまいたい気持ちもわかります。
自分にとっての現場とは
思わず前置きを書いてしまいましたが、気を取り直して本題に移ります。
自分は、IT業界での仕事現場しか分からないので、他の業界での現場というものはわかりません。
ただ、敢えて自分の感じる現場というものを一言で表すと「理想と現実の狭間で戦うところ」かなと思います。
ここでいう理想とは、「技術者が技術的にもやれることにも満足している」ような状態。
現実は、「ビジネス的要因があって、技術的なことにチャレンジもできない」状態。
(出来ないは言い過ぎですが、要するにビジネスが先行し、技術者が思う理想ができないような感じのことです)
理想を感じた要因は?
これは難しいですね。
経験というものしかないかと思います。
そもそもとして、以下が出来れば自分の満足度があがるかと思います。
- プロダクトが価値を提供出来る
- 悩んでいる人に課題を解決出来る
- プロダクトで喜んでくれる人がいる
# 褒められると嬉しいというやつですね。(自分もよくあります。)
そのため、に技術者が出来ることは、以下の内容かな?と自分は考えます。
そして、これが理想的に出来れば理想に近いかなと思います。
- プロダクトの開発サイクルを上げ、価値を出来うる最速で提供できること
- プロダクトに対して、きっちりTDD/BDDが回せて品質まで担保できること
- プロダクトに対する技術的な負債を限りなく0まで減らしていけること
- プロダクトの開発サイクルや開発機能そのものの改善が出来ていること
- プロダクトに対して、技術的なチャレンジが出来、成長できること
- 技術者が今思う、トレンドに触れていられること
どれも、当たり前の発想だし当たり前に出来ていることが理想型だと私自身は感じています。
理想はまぁなんとなく理解したが、現実は?
これはもう、大体分かることかなーと思います。
数値が出れば出るほど特に出来なくなりつつあるという感じですね。
わかりやすいところでいうとこんな感じかも
- 実装はできるが、時間に余裕が無い
- 機能の割にテストを書いてる余裕がなくなる
- 技術負債が出来上がる
- 追加要件が出てくるが、技術負債のお陰ですすまない
- 技術負債のお陰で余裕があってもテスト書いてられない
- 開発サイクルが下がってくる・・・
- (ry
上に挙げた技術者としての理想が出来なくなってくるという状況
これを改善するには・・・
ということになるとビジネスサイドに人間に対して0から説明する必要が出てきます。
説明が面倒とは言いません。
寧ろやるべきだと思います。(最終判断は、ビジネス要件も絡みますので落とし所は着くかと思います。)
技術的な負債などを抱えるとモチベーションが下がり、価値の提供に繋がらなくなってきつつあるのかなと思います。
最後は現状に対する悪態しか出てこないとかに陥ったりするかもしれないですね。
(こうなると、技術だけでなくプロダクトそのものを貶すことになるので)
他に挙げるとすると、技術的に満足度が高い状況でやっていてもビジネスサイド側の要求で出来なくなるというのもあるかもしれないです。
(現場からすると謎な社内パワー等)
# これは元々の自分の経験なので・・・
まとめ
色々と長くなりましたが、自分の思うところをツラツラと書いてしまいました。
何が言いたいかというと
「現実は往々にしてあるので、如何に理想に近づけていけるか」
これが、自分の思う現場かな?と思います。(最近はよく思います)
そのために、技術者側も以下をやっておく必要があるのではないか、そう思います。
- 事業のことについて多少なりとも知っておく
- 事業サイド側にコミットメントをする
- 数値分析や事業サイド側の数値を知る
- 事業の目的や目標、到達する先を知る
明日は・・・
明日は、storywriterさんです。
storywriterさん、よろしくお願いします。