自動家(オートメーター)大地に立つ!! 〜オールドタイプの一年戦争〜

97
Asiyan Automation Alliance 2015 そんな自動化で 夫か? 夫だ、問題ない

Transcript of 自動家(オートメーター)大地に立つ!! 〜オールドタイプの一年戦争〜

Asiyan Automation Alliance 2015

そんな自動化で大丈夫か?大〜 丈夫だ、問題ない〜

…という題名での発表を予定しておりましたが、

当初構想とかけはなれてしまったため、

急遽、タイトルと内容と

意気ごみを変更して

お送りします。

Asiyan Automation Alliance 2015Asiyan Automation Alliance 2015

オッサン技術者の一年戦争〜 〜オ ー ル ド タ イ プ

Ver.1.0

Part.0

雑な

プロパガンダ

みなさん、自動化は好き

ですか?

みなさん、自動化

やってますか?

みなさん、自動家って

知ってますか?

みなさん、自動家って

知ってますか?

そりゃそうですよね。オレが

言い出したんだから♪

自動 とここでは呼ばせてもらいます!

自動家とここでは呼ばせてもらいます!

前回のあらすじ①

• 自動化が大好きで、実際に考え、機構を作り出す人の事を…

オ ー ト メ ー タ ー

自動 とここでは呼ばせてもらいます!

自動家とここでは呼ばせてもらいます!

前回のあらすじ①

• 自動化が大好きで、実際に考え、機構を作り出す人の事を…

オ ー ト メ ー タ ー

前年の今ごろ、AAA

というイベントが

ありまして…

そこでブチアゲ

させて頂いた。

んなの見てないし、

わけわからん!

では、こんなノリで

覚えて下さい。

自動化する人、

自動家。(オートメーター)

みなさんは

自動家ですか?

賛同いただけた方

賛同の方

-> ですよね!

いやー来てよかった!

今日を楽しみましょう!

ちょっと…という方

「いやぁちょっと…」の方

-> ですよね!では、本日から

名乗って行きましょう♪

ちょっと…という方

「いやぁちょっと…」の方

-> ですよね!では、本日から

名乗って行きましょう♪

スキを生じぬ

二段構え!

\(・_\)オイトイテ(/_・)/

大願!

自動家

自動化脳自動化術

自動化主義これを持つ人材、これを持つ人材、

チーム、現場、会社、国、チーム、現場、会社、国、

そして世界となれば…そして世界となれば…SS

前年のAAAにて

・自動家は必要だ!

・自動家はこういう人だ!

・そうでないとイヤだ!

というのを世に投げてみました。

大願!

自動家

自動化脳自動化術

自動化主義これを持つ人材、これを持つ人材、

チーム、現場、会社、国、チーム、現場、会社、国、

そして世界となれば…そして世界となれば…

自動家は、

増えたでしょうか?

①増えた!

①増えた!

そうでしょうそうでしょう!なるほど「一般化」

「コモディティ化」「キャズムをこえる」

してっいてるんですね!

②増えてません!

②増えてません!

それはいけませんね!「現場がしんどい」可能性があります。増やしていかないと

ですね!

現実側を追いつかせて

行くスタイル

このセッションでは、「一年間、一人のオッサンが自動家をやってみた」その実録と得られたモノ、また「自動化の考え方」

について話していきます。

Part.1

Who are you ?

自己紹介

三浦 一仁(ミウラ カズヒト)@kazuhito_m

こう覚えてください…

三浦 一仁(ミウラ カズヒト)@kazuhito_mあだ名が…

”みうみう”(1977年 、独身〜 )

の自動家(見習い)

Part.2

ミウラの一年

動いてみた

ついに「自動化」を

していく

役回りの仕事に!

どんな感じか…

スクラムマスター

スクラムチーム

改善テーマ

どんな感じか…

スクラムマスター

スクラムチーム

改善テーマ

• 自動家?…っぽい業、始まる–2014/08 から、客先常駐で

• アジャイル開発のチーム6人中の一人として–「タスクボードの付箋をこなす」広く知られたやり方のスクラムチーム

–スクラムマスター・プロダクトオーナー在• 「プログラマ 兼 自動化環境整える人」という役割–スクラムマスターから「改善のテーマ」を与えられ、それを月単位で実現していく

–通常の(プロダクト作る)プログラマもする

仕事の仕方

通常プロダクト開発

自動家業 1〜2割程度

1日

• 通常の開発の傍ら、1〜2割程度をCI/CDや自動化に「使って良い」という立場

通常プロダクト開発

自動家業

1日

• しかし…• ふっつーの「プログラム能力」が低く、一人分こなせず

• 自動家としても…(ry

実際には

通常プロダクト開発

自動家業

1日

• しかし…• ふっつーの「プログラム能力」が低く、一人分こなせず

• 自動家としても…(ry

実際には

実力不足、

うらめしい!(無論、自戒です)

やったこと

月度 実現したもの

2014/08 Jenkinsを使った継続的インテグレーション(CI)環境

2014/09 Dockerを使った継続的デリバリー(CD)環境(即時デプロイメントパイプライン)

2014/10 CDからつながるVNCSeverとSeleniumテスト環境&テスト方式

2014/11 メトリクス記録

2014/12 DB更新テスト環境&テスト方式

2015/01 〃

2015/02 ステージング環境へのデプロイ自動化(1アクション化

2015/03 本番環境デプロイ自動化(1アクション化)

2015/04 〃 (ここまでが課題)

2015/05 本番環境 as Code(頓挫・継続中)

2015/06 「開発環境をすべてLinuxでできるか実験」as Code(趣味・継続中)

• その他:チャットサーバ導入、音楽・音声の導入

• スクラムマスターに「改善のテーマ」を与えられ、実現方法考える仕事

• 2015/05以降は「自分で考えて改善していく」仕事

やったこと

•百聞は一見にしかず!

–※デモしまーす

やったこと

• 作ったもの

–結構、普通

•CD/CIの教科書に書いてある模範的な「ビルド/デプロイパイプライン」

–特筆点

•CIサーバ以外、すべてDocker内で挙動

–ポータビリティ高し

–サーバマシン一つでも再現できる

やったこと• 作ったもの

–結構、普通

•CD/CIの教科書に書いてある模範的な「ビルド/デプロイパイプライン」

–特筆点

•音がなる、しゃべる、パトランプ回る

–OK・NGの時、大体何かリアクション

–人語を操る

•CIサーバ以外、すべてDocker内で挙動

–ポータビリティ高し

–サーバマシン一つでも再現できる

現場の事情と

自身の

「これいいんじゃね?」

をやってみて

知った事

やってみた事 その1• パトランプ回してみた

–どんなこと?

•ソースのコミット時に自動テストを回し、NGになるとパトランプが回るようにした

–なぜ?

• テストが落ちている(異常な状況)を当たり前にしないため

–結果

•皆がCIサーバ(Jenkins)とソースの状態を気にするようになった

–想定外の結果

• 「回してなるものか!」のチキンレースに

やってみた事 その2• CIサーバが音を出す

–どんなこと?

• 自動テスト終了時に音(SE)を出した

• NG/OKともに別の音がなるように

–なぜ?

•個人的に…自分もチームメンバーも「働いてるで!」を知らしめたかった

–結果

• なんとなく実績をアピール出来た

–想定外の結果

•皆が他人のソースコミット状況を知り最新ソースをこまめに取得するように

問題発生!

問題は?

CIサーバのテスト種類も増えてきて、ジョブも増えて、それごとSEを割り当てていたら…

「この音は何の意味じゃったかなぁ?」というカオスなことに…

♪♪

♪♪

やってみた事 その3

• CIサーバが人語をしゃべる–どんなこと?

• CIサーバのジョブの最後にジョブ名などを日本語で話させるようにした

–なぜ?

• ジョブ情報を画面を見ずに知覚したかった

• 「サーバーが喋る」とか最高にロック!

–結果

•問答無用で結果がわかるようになった

–想定外の結果

•横のチームに波及した

やってみた事 その4• 音声をチャイムに転用してみた

–どんなこと?

•昼休み、定時など、イベント事に喋らせた

• その際、個人名を入れたりカウントダウンしたり、日毎に違う事言わせたり遊んだ

–なぜ?

• 「言い難い事」は機械に言わせたかった

–結果

•比較的時間に従うようになった

–想定外の結果

• チームにリズムを作った

•メンバーがJenkinsで遊ぶようになった!

やってみた事 その他

• その他色々– どんなこと?

• シチュエーション別大量テストサーバ作成

• 1〜2日の「短い仕事」にも自動化を(HTML自動修正など)

• Webの画面自動テスト&自動動画撮影

•ワンクリックデプロイ

– なぜ?

• 「自動化の良さ」をチームに解って欲しかった

– 結果

• チームメイトが要求とアイディアを出すようになった

そんな「自動家」として

一年間

現場でやってみて

考えた事

考えた事 やったことに関して–• 自分が「これが良い!」と思う事をやる重要性

–一般のセオリーでないものもやってみる

•例えば「テストOK時に音」など

–何かしらの知見は得られる

–ただし、チームを巻き込んでるので「予想を超える悪いFB」には即時撤退すること

• 自身の狙いと異なる「予想外の成果」が在ると知る

–「メンバーがJenkinsで遊び始める」など

–自分ひとりでは「実行できない」し「その価値に気づけない」ので、他者の協力と観測が必要

考えた事 - 自分が何を目指したか

• 自分が何を目指したか

–「与えられたテーマ」or「自身の工夫」において

–今思えば(暗黙のうちに)3つを意識

①人の感覚に働きかけるモノ

②全自動

③なんちゃら as Code

考えた事 - 「自動化」の意識調査

• 自身の現場での「人の自動化の意識」分布– ※三浦独自調べ&とある現場限定です

– ※絶対的に母数が少ないためやはり限定的です

自動化意識無し 自動化意識無し 40%40%

自動化意識在りも非実施 自動化意識在りも非実施 40%40%

自動化を実施 自動化を実施 20%20%

考えた事 - 「自動化」の意識調査

• ただし…

–誰かが継続的に意識を注入する事で変化

•自動家(的ポジ)、お客様、リーダなど

自動化意識無し 自動化意識無し 20%20%

自動化意識在りも非実施 自動化意識在りも非実施 40%40%

自動化を実施 自動化を実施 40%40%

考えた事 - 自動化は最初が肝心

• 「自動化」はやはり「最初が肝心」

–今回、自動化を実現するに、プロセス・仕組みで「なんでこの形?」が多かった

•その把握に苦労し、既存の仕組み変更に多くの労力を使った

–「自動化」を実現しないまでも…

•自動化を前提(かつToBe)とした

–ロードマップ

–プロセス&ツールデザイン

を初期にできるだけやると、おそらく苦労を抑えられるのでは?

Part.3

「自動化」って

いったい

何でしょね?

「自動化」の到達基準

「自動化」の到達基準

•何が出来たら「自動化が成った」といえるのか

•2つある気がします

①「道具」の側面

②「価値」の側面

「自動化」の到達基準 道具–

①「道具」の側面–「自動化の道具」は何を満たせば「自動化が成った」と言えるか

1.人が常時付き添うことなく動く

2.人がすることが「開始/終了の意思」と「最小限の判断」しかしない

3.見ようと思えば状態を観測できる※但し1.の「期間」は決めておかなければならない

「自動化」の到達基準 - 価値

②「価値」の側面–「自動化の価値」は何を満たせば「自動化成った」と言えるか

• コストが想定内

• 改善の効果がある–仕事の速度、確実性、ストレス、プロセスなど

• 施策にビジネス価値がある• ※定性的なものが多く明確化は若干難しい

「自動化」の到達基準 - 三浦の場合

• ミウラの一年ではどうだったか

–「道具」の側面•8割ほど出来てた

–作った道具に関してはほぼ「手放し運転」の現在

–若干「時折トラブル」というものも…

–「価値」の側面• 「スクラムマスターからの依頼」で自動化だったので「価値が在る」前提

–ビジネス観点を注入している・制御している人間がいれば適正な自動化になる

–SMと自動家の組み合わせは良い…かも?

• ただし今後(6月から)は自身の責任となる

「自動化」の到達基準 - 三浦の場合

• ミウラの一年ではどうだったか

–「道具」の側面•8割ほど出来てた

–作った道具に関してはほぼ「手放し運転」の現在

–若干「時折トラブル」というものも…

–「価値」の側面• 「スクラムマスターからの依頼」で自動化だったので「価値が在る」前提

–ビジネス観点を注入している・制御している人間がいれば適正な自動化になる

–SMと自動家の組み合わせは良い…かも?

• ただし今後(6月から)は自身の責任となる

プロダクトにおける

「プロダクト・オーナー」

のように、

自動化における

「オートメーション・オーナー」という人が居ても

良いかもしれない…

「自動化」の浸透プロセス

「自動化」の浸透プロセス

• 「自動化」する、という事を広義で見れば

–「道具出来た」が終わりではありません

自動化の道具作ったで!!

知らんがな…

「自動化」の浸透プロセス

1.自動化の道具が作られる

3.自動化の発想/要求がチームから出る

5.自動化道具がチームにより作られていく

2.チーム各員が自動化道具を使える

4.自動化道具がチームに運用維持される

「自動化」の浸透プロセス

1.自動化の道具が作られる

3.自動化の発想/要求がチームから出る

5.自動化道具がチームにより作られていく

2.チーム各員が自動化道具を使える

4.自動化道具がチームに運用維持される

一年で行けたのはココくらい?

ココまで行けたら、自動家不要!(卒業)

「自動家になる」はゴールなのか?

「自動家」はゴールなのか?

• 「自動家」は「完成体」で「ゴール」?

–と問われたのですが、その時自分は尊敬を込め「そう思ってる」と答えました

• が!?

–それでは「成るまで数年かかる」「担い手が居ない」ので…

• 今は

–「ロール」のようなもの

–組織中どんな立場でも「成りえる」もの

と考えるようになりました

ちょっと伝わるかわかりませんが…

• 「自動家」は「完成体」で「ゴール」?

–と問われたのですが、その時自分尊敬を込めは「そう思ってる」と答えました

• が!?

–それでは「成るまで20年かかる」「担い手が居ない」ので…

• 今は

–「ロール」のようなもの

–組織中どんな立場でも「成りえる」もの

と考えています

例えば…

超抽象的な図でごめんなさい…

世の中に新しくできた技術や仕組みやバズワードやトレンド

降ってくる

ソフトウェア開発の世界ハードウェアの世界 お客様の業務 ご家庭

要件考える人

ビジネス価値を上げる提案できへんかな?

開発者アプリ使いやすく出来へんかな?

開発現場をもっと作りやすくできへんかな?

自分を楽に出来へんかな?

機械回す人

仕事がもっと早く正確にならんかな? はぁー

生活がもっと楽に快適にならんもんかね?

今夜のおかずはなんじゃらほい?

お父ちゃん

ユーザに便利なサービスや製品でけへんかな?

担当者

新しい仕事を依頼できないかな?

「これを使って」を頭に、各立場で咀嚼して、活用の方法を考える

そして…

世の中に新しくできた技術や仕組みやバズワードやトレンド

降ってくる

ソフトウェア開発の世界ハードウェアの世界 お客様の業務 ご家庭

要件考える人

ビジネス価値を上げる提案できへんかな?

開発者アプリ使いやすく出来へんかな?

開発現場をもっと作りやすくできへんかな?

自分を楽に出来へんかな?

機械回す人

仕事がもっと早く正確にならんかな? はぁー

生活がもっと楽に快適にならんもんかね?

今夜のおかずはなんじゃらほい?

お父ちゃん

ユーザに便利なサービスや製品でけへんかな?

担当者

新しい仕事を依頼できないかな?

そこに「自動化の考え方」

を注入する人々…

個人的には尊敬を込めて…

世の中に新しくできた技術や仕組みやバズワードやトレンド

降ってくる

ソフトウェア開発の世界ハードウェアの世界 お客様の業務 ご家庭

要件考える人

ビジネス価値を上げる提案できへんかな?

開発者アプリ使いやすく出来へんかな?

開発現場をもっと作りやすくできへんかな?

自分を楽に出来へんかな?

機械回す人

仕事がもっと早く正確にならんかな? はぁー

生活がもっと楽に快適にならんもんかね?

今夜のおかずはなんじゃらほい?

お父ちゃん

ユーザに便利なサービスや製品でけへんかな?

担当者

新しい仕事を依頼できないかな?

そんな人々は全員「自動家」であり

「自動家ロール」な人々なんだ

ソフトウェア開発者は考える方面も広く可能性も多いので

若干世に出る事が多め?

さて、今回のAAAは…

この図を…

ソフトウェア開発の世界ハードウェアの世界 お客様の業務 ご家庭

この図を…

ソフトウェア開発の世界ハードウェアの世界 お客様の業務 ご家庭左に

90度回転

させて…

ソフトウェア開発の世界

ハードウェアの世界

お客様の業務

ご家庭

こうなりますわな

ソフトウェア開発の世界

ハードウェアの世界

お客様の業務

ご家庭

次に…

自動化

を対象に

分類¥詳細化

して…

・ITS/BTSやポータル、ソース管理との連携 ・自動トレーサビリティ構成管理・全体情報連携

・ソース自動生成・IDE/補助ツール

プログラミング

・設計書パースによるデータ化・用語辞書(IME的)などの補助ツール

設計・自動テスト・メトリクス取得

テスト

・自動作成・破棄・プログラム的な構成管理

環境(インフラ等)・1アクションビルド・1クリックデプロイ

ビルド・リリース

・”検知”によるテスト・ビルド・デプロイ

・プロセス(作業)同士の連結

・DevOps

継続的インテグレーション継続的デリバリー

ソフトウェア開発の世界

ハードウェアの世界

・ファクトリー・オートメーション ・モデル駆動によるテスト

お客様の業務

・EUC ・マクロ化や操作の記録/再生 ・データ連携 ・GUIを使ったユーザによるデザイニング

ご家庭

・サービス間連携 ・フューチャーホームコントローラ ・家電ネットワーク ・自立式家電(掃除機等)

どこかで見た図…ですね

・ITS/BTSやポータル、ソース管理との連携 ・自動トレーサビリティ構成管理・全体情報連携

・ソース自動生成・IDE/補助ツール

プログラミング

・設計書パースによるデータ化・用語辞書(IME的)などの補助ツール

設計・自動テスト・メトリクス取得

テスト

・自動作成・破棄・プログラム的な構成管理

環境(インフラ等)・1アクションビルド・1クリックデプロイ

ビルド・リリース

・”検知”によるテスト・ビルド・デプロイ

・プロセス(作業)同士の連結

・DevOps

継続的インテグレーション継続的デリバリー

ソフトウェア開発の世界

ハードウェアの世界

・ファクトリー・オートメーション ・モデル駆動によるテスト

お客様の業務

・EUC ・マクロ化や操作の記録/再生 ・データ連携 ・GUIを使ったユーザによるデザイニング

ご家庭

・サービス間連携 ・フューチャーホームコントローラ ・家電ネットワーク ・自立式家電(掃除機等)

AAAセッションをマッピングすると…

2^N台サーバのセットアップ@石井俊直氏

制約の中で上司の無茶振りを自動化してみた話

@梅津正洋氏(@ume2_sendai)

しくったシステムテストを立て直す。しくらない画像認識自動化ツールsikuli

@徳隆宏氏(@tokutaka)

統合的でシームレスなテスト環境を提供する@SRA 泉和行氏

「神は細部に宿りたまう」きめ細やかなテスト自動化 by Frienldy@石川達也氏(@StoneGuitar777)

PowerShellを用いた自動化手法について@牟田口大介氏(@mutaguchi)

Game's Continuous Delivery@森理 麟氏(@moririring)

ギアと開発とわたし @鈴木一裕氏(@kz_suzuki)

欧米風と関西風、2つのTest Automation Patterns@前川博志氏(@posaune)、森田誠氏

ついでにインフォメーション

懇親会(ビア

バッシュ)

参加者募集中!

Part.4

いろいろ

言うて

きましたが…大切にしたいモノ〜 〜

なんとなく思う事

• 皆さんもそうではないでしょうか?

–ここに居る皆さんは、そうであってほしいなと願って居ます

• なぜこんなに自動化したいのだろう

–「~を自動化して便利になったら楽しくね?」と夢を人に語る時が楽しかったという原体験

だから…したいのだな

• 「自動化」は「自分楽しい」とか「他者を快適に」というふうに「エンターテイメント」で「ポジティブ」な行為

• 技術を使って仕組みを作る

…それが私たち「自動家」

ある人は、漫画を書いて神様に…

ある人は、小説を書いて巨匠に…

じゃあ…自分たちは?

敷居は低く、望みは大きく

• 自動家居ないです

–成りましょう!

•なあに「オレ自動家です!」と宣言したらその日からです♪

–増やしましょう!

•例を見るまでもなく「こういう考えかたがある」と伝えるだけでも、自動家は生まれます

敷居は低く、望みは大きく

• すでに自動家だったかたも、今成られた方も、これから成る方も、本日でも一年後でも、

「自分の一年はこんな戦いでした!」

という話しが出来たなら、

「こんなに嬉しいことはない」

と思います。

最後に…(いつもの雑いヤツ)

自動家(オートメータ)やめへんで!

ご清聴

ありがとうございました。

ボツ稿(実際の発表は前のページまで)

なんとなく思う事

•古今東西…

–「人々の生活を便利で効率良く」の手段は、コンピュータの前から、産業革命の前から「自動化」です

「自動化」の考え方

「自動化」の考え方

• 「自動家」が「自動化」を考える時の考え方として…

システム構築の一年生が「(人間含む)多くの手段を使って柔軟に」と習うなら…

自動家は、基本的に「全自動」を狙う

「自動化」の考え方• 実現するもの(ToBe)が決まったら…

ドナタ社製

①ドンピシャなものを探す

「自動化」の考え方①ドンピシャなもの が無かったら?

②使える部品を探して繋ぐ

お手製

「自動化」の考え方②使える部品 も足らなければ?

③部分的に作る

俺モジュール

「自動化」の考え方③部分的に作る でもニッチもサッチもいかなければ?

④フルスクラッチ

俺製

俺製

俺製

俺製

「自動化」の考え方④がどうしても出来ないならば…

※別解-全自動化をあきらめる