開発運用研修 2019開運ことはじめymmt
View Slide
Who?▌ymmt と呼んでください▌2001 年入社⚫ 開発本部長, CTO, 運用本部長など歴任⚫ 今は Neco プロジェクトの責任者▌職種?⚫ 名刺には Software Entropy Reducer⚫ アーキテクト?プロジェクトマネージャ?執行役員?⚫ この話題はあとで深堀します
本講義の内容と目的▌自社の製品・サービスの開発運用体制を知る⚫ どのようなチームがあるか⚫ チーム間の関係性▌職種とスキルについて知る⚫ チーム=職種? (No!)⚫ 職務・職種・職階⚫ キャリアとスキル開発
製品・サービスと体制今昔
製品とサービス as of 2019▌cybozu.com⚫ Slash - 共通ユーザー管理⚫ kintone + Office + メールワイズ + ガルーン▌kintone.com⚫ Slash + kintone▌cybozu.cn⚫ Slash + kintone + Garoon▌オンプレミス⚫ Office, メールワイズ, ガルーン⚫ リモートサービス少品種を多様に提供するビジネスモデル• 開発効率は良い?悪い?→再利用の点では良いが、制約が強い• 開発本部と運用本部で業務が分離→オンプレミスから発展させたのでそもそも運用本部がない体制だった
Back to 2010…
製品とサービス as of 2010▌パッケージ製品⚫ Office, メールワイズ, ガルーン, デヂエ▌サービス⚫ リモートサービス⚫ cybozu.net⚫ サイボウズ Live・開発本部しかなかった・サービスは情シス?が運用していた→情シスは当時概念上の存在だった情シスっぽいことをする人が運用も片手間にしていたLive / リモートの運用はそれぞれ一人が片手間運用
起きたことと、これから起きること2011年 cybozu.com 開始• 今では売り上げの大半を占めるクラウドサービス• 24/365 運用の業務が発生2014年 運用本部が発足• サービス運用の職能を開発・成熟• 情報システム部を正式に設立2018年 Yakumo プロジェクト開始• kintone.com を AWS に分離して開発・運用• 開発・試験・運用をひとつのチームで2019年 開発本部組織改革• 部を解体して複数職能からなるチームに再編
チームと役割支援系チーム流れ作業系チーム 自己完結系チームプロダクト・サービスの開発運用を間接的に支援企画・開発・試験・運用を流れ作業的に分担企画・開発・試験・運用をチーム内で完結移行しつつある
チームと役割支援系チーム流れ作業系チーム 自己完結系チーム本部長s PSIRT TC デザイン OSS推進コネクト支援アジャイルコーチWASABI コミュニケーションエンジニアリングフロントエンドエキスパート生産性向上 組織運営情シス Network アシスタント ラボkintone Garoon かんたん系Slash /CyDE-CSalesSystemモバイルリモートサービスKB2Desktop検証テストエンジニアリングSREYakumoNeco
自己完結型への変化の理由▌クラウドサービスの特性を活かすため⚫ オンプレミスと違い、自社で更新できる⚫ 極めれば、一日に何度も更新することも可能▌分業流れ作業は「鈍重」⚫ 企画→開発→試験→運用がそれぞれ別チームだった⚫ 開発したものがすぐ出荷できない⚫ 運用上の問題をすぐ直せない
DevOps / マイクロサービス / (本来の) SRE▌DevOps⚫ 開発・試験・運用の一体化と自動化⚫ 継続的インテグレーション(CI)⚫ 継続的デリバリー(CD)▌マイクロサービス⚫ 大きなプロダクトを分割して個別にリリース▌(本来の)SRE⚫ 日々の運用改善をお任せする支援サービスこれらすべて、高速なリリースサイクルのため!
要するに
クラウドサービスの開発・運用に最適化中なのです
企画・開発・試験・運用の仕事の境目は曖昧化していきます良い悪いではなく、そういう時代、そういう業界にいるということです
職種とキャリア
職種と職階▌当社には以下のような職種がある、感じです⚫ プログラマ, テストエンジニア, UI/UX エンジニア,スクラムマスタ, SRE, プロダクトマネージャ, …▌当社には職階はありません⚫ Junior, Senior, Principal, Fellowといった job title はない▌職種は、実のところそれが必要と言って名乗ったらできるものであって、会社が決めていたりはしません⚫ 私は Software Entropy Reducer を名乗ってます ☺
職種や職階が会社で決まってないなら、どうキャリアアップできるんだろう?
そもそもキャリアとは?▌デジタル大辞泉いわく1 職業・技能上の経験。経歴。「キャリアを積む」「キャリア不足」▌経験・経歴を「型にはめる」のが職種と職階⚫ 仕事のやり方が年々進化する業界で、型にはめるのが良いことかどうか考えてみよう
職務▌良い経験を積みたい⚫ 例:マネジメントしたい or 分散システムを設計したい⚫ どうすればそういう仕事ができる?▌考えられる手段⚫ 社内でその職務のポジションに応募する⚫ 社外で同上=転職 or 複職⚫ 自分で提案してポジションを作る
社内でその職務のポジションに応募する▌サイボウズでは異動希望は自由に出せます⚫ マネジメントやりたければ組織運営チーム⚫ Kubernetes 開発者になりたければ Neco チーム▌体験入部という制度もあります⚫ 数週間他のチームの業務を体験できる制度です⚫ いきなり異動は不安な場合に活用できます
自分で提案してポジションを作る▌やるべき仕事があると思うが、誰もやっていない場合⚫ 大阪拠点を作りたい, サービス運用技術者を育成したい,製品のアクセシビリティを向上したい, チームにスクラムを導入したい▌提案の大きさ(モノ・人・金)次第で難易度は変わります⚫ 大きな提案には十分な信頼と覚悟が求められます▌ポジションを自ら作れる人は高い評価を獲得しています⚫ 実例多数:okady, ymmt, 小林大輔さん, 天野祐介さん, …⚫ 安定を捨てて不安定を選べる人です
スキル開発
スキルを身に着けるにあたって▌仕事に役立つスキルは無数にある⚫ 英語, 経営戦略, プログラミング, 統計分析, …▌例:Neco 開発チームの仕事をしたい⚫ スキルチェックシートをみてみましょう
真実:必要なスキルを挙げればきりがない▌Neco の応募者が全部身に着けていることはない▌入った人がまず全部勉強するということもない▌必要に応じてひとつずつ学んでいくしかない⚫ 山のふもとからいきなり頂上には登れないのです⚫ 頂上のエンジニアもまた成長していたりします⚫ 焦らず ☺
習うより慣れよ▌git (Java, Go, …)のマニュアルを読んでいてもそれだけで使えるようにはなりません▌まずは試しに以下を打ってみるgit clone https://github.com/cybozu-go/sabakancd sabakangit log▌動かしながらわからないことを調べるのが効率的
まとめ
以下の内容でお送りしました• クラウドサービスに最適化中• 職種間の境目は曖昧化開発本部・運用本部の組織体制の変遷• 決まった職種・職階はない• 希望する仕事に応募してキャリアアップしよう職種とキャリア• 習うより慣れよ• 焦らずひとつずつスキル開発
以上
以降はおまけ
メモ▌スキルがあれば、職種なんて選び放題なんだぜ!⚫ アーキテクトを名乗ったらアーキテクチャ設計ができるようになるわけじゃない。逆。⚫ スキルを伸ばしてできる仕事を増やせ▌やりたい・やるべき・できる⚫ 前二つより、まずは「できる」が増えないと選択肢がない⚫ 「やるべき」はスキル次第で自分で増やせることもある⚫ 関心外の仕事にも適性はあるかもよ⚫やってみてからやりたいかやりたくないか判断しよう
こんな商用ソフトウェアは困る▌バグだらけでまともに利用できない▌バージョンアップしたら動かなくなった▌メモリや CPU を使いすぎる▌自動アップデートでウィルスが混入▌ろくにドキュメントがない企業で開発者が書くコードには一定の品質が必要
アウトプット(成果とその宣伝)
失敗も重要な成果です▌不具合を出したり、性能が出なかったり、セキュリティホールを作ったりすることがあるでしょう▌あなたの失敗は、チームにとって重要な成果になりえます⚫ 共有することで、チームの知見が増え成長できます⚫ 世の中に共有すると感謝されるかもしれません実際会社ブログで失敗系記事は人気があります▌大事なことなので最初に書きました
成果物は共有資産▌会社で開発したものは、あなたのものではありません▌チームで運用したり、利用したり、不具合を直したりします▌開発中にレビューを受けましょう⚫ 設計レビュー・実装レビューがどのチームにもあります⚫ コーディング規約等しっかり守りましょう▌完成したら利用者に説明しましょう
宣伝重要▌いいものを作っても、使われなければ意味はありません▌サイボウズ社内でも、宣伝しなければ使ってもらえません!⚫ Neco は四半期毎に成果報告会を社内で開催⚫ ブログやカンファレンス登壇も多数▌遠慮は禁物!!!
私のキャリア▌大学院で分散処理を専攻▌2001年 中退してサイボウズ入社▌2005年 開発部長に就任▌2007年 開発本部長を辞めて社内ニート▌2010年 cybozu.com の開発責任者▌2012年 平プログラマとしてインフラ開発▌2014年 運用本部を作って本部長に就任▌2018年 運用本部長を辞めて Neco プロジェクトの責任者
スキルやキャリアは結果論▌なにをしてきたか、がキャリアになるのです⚫ 決まった出世コースなんてありません▌自分が幸せに生きる、を大事にね⚫ 社内ニート怖いよ