とびだせ!インフラの森

インフラの森に迷い込んだエンジニアが備忘録として書いていきます

DevOpsとは。

DevOpsの考え方

DevOpsと聞いて、何を浮かべるでしょうか。

役職名?開発環境名?それとも技術用語の一種?

正しいDevOpsの考え方は、以下の本に集約されていました。

今回はこの本の中身を備忘録も兼ねてまとめてみます。

booklog.jp

尚、「もう知っている」と思っている人は読み飛ばしてください。

 

DevOpsとは

DevOpsの意味

DevOpsは、ものの考え方であり、仕事の進め方である。

とありました。そしてDevOpsの考え方として、以下4つの柱があるとしています。

 

DevOpsの為の4本の柱

コラボレーション

複数人と特定の結果に向かってものを作っていくプロセスのこと。

アフィニティ

アフィニティとは、チーム間の関係を構築し、組織の共通目標を念頭に置いて個々のチーム目標の違いを乗り越え、共感を育て、他のチームの人たちからも学習するプロセスのこと。

ツール

ツールは加速装置のこと。

スケーリング

スケーリングは、組織がライフサイクル全体で導入しなければいけないプロセスや軸に重点を置いていること。また、本文には以下のように記されている。

スケーリングとは、企業がライフサイクルを通じて発展、成長、進化することである。

このような4本の柱を意識して、DevOpsを進めていくと良いらしい。

以下4本の柱に沿って、それぞれ詳解して具体的に説明されていました。

 

①コラボレーション:DevOpsを機能させる為には

「では、機能させる為には具体的にどのようなことを意識すれば良いのだろうか。」

という問いに対して、以下のような文面がありました。

本当の意味でDevOpsを機能させるのであれば、共感と信頼が必要不可欠であるとしている。共通の目標に向かって強力し続けていくためには、互いに相手に共感し、相手を信頼できなければいけない。

また、共感と信頼それぞれを生む為の手段として、それぞれ紹介されています。

共感を育てる
  • 共感とは概ね子供の頃に形成されるものらしいが、大人になってからも形成される
  • 共感を持つには、相手の話を聞くことから始める
  • 相手の話を聞いた上で、質問する。質問することで相手への興味を示すことにもつながる為
  • 相手の視点を想像しながら話す
  • 相手の視点を想像しつつ、相手と自分は異なる考え方を持っており、それぞれ尊重する必要があると理解する
信頼を育てる
  • 信頼を育てる方法は4種類ある
  • 「迅速な信頼」と呼ばれる手段は、初めから信頼が前提となっていて時間と共にその信頼が確かめられていくことを指す手段
  • 「自己開示」と呼ばれる手段は、自分のことをオープンに話すことで信頼されていて親しみがあると感じる手段
  • 「信頼しつつ確認」と呼ばれる手段は、おおよそ信頼できる情報の出どころを明らかにし、正確性を確認するために追加調査をするような手段
  • 「公平と感じる環境」と呼ばれる手段は、公平に扱われているのだと実感することで信頼を育むという手段

 

②アフィニティ:チームの団結力を育む

チームの団結力は、それぞれのチームメンバーが機能する作業ユニットであるチームの存続に貢献したいと思う度合いのことを指すとのことでした。

まとまりのあるチームは、自分だけが知識を持つのではなく、全員と知識を共有し強力しあって仕事に取り組むことによって生産性の高い存在となる。

このような意識を持ち、チームメンバーとして活動することでDevOps4本の柱のうち2本目のアフィニティ部分が達成されると考えられています。

また、団結力を育む為には「多様性」を考える必要もあります。

多様性を考える

グループメンバーについて考える時、所属できるグループの範囲のことも考える必要があるとしている。

 

フローという概念

フローと呼ばれる概念があるらしいです。これは心理学の領域でも使われている用語で、以下引用文のように、個人が没頭している精神状態のことを指します。

ある活動に従事している個人が、充実し満足した状態で完全に活動に没頭しているときの個人の精神状態をフローだとしている。

こうした「フロー」状態は、他の精神状態とは異なると研究結果判明しているようで、「フロー」状態にのみ見られる特徴を列挙すると以下になります。

  • 今に対する強烈な集中
  • 行動と意識の融合
  • 自己に対する意識の欠如
  • 個人による状況の支配または代理
  • 主観的な時間経験の変化
  • 報酬の内在

 

また、こうしたフロー状態は個人で実施するよりもチームで実施した方が、よりよいものが作られるとされており、例としてオーケストラが挙げられていました。ただし、集団でのフローにおける注意点もあります。

集団でのフローは、チームの全員が平等に参加するときに生まれる。支配しようとする人や傲慢な人は、集団のフローを壊す。

個人におけるフローを促進しつつ、集団でのフローには注意して意識を向けていくことがより効果的なDevOpsを進める上で重要そうでした。

そして最後に以下のように締めくくられていました。

確かに仕事は友達を作ることではないが、仕事を構成するものは何なのかについての視野を広げることは大切だ。ただ単に机の前に座って事務作業をしたりコードを書いたりするだけではない。組織全体が協調的かつ効果的に機能するための基礎として、関係を構築していくことも仕事の一部なのだ。

 

③ツール:エコシステムからの成長

DevOpsのツールは、エコシステムからの発展だと著書内で述べていました。

ツールの選択は共通言語の選択であり、チーム内で認知コストの高いツールを選ばなければならない状況が起こったとしても、影響を受けるチームを支える手段さえあれば問題ないとしています。

DevOpsツールについて議論するということは、ツール自体とその使い方を議論することであり、機能的な特徴を話題にすることではない。

 

④スケーリング:組織の戦略的拡大/縮小

組織が成功する為には、スケーリングの方法を知っている必要があります。

このスケーリングは捉え方が色々あり、

  • 顧客ベースの拡大
  • 収益の拡大
  • 需要に合わせたプロジェクトやチームの拡張
  • システムに割り振る人の割合や金額の維持、改善
  • 競合他社よりも早い成長

などが挙げられていました。

 

文化とは

文化、文化適合性という言葉があります。これらは、定義として曖昧で問題を起こす火種になりやすいので、DevOpsにおける定義は明確化されていました。

DevOpsにおける「文化」は、人や社会の考え方、習慣、社会的行動と定義しています。

 

定着率を高くするには

企業において、社員の定着率を意識するのは当然のことだと思います。

以下定着率を高くする為の視点が書かれていました。

定着率を高くするには、(中略)相互理解を保ち、共通の目標やニーズを満たし、人間関係を継続的に発展させていくことを通じて、社員との共同関係を維持することが大切だ。

こうした視点を持って、採用に臨むと良さそうです。

 

採用したい人の特徴

強い意見と弱い執着を持つ者

IT業界では強い意見と弱い執着を持つものを採用することが望ましいと一部の記事で言われているらしいです。以下引用します。

ここで言う「強い意見」とは、特定の立場をとることや何らかの意見を持つことを拒否せず、必要に応じて何らかの結論に到達するよう心がけることを意味する。

「弱い執着」とは、誤りに目を背けたりせず、現在の結論に合わないものを探し新しい証拠に基づいて自分の考えを変える意思を持ち、考えを変えることを意味する。

これらの心がけを持っている者を採用すると組織として効果を発揮するとのことでした。

 

モチベーションと力を与える要素5つ

採用後、対象社員に対してのアプローチも必要になってきます。社員のモチベーションを上げる要素として、5つの要素があるとしていました。

  • 自由
  • やりがい
  • 教育
  • 個人的に意味のある貢献
  • 前向きな環境

この5つを意識して、社員と関わり、よりよい環境を構築していくことが良さそうでした。

 

まとめ

組織内でDevOpsを意識した改革は進められていると感じつつ、まだ実践出来ていないという企業はこの1冊を絶対に一読するべきだと感じました。。

その辺の講習を聞くよりよっぽど価値があります。

 

以上、備忘録でした。