はじめまして、アプリケーションエンジニアのあべです。
RCOで開発を行うサービスではディレクター、デザイナー、運用オペレータ、営業、エンジニア等の
異種業種混合チームでプロジェクトを進めていくことが多いです。
このようなチーム内でのRCOエンジニアは「決定した仕様をもとに実装やテストを行うだけ」の立場ではなく
エンジニア的視点からサービス設計、機能検討等へもコミットしていく姿勢が強く要求され
加えて、昨今の世の中の流れと同様に高い水準での開発速度を求められることがほとんどです。
ざっくりまとめると、RCOのエンジニアにはサービス検討から実際にコードを書きまくる開発フェーズ
そしてテストやリリース、案件によっては効果分析等の幅広い役割を期待されています。
それでは運用中のとあるシステムへの機能追加を例に、そんなRCO内での開発風景を再現ドラマ風に紹介します。
あべ:開発開発開発開発開発開発開発開発開発開発開発開発開発開発開発
開発開発開発開発開発開発開発開発開発開発開発開発開発開発開発
運用チームディレクター氏(以下、オペ):どうもー
あべ:どうもー
オペ:この案件で○○っていう機能が欲しくなったんですが、なんとかなりません?
あべ:それってどんな感じに使うんです?
オペ:こうしてああして…(中略)…で、最終的にこういうアウトプットを出したいんですよ
あべ:なるほど、そしたらこんなUIにして、こういう操作感にしてみたらどうっすかね?
ちなみにこの要件って今後の案件で発展する可能性あります?
オペ:先週から検討に上がってる□□な話で△△っていう要望が上がりそうかも。。。
あべ:だったら商品的にこういう感じに発展させるのが良いと思うので一旦こういう作りにしといて
その話が現実的になったらこういうふうに拡張する感じでどうですかね?
オペ:それいいっすね、そんな感じでお願いします。
ちなみに案件的になるべく早めに使えると嬉しいんですけど。。。
あべ:そしたら今日は別タスクでお腹いっぱいなので、明日にでもやっつけときますね。
なので今の要件でチケットあげといてくださいー
オペ:よろしくお願いしますー
<翌日>
あべ:開発開発開発開発開発開発開発開発開発開発開発開発開発開発開発
開発完了、テスト完了、検証環境デプロイ
あべ:あ、検証環境に反映しといたので確認おねがいしますー
オペ:了解です。んじゃ今から確認しますね。。。うん、OKです。この機能でいきましょう!
あべ:確認ありがとうございますー
それじゃ案件スケジュールに合わせて××日にリリースしますね
オペ:よろしくお願いしますー
記事の冒頭でハードル上げたわりにユルイ雰囲気でやりとりされていますが。。。まあ、だいたいこんな感じです。
要件によっては他のエンジニアやデータサイエンティストを巻き込んだり
開発規模が大きくなる場合には「開発予算くださいな」と上司に相談したり等のバリエーションはありますが
基本的には上記のようなスピード感で日々の開発を進めています。
RCOの開発現場ではこのような「検討〜開発〜リリース」の一連のプロセスを高速化するために
各種開発支援ツール・Jenkinsを利用したCIプロセス・OpsWorksによるデプロイ自動化等の導入を進め
開発だけにとどまらないサービス開発・改善の高速化を実現する、いわゆる継続的デリバリーの推進を行っています。
次回以降の記事ではこの辺りのRCOにおける継続的デリバリー的話題も紹介していきたいと思います。
なお、RCOでは高速なサービス開発・改善を一緒に推進してくれるエンジニアを募集しています。
ちなみに「今年のQConSFは継続的デリバリーやJavaScriptな発表もあって面白そうだなー」なんて雑談が
「その辺の技術は今後のサービス開発に活かせそうだから、きっちりキャッチアップしてきて!」って
エライ人が各種レポートと引き換えに許可をくれる事態に発展した結果
社費でQCon San Francisco 2013に参加できることになった奇跡については別の話です。
RCOでは各種カンファレンスでのキャッチアップをもとにサービス開発をより加速するエンジニアも募集しています。