派遣で働くエンジニアのスキルアップを応援するサイト

PRODUCED BY RECRUIT

第2話 人工知能、機械学習、ディープラーニングの違いとは?【漫画】未経験なのに、機械学習の仕事始めました

f:id:itstaffing:20210210162614j:plain

  人工知能、機械学習、ディープラーニングの違い    

f:id:itstaffing:20210210162620j:plain
f:id:itstaffing:20210210162630j:plain
f:id:itstaffing:20210210162636j:plain
f:id:itstaffing:20210210162643j:plain
f:id:itstaffing:20210210162650j:plain

  人工知能という言葉の定義はむずかしい    

 
f:id:itstaffing:20210113102532j:plain
人工知能という言葉の定義はむずかしいと言われています。「人工」という言葉には「人間と機械を区別する基準は何か?」という問いが生まれます。「知能」という言葉には「何をもって知能と言えるのか?」という問いが生まれます。
f:id:itstaffing:20210113102529j:plain
たしかに…!それは議論のしがいがありそうな、むずかしい質問ですね。
f:id:itstaffing:20210113102532j:plain
そうなんです。人工知能学会というところが人工知能の定義を示しているので、そちらをお話ししますね。

まず、人工知能の研究には二つの立場があります。

・人間の知能そのものをもつ機械を作ろうとする立場
・人間が知能を使ってすることを機械にさせようとする立場

ほとんどの研究は後者です。人工知能の研究といっても、人間のような機械を作っているわけではありません。

  人工知能の代表的なプロセス、「学習」と「推論」   

 
f:id:itstaffing:20210113102532j:plain
人工知能の代表的なプロセスに「学習」と「推論」があります。これらは組み合わせて使われることが多いです。
学習:情報から将来使えそうな知識を見つけること

大量の学習データから、組み合わせのパターンを見つけます。たとえば、購入履歴の中から「パンを買う人は牛乳も合わせて買っていく」という組み合わせを見つけ出すのは、学習です。

推論:知識をもとに、新しい結論を得ること

いろいろなルールを統合して矛盾のない答えを導き出します。最も基本になるのはアリストテレスの三段論法です。機械に「すべての人間は死ぬ」「ソクラテスは人間である」という知識を与えます。すると機械は「よって、ソクラテスは死ぬ」という結論を出します。これだけだと「そんな当たり前のこと」と思いますが、囲碁や将棋、地図のように複雑なルールをたくさん与えることで、最良の一手を弾き出したり最適な経路を導き出したりできるようになるのです。

f:id:itstaffing:20210113102524j:plain
学習と推論を組み合わせると、どういうことができるようになるんですか?
f:id:itstaffing:20210113102532j:plain
たとえば、ゾウとサイの画像を与えて、それぞれの特徴の組み合わせパターン(推論モデル)を作ります。これが学習ですね。そして、学習で作っておいた推論モデルに、分類や識別したいデータを当てはめて、結論を導くのが推論です。

★ちなみに学習の方式には種類があって、代表的なものに「教師あり学習」と「教師なし学習」があります。

教師あり学習:
「データと答え」の組み合わせを学習データとして使う。
(例:「ゾウの画像」と「これはゾウであるという答え」を与える)
 
f:id:itstaffing:20210210162654j:plain
 
教師なし学習:
学習データだけを与える。
(例:画像のみを与える)
 
f:id:itstaffing:20210210162659j:plain

  ディープラーニングの登場   

 
f:id:itstaffing:20210113102532j:plain
そして、ディープラーニングの登場によって、より複雑な推論モデルを作ることができるようになったんです。

ディープラーニングとは、脳の仕組みを模した学習モデルのことです。

ディープラーニング登場以前では、画像のどこに着目して識別するか、人間が設定する必要がありました。例えば、ゾウであれば「耳の形」や「鼻の形」に着目して判断するように、人間が設定しなければなりませんでした。この特徴の組み合わせを「特徴量」といいます。

ディープラーニングでは、この特徴量を人間が設定するのではなく、学習対象のパラメータとして設計することができます。そのため、人間が設定するには複雑すぎる特徴を見つけ出せるようになり、精度の高い分類や判別が可能になりました。

f:id:itstaffing:20210113102527j:plain
なるほど〜! 人工知能、機械学習、ディープラーニングの違いがよくわかりました!

  まとめ

 
人工知能

・代表的なプロセスは「学習」と「推論」
■「学習」とは・・・情報から将来使えそうな知識を見つけること
■「推論」とは・・・知識をもとに、新しい結論を得ること

機械学習

・人工知能の中に機械学習という分野がある
・機械学習とは「大量の学習データを機械に読み込ませ、そのデータを分析することで分類や識別 ルールを作ろうとすること」

ディープラーニング

・脳の仕組みを模した学習モデル
・機械学習という分野の中に、ディープラーニングという手法がある
・機械学習のスピードをより向上させるために、ディープラーニングが編み出された
■「特徴量」を人間の手で設定する手間を省ける&人間が設定するには複雑すぎる特徴を見つけ出せるようになった

f:id:itstaffing:20210113102524j:plain
こうして発展してきた機械学習ですけど、具体的にはどこでどんなふうに活用されているんでしょう?
f:id:itstaffing:20210113102532j:plain
よくぞ聞いてくれました!実は、あっと驚く意外な分野でも活用されているんですよ!次回をお楽しみに。

「第3話 機械学習の活用事例!意外な分野でも活用されている!?」 へ続く(3月末公開予定)

第1話 機械学習の仕事内容って?実はコードを書くだけじゃない!

【筆者】
早川 敦士さん
株式会社FORCASの分析チームにてリーダーを務める傍らで、株式会社ホクソエムで執行役員として従事。新卒でリクルートコミュニケーションズに入社しWeb広告やマーケティングオートメーションなどのB2Cマーケティングを経験し、FORCASではB2Bマーケティングプラットフォームのデータ分析および開発を担当している。大学在学中に『データサイエンティスト養成読本』(技術評論社刊)を共著にて執筆。その後も『機械学習のための特徴量エンジニアリング』(オライリー・ジャパン刊)や『Pythonによるはじめての機械学習プログラミング』(技術評論社刊)などで執筆活動を続けている。国内最大級のR言語コミュニティであるJapan.Rを主催。Youtubeチャンネル『データサイエンティストgepuro』で動画を投稿。
・Twitterアカウント

湊川 あいさん
フリーランスのWebデザイナー・漫画家・イラストレーター。マンガと図解で、技術をわかりやすく伝えることが好き。 著書『わかばちゃんと学ぶ Git使い方入門』『わかばちゃんと学ぶ Googleアナリティクス』『わかばちゃんと学ぶ Webサイト制作の基本』『運用ちゃんと学ぶ システム運用の基本』『わかばちゃんと学ぶ サーバー監視』が発売中のほか、マンガでわかるGit・マンガでわかるDocker・マンガでわかるRuby・マンガでわかるScrapbox・マンガでわかるLINE Clova開発・マンガでわかる衛星データ活用といった分野横断的なコンテンツを展開している。
・Amazon著者ページ
・Twitterアカウント

  わかばちゃんが登場する書籍いろいろ   

 
 
f:id:itstaffing:20210113102514j:plain  f:id:itstaffing:20210113102516j:plain
 
f:id:itstaffing:20210113102519j:plain  f:id:itstaffing:20210113102521j:plain


わかばちゃんと学ぶシリーズ(Amazonページ)

特別編集 VBA

f:id:itstaffing:20210209095952j:plain

  パソコンにExcelやAccessが入ってさえいれば、環境構築が不要ですぐに利用できるプログラミング言語の「VBA」。手軽に学べて、多くの職場で求められることが多いスキルです。事務のお仕事からエンジニアに転身した方のインタビューでも、はじめはExcelの「VBA」と「マクロ」を学んだことがキッカケだったそう。なにか言語を習得したいと思う方は、まずはVBAを学んでみてはいかがでしょうか。

Pickup

1:初心者でもエクセルの「マクロ」と「VBA」が理解できる!

記事の内容
・Excelの「VBA」と「マクロ」
・Excel VBAができること
・難しいと思われがちな「ソースコード」の読み方

2:VBA+SQLで作るAccessデータベースアプリケーション

記事の内容
・Accessの「VBA」と「マクロ」
・一般的なデータベースシステムとAccessの違い
・Access特有の機能「連結」

3:プログラミングとアルゴリズムの学び方

記事の内容
・プログラミング言語を学ぶ前に知っておきたいこと
・「VBA」は、すぐに学び始めたい方におすすめ
・どうやってプログラミング言語を学ぶか

4:インタビュー:すべてはExcelの使いこなしから始まった。事務からSEへの転身の秘訣は面倒くさがること!

記事の内容
・エンジニアへの第一歩は、Excelの「マクロ」→「VBA」を勉強したことから
・ExcelやAccess、関数やマクロ、調べたことはその都度手書きでノートにまとめる

特別編集 RPA

f:id:itstaffing:20210120160535j:plain

事務作業などを自動化し、業務の効率化に繋がるRPA。コロナ禍で導入する企業も増え、いま注目されているツールの一つです。そこで今回は、RPAの基本や現場での事例、ロボット開発の手順などを解説した記事をまとめました。今後もRPAに代替させる業務が増えると予想されていますが、はじめに押さえておきたいことや特徴を正しく理解しておきましょう。

Pickup

1:RPAの基本から導入の実務まで~RPA未経験者でもOK~

記事の内容
・そもそもRPAとは
・プログラミングスキルは必要?
・RPAを導入して成功している企業の仕組み

2:今注目のRPAの考え方を知り、実務に活かす

記事の内容
・RPAとこれまでの自動化ツールとの違い
・まずは無料でRPAを試してみよう
・現場で使われている事例

3:プログラミング未経験者でもできる!動かして学ぶRPA超入門ハンズオン

記事の内容
・RPAツール「SikuliX(シクリ)」を使って、簡単なロボットを作ってみよう
・「SikuliX」のちょっとしたテクニック

4:サーバーから見るシステムとITの動向~システム開発未経験者でもOK!

記事の内容
・サーバーから命令や指示を出し、配下のコンピュータおよびRPAに処理をさせる
・RPAのソフトウェア構成

第1話 機械学習の仕事内容って?実はコードを書くだけじゃない!【漫画】未経験なのに、機械学習の仕事始めました 

f:id:itstaffing:20210113102454j:plain
f:id:itstaffing:20210113102535j:plain
f:id:itstaffing:20210113102538j:plain
f:id:itstaffing:20210113102541j:plain
f:id:itstaffing:20210113102544j:plain
f:id:itstaffing:20210113102546j:plain

・Configuration:設定

   機械学習システムに必要な設定をする

・Data Collection:データ収集

   機械学習するためのサンプルデータを集める

・Data Verification:データ検証 / データ照合

   データの不備を検証

・Feature Extraction:特徴抽出

   機械学習に必要な特徴量の抽出

・Machine Resource Management:マシンのリソース管理

   システムを動かすサーバーの管理

・Analysis Tools:分析ツール

   metabaseなどの分析ツールの整備

・Process Management Tools:プロセス管理ツール

   バッチなどの処理を管理

・Serving Infrastructure:インフラの提供

   機械学習システムを動かすためのサーバーやネットワークを構築する

・Monitoring:監視

   サーバーやネットワークが正常に動いていることを監視する

 

f:id:itstaffing:20210113102524j:plain
機械学習の仕事って、こんなにたくさんあるんだ!ちなみに、早川さんはどの部分の仕事を担当されることが多いんですか?
f:id:itstaffing:20210113102532j:plain
僕はデータ収集、データ検証、特徴抽出、分析ツール、プロセス管理ツールを主に担当しています。設定、マシンのリソース管理、インフラの提供、監視はインフラエンジニアに協力を求めながら進めてます。

 

  注目が高まるデータサイエンティスト    

Harvard Business Reviewの2012年10月号で、21世紀で最も魅力的な職業としてデータサイエンティストが紹介されました。国内では 2010年からR言語勉強会 Tokyo.R が開催され技術的な知見やビジネス活用の情報交換が積極的にされています。日経 XTRENDの記事「マーケ系ミドルは平均年収753 万円 データ系求人は 7.5 倍」によると、2017年4~6月から2019年4~6月の2年間でデータサイエンティストの求人が7.5倍に急増しており、国内の産業界でも非常に注目されていることがわかります。

総務省による「令和2年 情報通信白書」では、分析に活用されているデータが5年前と比較して多岐に渡ることが報告されています。特に盛んになっているのは、自動的に取得されるデータの活用です。たとえば、POSデータやeコマースにおける販売記録データや、アクセスログ・センサーデータなどです。

f:id:itstaffing:20210113102549j:plain

このようなデータを用いて、売上を増やすための研究・開発に取り組む企業が増えています。民間企業におけるデータサイエンティストは、データを収集・分析することでビジネス成果を上げる業務をしています。

  機械学習は、データサイエンスの中の1領域    

機械学習とは「大量の学習データを機械に読み込ませ、そのデータを分析することで分類や識別のルールを作ろうとすること」です。

巷には似たような意味の言葉が氾濫していますね。データサイエンス、人工知能、ディープラーニングなどです。これらはしばしばバズワードとして揶揄されることがあります。使用者や批判者のどちらにも惑わされることなく、冷静に物事を見る力が求められます。

f:id:itstaffing:20210113102532j:plain
それぞれが意味することは似ていますが、異なることが多いんです。データサイエンスに関わる業務や業界の変化が激しいので、次々と新たな用語が生まれる背景があるんですよね。
f:id:itstaffing:20210113102529j:plain
たしかに、新しい言葉で見栄えがするから、ついつい使ってしまいがち。でも、それぞれ違いを説明しなさいと言われたらむずかしいですね…!

データサイエンスはデータを利活用するアプローチを指すことが多く、確率統計、機械学習、情報工学、データベースなどの理論や技術が必要になります。

その応用先は工学に留まらず、医学や社会学、人文科学など幅広く活用されています。データサイエンスは、データ活用が注目されてから生まれた多くのバズワードを内包する表現として定着しました。機械学習も、データサイエンスの1領域です。

f:id:itstaffing:20210113102527j:plain
機械学習 = データサイエンスではなくて、機械学習はデータサイエンスの中の1領域なんだ!

  データサイエンティストの仕事って、何をするの?    

データサイエンティストの担当は、データの利活用に関する領域すべてです。プロジェクトの流れはCRISP-DM という IBM が提案するライフサイクルが参考になります。

f:id:itstaffing:20210113102552j:plain
「ビジネスの理解」「データの理解」「データの準備」「モデリング」「評価」「展開」の6ステップが求められます。これは一人で全てを担うのではなく、チームとして取り組むことが多いです。

「ビジネスの理解」や「データの理解」はプロジェクトマネージャー、マーケター、営業のような顧客への接点がある人と共同で取り組むことが多く、顧客に対してヒアリングを直接実施することもあります。

「データの準備」はインフラエンジニアやデータ基盤エンジニアと連携して行います。データサイエンティストが単体で実施するのは「モデリング」のみであることが多く、「評価」はビジネス的な判断が必要になるケースもあるので、単独では実施しない職場もあります。

「展開」はサービスとして使える状況にして施策を実行するところまで含むので、サーバーサイドエンジニアの協力が必要になる場面があります。組織環境やプロジェクト内容に応じて関わる人が変わるため、情報共有や議論を正確に実施する力が求められます。

  実は、機械学習コード(ML Code)を書くよりも、その周辺の仕事のほうが多い  

Google エンジニアによる論文で、機械学習システムの開発における割合を示す図が提唱されて話題になりました。

f:id:itstaffing:20210113102511j:plain

中心にある黒い箇所が機械学習コード(ML Code)です。

機械学習というと私たちがイメージするのは「アルゴリズムを使って機械学習のコードを書く」ことですが、実はそれはシステムのごく一部でしかないということが述べられています。

組織の規模によって異なりますが、データサイエンティストが開発するべき部分は、実は機械学習周辺の開発の比重が大きいことがわかります。

 
f:id:itstaffing:20210113102532j:plain
この図のとおり、データサイエンティストの仕事は、実は機械学習のコードそのものではなく、データの収集や検証、インフラの構築や監視など、周辺の開発の比重が大きいんです。これはデータサイエンティストとして働いている自身の経験においても納得感があります。
f:id:itstaffing:20210113102524j:plain
機械学習コード(ML Code)が占める割合が、想像以上に小さくてびっくりしました!ひとくちにデータサイエンティストと言っても、それぞれ得意領域があるんですね。

  まとめ    

機械学習とは

・大量の学習データを機械に読み込ませ、そのデータを分析することで分類や識別のルールを作ろうとすること
・機械学習は、データサイエンスの中の1領域

データサイエンティストの仕事の流れ

CRISP-DM
■「ビジネスの理解」「データの理解」「データの準備」「モデリング」「評価」「展開」の6ステップ
■人で全てを担うのではなく、チームとして取り組むことが多い

実は、機械学習コード(ML Code)を書くよりも、その周辺の仕事のほうが多い

・Configuration:設定
・Data Collection:データ収集
・Data Verification:データ検証 / データ照合
・Feature Extraction:特徴抽出
・Machine Resource Management:マシンのリソース管理
・Analysis Tools:分析ツール
・Process Management Tools:プロセス管理ツール
・Serving Infrastructure:インフラの提供
・Monitoring:監視

 

f:id:itstaffing:20210113102532j:plain
データサイエンティストの仕事のイメージが、最初よりもハッキリしましたか?
f:id:itstaffing:20210113102527j:plain
はい!ところで、まだわからないことがあるんですけど……。人工知能、機械学習、ディープラーニングって、具体的には何が違うんですか?
f:id:itstaffing:20210113102532j:plain
おおっ、いい質問ですね。それについては、次回ガッツリお話ししましょう!

「第2話 人工知能、機械学習、ディープラーニングの違いとは?」へ続く

わかばちゃんと学ぶ機械学習、いかがでしたか。 機械学習に関する記事は他でもたくさん出ていますが、本連載は読者の皆さんが具体的な仕事のイメージができるようになることを目指して制作しています。ぜひ続きを楽しみにお待ちください。

本記事以外にも、リクルートスタッフィングでは、エンジニアのスキルアップを応援するため、登録者限定の記事やイベントなどを配信しています。 リクルートスタッフィングでの就業に関わらず使えるものですので、これを機にお役立てください。

リクルートスタッフィング

【筆者】
早川 敦士さん
株式会社FORCASの分析チームにてリーダーを務める傍らで、株式会社ホクソエムで執行役員として従事。新卒でリクルートコミュニケーションズに入社しWeb広告やマーケティングオートメーションなどのB2Cマーケティングを経験し、FORCASではB2Bマーケティングプラットフォームのデータ分析および開発を担当している。大学在学中に『データサイエンティスト養成読本』(技術評論社刊)を共著にて執筆。その後も『機械学習のための特徴量エンジニアリング』(オライリー・ジャパン刊)や『Pythonによるはじめての機械学習プログラミング』(技術評論社刊)などで執筆活動を続けている。国内最大級のR言語コミュニティであるJapan.Rを主催。Youtubeチャンネル『データサイエンティストgepuro』で動画を投稿。
・Twitterアカウント

湊川 あいさん
フリーランスのWebデザイナー・漫画家・イラストレーター。マンガと図解で、技術をわかりやすく伝えることが好き。 著書『わかばちゃんと学ぶ Git使い方入門』『わかばちゃんと学ぶ Googleアナリティクス』『わかばちゃんと学ぶ Webサイト制作の基本』『運用ちゃんと学ぶ システム運用の基本』『わかばちゃんと学ぶ サーバー監視』が発売中のほか、マンガでわかるGit・マンガでわかるDocker・マンガでわかるRuby・マンガでわかるScrapbox・マンガでわかるLINE Clova開発・マンガでわかる衛星データ活用といった分野横断的なコンテンツを展開している。
・Amazon著者ページ
・Twitterアカウント

  わかばちゃんが登場する書籍いろいろ   

 
 
f:id:itstaffing:20210113102514j:plain  f:id:itstaffing:20210113102516j:plain
 
f:id:itstaffing:20210113102519j:plain  f:id:itstaffing:20210113102521j:plain


わかばちゃんと学ぶシリーズ(Amazonページ)

【動画レポート】ITIL(R)の基本。技術者であってもサービスを理解しよう

この記事では、動画「ITIL(R)の基本。技術者であってもサービスを理解しよう」をレポートします。

今回の動画では、ITサービスマネジメントのフレームワークとして世界中で利用されているITIL(R)の基本、それを理解するためのITサービスマネジメントの考え方について、初心者にもわかりやすく解説していただきました。

■POINT
・ITIL(R)とは
ITサービスマネジメントにおける、成功事例や役立つ知識を体系的にまとめたフレームワーク
・開発技術者もITIL(R)を活用しよう
ITIL(R)とは、戦略・設計・移行・運用・改善のITサービスのライフサイクルを対象に、どのように管理するかをまとめたものでもある。昨今はIT業界だけでなく、さまざまな業界で注目されている
 
【講師プロフィール】
最上 千佳子さん
システムエンジニアとしてオープン系システムの提案、設計、構築、運用、利用者教育、社内教育など幅広く経験。2008年ITサービスマネジメントやソーシング・ガバナンスなどの教育とコンサルティングを行うオランダQuint社の日本法人 日本クイント株式会社へ入社。ITIL(R)認定講師として多くの受講生・資格取得者を輩出。2012年3月、代表取締役に就任。ITSM、リーンIT、ソーシング・ガバナンス、DevOps、アジャイル等、ITをマネジメントという観点から強化しビジネスの成功に貢献するための、人材育成と組織強化のコンサルティングに従事。著書「ITIL(R)はじめの一歩 スッキリわかるITIL(R)の基本と業務改善のしくみ」

  改めて考える「サービス」とは    

サービスとは一体どのようなものを指すのか。普段あらたまって考えたことはありませんが、ITIL(R)では、きちんと定義されています。単に値下げ販売をすればサービスになるのでしょうか? そうではないことを、最上さんは、ある八百屋のエピソードを通じて解説してくださいました。

f:id:itstaffing:20210105142912j:plain
▲サービスを提供する側の一方的な思い込みや押し付けは、決してサービスにならないだけでなく、ビジネスという観点から、重要な顧客を失ってしまう危険性すら持っている

では、ITIL(R)が定めるサービスの定義は、どのようなものなのでしょうか。

f:id:itstaffing:20210105142914j:plain
▲上がITIL (R)2011によるサービスの概念。下がITIL 4によるサービスの概念

サービスは、顧客にとって価値があること。もう一つのポイントは、顧客が成果を得られる=価値があることなのだそうです。

f:id:itstaffing:20210105142917j:plain
▲顧客がコストやリスクを負うことなく成果を得られるというところが大切。コストやリスクはサービスプロバイダ(サービス提供者)が管理する

八百屋の例では、もう一山トマトを付けるというサービスが、A子さんにとっては、食べきれそうもないものを重たい思いをしながら持って帰らせるという点で、コストやリスクを顧客に負わせているため、価値の高いサービスとは言えません。

  改めて考える、「マネジメント」とは?    

続いてマネジメントについてです。マネジメントというものも、普段は漠然と考えていましたが、ITIL(R)ではきちんと定義されているそうです。まずはマネジメントの位置づけを紹介してくださいました。

f:id:itstaffing:20210105142921j:plain
▲マネジメントをするためには、コントロールが前提となり、コントロールするためには測定が前提となり、測定をするには定義が前提となる

上図のそれぞれを見ていきます。まず、定義においては、次の3つを決めることが大切なのだそうです。

・目的と目標

目的とは「何のためにするのか」すなわち行動の根拠。目標は「どこを目指すのか」ということ

・活動

目標を達成するために「何をするのか」、つまり実施すべきこと

・測定項目

サービスの品質向上のために「何を測るのか」ということ

これらの定義を測定することにより、現状を見える化し、計画通りに実施できているか、立てた目標に達成しているかといったことを判断していきます。

そして、定義から外れていた場合に軌道修正をするのがコントロールです。マネジメントは、目標を達成したら、さらなる目標を決め、進化しつづけること。そのためにはコントロールしなければなりません。

マネジメントには成熟度の指標あり、レベル0からレベル5まで6段階あります。

f:id:itstaffing:20210105142924j:plain
▲上に進むにつれ成熟度が高くなる。組織としての標準的なプロセスが定義されるレベル3でようやくコントロールされている状態に達する

  あらゆる業務で活用する2大マネジメント  

世の中には数多くのマネジメント手法が存在しますが、その中でもあらゆる業種・業務の中で活躍する2大マネジメントがあります。それがプロジェクトマネジメントとサービスマネジメントです。

そもそも、プロジェクトとサービスの違いはどのようなものでしょうか?

f:id:itstaffing:20210105142928j:plain
▲プロジェクトは納期があり成果物が決まっているが、サービスは納期が決まっておらず、継続的に顧客に価値を提供し続けるという点が大きく違う

それぞれの具体例を旅館の新しいサービスのエピソードを例に説明してくださいました。ある旅館で次のようなサービスを考案しています。

f:id:itstaffing:20210105142931j:plain
▲これは一見するとプロジェクトマネジメントのように見えるが、サービスマネジメントの一環

サービス戦略が決定した後は、具体的な作業に移ります。

f:id:itstaffing:20210105142933j:plain
▲このフェーズは納期や予算に収まるようにプールを増築するためのものであり、納期があり、成果物が決まっているため、プロジェクトマネジメントが必要

例えば、このような作業はサービスではなくプロジェクトと言えます。

f:id:itstaffing:20210105142936j:plain
▲具体的なサービスを実施するために必要なものなので、サービスマネジメントに該当する

このように、プロジェクトとサービスは普段の業務の中に混在していることが珍しくないということでした。

  ITサービスマネジメントの3つのP    

続いて、ITサービスマネジメントを成功させるために必要とされる3つのPについて。それは次のようなものだそうです。

・Process(プロセス)
・Product(製品/ツール/技術)
・People(人材)

最近ではPartner(パートナー)を加え、4つのPが提言されているそうですが、本動画では基本となる3つのP を紹介してくださいました。

・Process(プロセス)

普段、プロセスという言葉を分かったつもりで使っていますが、具体的にはどういうものなのでしょうか。

f:id:itstaffing:20210105142939j:plain
▲左下の図のように、いくつかの活動が時系列につながっており、そのうちのいくつかにはインプットがあり、またいくつかにはアウトプットがある

図のように、プロセスとは仕事の流れをきちんと決めることと言え、プロセスの導入により、サービス提供に関わるあらゆるメンバーが同じように活動すること(プロセスの標準化)がとても重要になります。そして、アウトプットデータを蓄積、分析することでさらなる改善に役立てること、ここまでできて初めて「マネジメントができる」と言えるのだそうです。

ITIL(R)では、何をどのように管理するべきかと、そのためのプロセスの例が紹介されているとのことです。例えばその一つとして次のインシデント管理プロセスがあります。

f:id:itstaffing:20210105142942j:plain
▲ITIL(R)で紹介されている、インシデントを管理するためのプロセス。インシデントは、あくまでもシステム障害やプログラムのバグではなく、サービスの中断、サービス品質の低下であることがポイント。いかに迅速に回復させるかが目的

このプロセスでは、インシデント発生から終了までの時間を計り、それを短くしていく、優先順位を付けて高いものから解決していく、そして初期診断で答えが見つからない場合、次にすることは自分で詳しく調べることではなく、エスカレーションするかどうかを判断することなどが求められるとのことです。

このとき、判断基準は自分で調べるのと、エスカレーションするのとで、どちらが早く解決するかということだそうです。なるほど!と思った方や過去に発生したインシデントを思い出した方も多いのではないでしょうか。

・Product(製品/ツール/技術)

マネジメントを効率的に、抜けが無く、より効果的に実現するためにツールを活用することが重要だそうです。

・People(人材)

プロセスの実施もツールの活用も、そして高付加価値のサービス提供もすべては人が命。つまりPeople(人材)が大切になってきます。役割と責任を決め、プロセスやツールについて、また、技術、コミュニケーション、マネジメント、顧客の事業などについての教育を行っていくのだそうです。

  ITIL(R)の概要と価値    

ここまでサービスやマネジメントといった概念について学んできましたが、最後はITIL(R)の概要についてです。ITIL(R)の1つ前のバージョンITIL(R) 2011ではマネジメントを次のように考えるのだそうです。

f:id:itstaffing:20210105142945j:plain
▲上に並ぶ白い四角の1つひとつが管理とそのためのプロセスを示す。先ほど紹介したインシデント管理プロセスも右上の方にある。下の青いフローが、サービスのライフサイクルの各段階(フェーズ)を示している。こうしてサイクルを回すことでサービス品質を向上させていく

さらに最新バージョンのITIL 4では、プロセスという考え方を少し広げ、プラクティス(事例)を包含し、段階別ではなく、次のような3つのカテゴリに分けてまとめているそうです。

f:id:itstaffing:20210105142949j:plain
▲まとめ方は変わっても、基本的な考え方、何を管理するかという部分は変わっていない。真ん中の列の上から5番目にやはりインシデント管理がある

最後に、ITIL(R)の価値について、次のように締めくくってくださいました。

f:id:itstaffing:20210105142951j:plain
▲ITIL(R)が世界中で採用されているのは、こうした価値が数多くの企業や現場で認められているから

ITサービスマネジメントと言われても、具体的に何をするのか、あまり考えたことがない方もいらっしゃるかと思います。今回の動画をキッカケにして、基本的なことや、エンジニアをはじめ、どのような仕事でもITIL(R)の考え方の重要性について理解できたのはないでしょうか。

まだ動画を見られていない方は、ぜひ「ITIL(R)の基本。技術者であってもサービスを理解しよう」をご視聴ください。

▼動画「ITIL(R)の基本。技術者であってもサービスを理解しよう」
https://www.r-staffing.co.jp/engineer/entry/20201211_1

※ITIL(R)はAXELOS Limited の登録商標であり、AXELOS Limited の許可のもとに使用されています。すべての権利は留保されています

第19話 detached HEAD 状態って何?ブランチがない状態を解決する方法 【連載】マンガでわかるGit~コマンド編~

f:id:itstaffing:20201221130037j:plain

Webサービスやアプリ開発の現場では必須のバージョン管理システム「Git(ギット)」。Gitは、専用のソフトを使えばクリックで直感的に操作することもできますが、いざというときにコマンドが使えると便利です。 

前回の第18話では、コミットにタグをつける「git tag」を学びました。

・タグをつける

$ git tag タグ名

・タグを共有する

$ git push origin タグ名


今回の第19話では、detached HEAD 状態になってしまった場合の解決方法を学びます。このマンガを通して、わかばちゃんと一緒にGitの知識を身につけていきましょう!

【筆者】湊川 あいさん
【筆者】湊川 あいさん
フリーランスのWebデザイナー・漫画家・イラストレーター。マンガと図解で、技術をわかりやすく伝えることが好き。 著書『わかばちゃんと学ぶ Git使い方入門』『わかばちゃんと学ぶ Googleアナリティクス』『わかばちゃんと学ぶ Webサイト制作の基本』『運用ちゃんと学ぶ システム運用の基本』が発売中のほか、マンガでわかるGit・マンガでわかるDocker・マンガでわかるRuby・マンガでわかるScrapbox・マンガでわかるLINE Clova開発・マンガでわかる衛星データ活用といった分野横断的なコンテンツを展開している。

・Amazon著者ページ
・Twitterアカウント

  detached HEAD = ブランチがない状態!    

f:id:itstaffing:20201221125948j:plain
f:id:itstaffing:20201221125951j:plain
f:id:itstaffing:20201221125954j:plain

  detached HEADになってはダメ!でもなんで?

会社の先輩に「Gitを使うときは、detached HEAD にならないようにしてね」と注意されてしまった……!そのときこんな疑問が浮かびませんでしたか?

「detached HEAD ってなんのこと?その状態って必ず悪いものなの?」
「どういう段階を踏んだら detached HEAD になるの?」

そもそも detached HEAD が何なのかわからない状態で「ダメだよ」とだけ言われても、また気づかないうちに detached HEAD にしてしまうかもしれないですよね。

この記事では detached HEAD を深く理解するために

・そもそも detached HEAD とは何か?
・なぜdetached HEADがダメなのか?
・detached HEAD 状態を解消する方法

について、順に解説します。

  そもそもdetached HEADとは何か?   

detached HEADとは「ブランチがない状態」です。もう少し詳しく言うと「HEAD がコミットIDを直接指し示している状態」です。

第2話 ブランチとは?ポインタってどういう意味? で学んだとおり、実はブランチはコミットIDを指し示しているだけなんです。

f:id:itstaffing:20201221125957j:plain

そして、ブランチをさらに指差しているのが「HEAD」です。わかりやすく言うと、HEADは「現在地」です。今自分がチェックアウトしている場所を示します。

f:id:itstaffing:20201221130059j:plain

HEADはいつもひとつです。複数存在することはありません。そして、HEADはブランチを通してコミットIDを指し示しているのが正常な状態です。

f:id:itstaffing:20190617145541j:plain
Gitは、「自分が今チェックアウトしているコミット」をHEADという印をつけて判断しているというわけだ。
▼正常な状態
f:id:itstaffing:20201221130102j:plain

対して、detached HEADな状態は次のようになります。

▼detached HEADな状態
f:id:itstaffing:20201221130104j:plain

HEADがブランチではなく、コミットIDを直接指し示してしまっています。これは危険な状態です。

  なぜ detached HEAD はダメなのか?    

f:id:itstaffing:20190617145538j:plain
「HEADが直接、コミットIDを指し示している」のが危険な状態? それがなんでダメなの?
f:id:itstaffing:20190617145541j:plain
「ブランチがない」状態だからだ。
f:id:itstaffing:20190617145538j:plain
ブランチがなくてもコミットはできるよ?
f:id:itstaffing:20190617145541j:plain
ところが、それだと別のブランチに移動した瞬間、積み上げたコミットがたどれなくなってしまうんだ。
f:id:itstaffing:20201221130107j:plain

  detached HEAD 状態を解消する方法   

f:id:itstaffing:20190617145538j:plain
じゃあどうすればいいの?
f:id:itstaffing:20190617145541j:plain
簡単だ。ブランチがない状態ならブランチがある状態にすればいいのだ。

detached HEAD 状態を抜け出すには、そのまま、今チェックアウトしているコミット上でブランチを作ります。

$ git branch 任意のブランチ名

こうすることで、ポインタが

コミットオブジェクト←コミットID←ブランチ←HEAD

という正常な状態に戻り、detached HEAD 状態を抜け出せます!

f:id:itstaffing:20201221130110j:plain
f:id:itstaffing:20190617145538j:plain
やった~! detached HEAD、怖くなかった!

  まとめ 

今回は、detached HEAD について学びました。

■detached HEADとは

ブランチがない状態のこと。もっと詳しく言うと、HEADがコミットIDを直接指し示してしまっている状態のこと。

■detached HEAD状態はなぜだめか

そのままコミットを積み上げることもできるが、別のブランチにチェックアウトした瞬間、積み上げたコミットをたどれなくなるため。なぜならブランチがないから。

■detached HEAD状態を抜け出すには

そのまま、今チェックアウトしているコミット上でブランチを作る。

$ git branch 任意のブランチ名

このように detached HEAD は、ちゃんと理解すれば恐れることのない現象です。ブランチがない状態ならブランチがある状態にすればいいのです。これで、detached HEAD 状態になっても慌てず対処できますね。

『マンガでわかるGit ~コマンド編~』はこれにて最終回となります。 次回作のテーマは機械学習です。お楽しみに!

▼登場キャラクター紹介
f:id:itstaffing:20200122103525j:plain

▼わかばちゃんが登場する書籍

▼ これまでの「マンガでわかるGit」
リクルートスタッフィング

特別編集 Webクリエイター

f:id:itstaffing:20201211160321j:plain

未経験者だけれども、「HTMLやJavaScript、PHPを勉強してみたい」という声を多く聞きます。そこで今回は、フロントエンドエンジニアとサーバーサイドエンジニアに必要な基礎知識をご紹介。Webクリエイターの仕事内容は幅広く、その分学ばなければいけないことも多いですよね。現在この仕事に就いている方も、改めて基礎から学んでみませんか?Pythonはこちらでまとめています。

Pickup

1:フロントエンドエンジニアに転身したい人のための HTML&CSSの基礎知識とつまずかずに学ぶ方法とは

記事の内容
・フロントエンドエンジニアとは
・フロントエンドエンジニアに必要なスキル
・HTML&CSSの基礎知識をデモンストレーション形式で解説

2:著者が解説「確かな力が身につくJavaScript『超』入門」

記事の内容
・フロントエンドエンジニアとサーバーサイドエンジニアの違い
・JavaScriptができることと、できないこと
・見た目を書き換える機能、「DOM操作」と「非同期通信」とは

3:堅牢で使いやすいUIを効率良く設計するためにAtomic Designを知る

記事の内容
・アジャイル型の開発環境での大きな課題
・現場でAtomic Designを導入する際のポイントとメリット

4:プログラミング初心者の最初の壁、環境構築について学ぼう

記事の内容
・PHPとJavaScriptでWeb開発を目指す方へ。初めにつまずく環境構築
・言語の文法を試したい場合には、オンラインの実行環境を使ってみよう
・PHPの環境を構築する具体的なツール

5:初心者がつまずきやすいポイントを解説!PHP入門

記事の内容
・教材選びの基準は?効率的な学習方法
・PHPを深く理解しておけば、他言語にもすぐに移行できる