テスト設計コンテスト チュートリアルに参加しました
はじめに
10月26日に【U-30クラス】テスト設計コンテスト'19 北海道チュートリアルに参加しました。 aster.connpass.com
目的
コンテストに参加する予定はありませんでしたが、テスト設計を体系的に学んだ事がなかったので良い機会だと思ったのと、先週に行ったイベント で社外に出てみたいという雰囲気が他メンバーにあったので、このタイミングで連れ出そう!という事で参加しました。
内容
下記の内容を説明した「【U-30クラス】テスト設計コンテスト'19 東京チュートリアル」のビデオ上映で行われました。
http://aster.or.jp/business/contest/doc/2019_U-30_V1.0.0%20.pdf
感想
これまで、社内等で体系立ててテスト設計について学ぶ機会がなかったので、非常に参考になりとても有意義な勉強会でした。
特に自分の中で有意義だったポイント
どんなテストをするのかを利害関係者とコンセンサスを得ることが重要。そのためにはテストを説明できる必要がある。 → 社内ではバグ0を目指すとか言われていましたがそれは無理。。でもなぜ無理なのか、どうするべきなのかがこの話しを聞きイメージできた。
テストは情報提供が価値 → どこまでをテストして、どういう価値基準でそのテストを行ったのかまでを含めて情報提供をすることが大事だと改めて意識できた。
テストを開発する → テスト設計についても開発と同様に捉える。今まで考えてもいなかったことだったので衝撃だった。
よく知られているテスト技法を考えるまでに行うことは沢山ある → これまで無意識的にやっていたテストの分類の仕方などにきちんと名前をつけられており、比較的理解しやすかった。
全体を通して
これまである意味適当に行っていたテスト設計の奥深さを知ることができた勉強会でした。
若干、要求設計・アーキテクチャ設計・詳細設計・テスト実施 という流れがウォーターフォールに近い感じがするので、アジャイルで1週間単位のスプリントなどをやろうとした場合には少し重すぎる印象はありましたが、 知っていて損はない内容だと感じました。
特に、テストの粒度をあらかじめ定義しお客さんと合意をしておく必要があるというのはとても参考になりました。
テスト設計についてはこれまで、あまり意識的に勉強をしてこなかった分野ですが、自分が知っていた内容と大きく変わっていることを知ることができ非常に楽しく、また奥深さを学ぶことができたので、今後意識して学習していこうと思える勉強会でした。
その他
勉強会の開催を前日に知ったので、社内での告知が遅くなりましたが、優秀な後輩を一人、初社外勉強会に連れ出せたので別の意味で参加してよかったです(笑)
社内カイゼンジャーニー読書会 クロージングイベント
はじめに
10/19(金)に社内カイゼンジャーニー読書会 クロージングイベントを開催しました。
このイベントではカイゼン・ジャーニー著者の一人である市谷さんを、札幌の弊社オフィスにお招きし講演を行って頂きました。
カイゼン・ジャーニー たった1人からはじめて、「越境」するチームをつくるまで
- 作者: 市谷聡啓,新井剛
- 出版社/メーカー: 翔泳社
- 発売日: 2018/02/07
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る
自分の想い
カイゼン・ジャーニーの読書会を社内で始めようと思った時から、著者の方々をお招きしようと考えていました*1。
その考えは、カイゼン・ジャーニーで石神さんを招いてのイベントとダブらせたかったということもありましたが、
- 社外の勉強会に参加したことががない人達に、行動すれば著者にも会えることを知ってもらいたい
- 本を出すような方の熱いパワーに触れることが出来る
- 著者と会い話しをすることで、本の内容を一段深く理解することが出来る
と考えていたからです。
特に、自分自身が経験した「札幌にいても、本を書くような雲の上の人と会うことが出来る」という感動を社内の人にも知ってもらいたいというのが一番の想いでした。
終わってみて
自分が他の人に「何か伝えることができれば」と思って読書会からクロージングイベントを企画・開催しましたが、終わってみると自分自身が得るものが非常に多かったです。
ゼロから1を作るのに自分の力だけでは敵わないという学び、自分の拙い企画に賛同してくれる人達の心強さ、一緒に作り上げた感動、などなど・・・
今回のイベントが自分にとっての新たな節目になりそうな、そんな日でした。
参加してくれた人達もきっと何か得るものがあったはず。
やってよかった!
*1:自分の力不足で新井さんをお招きすることができなかったことだけが非常に悔やまれます。。
社内カイゼンジャーニー読書会 読了
はじめに
社内の読書会で無事、カイゼン・ジャーニーを読了しました。
カイゼン・ジャーニー たった1人からはじめて、「越境」するチームをつくるまで
- 作者: 市谷聡啓,新井剛
- 出版社/メーカー: 翔泳社
- 発売日: 2018/02/07
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る
読了!!!
— K SHODA (@KO_SHO14) 2018年9月28日
上司から快諾を得られ(※)、業務時間で読書会に参加していない人たちも含めてのクロージングイベントを行うため、 まだ完全に終わったわけではないのですが、一通り読み終えることができた勢いに任せて、いまの気持ちを書いておきます。
※因みにその上司との会話
カイゼンジャーニーの社内読書会について相談していた上司が、興味を持って個人的に本を買ってくれていた!
— K SHODA (@KO_SHO14) 2018年8月22日
上司と「石神さんのような…」とか「江島のように…」とか話せるのは嬉しい誤算
考察
これまで何度か社内の読書会を開催していましたが、業務が忙しくなるに伴い失速してしまい最後まで完全に終えることができていませんでした。 今回はメンバーにも恵まれたところもあると思いますが、なぜ読書会をやり切ることができたのかをちょっと考えて見ます。
なぜ最後までできたのか
自分の完全に主観でしかないですが、以下の点で今回はうまく出来たと考えています
- 普段、技術書などを読む習慣のない人でもカイゼン・ジャーニーは読みやすい
- お昼ご飯を食べながらにしたので、業務が忙しくても参加しやすかった
- 読書会の告知や司会進行などを積極的にメンバーに一緒にやってもらい、自分たちの読書会という雰囲気を作れた
- クロージングイベントの企画でメンバーのモチベーションが保たれた
今後
クロージングイベントに向けて、あと2回ほどで読書会全体のふりかえりをやる予定です。 その際にメンバーからどうして最後までできたのか、何がよかったかなど感想を聞いてみたいと思います。
最後に
いやー、一先ず読書会で1冊読み切ることができて一安心しました。
これもカイゼン・ジャーニーが非常に魅力的な著書だったことが何よりだったと思います。(これをきっかけに読書会が継続してできると嬉しいな!)
社内読書会をこれからやってみようと思う人がいれば、ぜひこの本を最初にやって見ることをオススメします(笑)
社内カイゼン・ジャーニー読書会で学んだインセプションデッキ の素振りをしてみた
はじめに
9/13に社内でカイゼン・ジャーニーの読書会の実践編ということで、インセプションデッキ の素振りをしました。
本日の社内読書会は、カイゼンジャーニーで紹介されていプラクティス「インセプションデッキ」の素振り。
— K SHODA (@KO_SHO14) 2018年9月14日
果たして昼休みの短い時間でどこまで出来るのか?!
今回は前回の感想にも書いたように、参加者からぜひ読書会で学んだプラクティスを実践してみたいという提案を受けやることになったものです。
来週の読書会。
— K SHODA (@KO_SHO14) 2018年8月31日
参加者達からの提案で、次に進むのは一旦パスして、カイゼンジャーニーで出てきたプラクティスを素振りすることになりました。
参加者からこんな提案が出ると思ってなかったので非常に嬉しい😆
準備
普段通り、昼休みにご飯を食べながら行いました。 今回も10名強の人に集まってもらい、10分くらいでチーム分けと進め方を今回の発案者である後輩から説明してもらいました。
進め方は、時間があまり無いので、 「われわれはなぜここにいるのか」を作成するAチームと「エレベーターピッチ」を作成するBチームの2つに別け それぞれチームで30分程度で上記を作成。残り時間で作成したものを公開。という形。
テーマ
インセプションデッキ のテーマはメンバーで一番やりやすいということで、今やっている読書会についてにしました。
作成中
写真が載せられないのが残念ですが、各チーム全員で議論を繰り広げていました。 中にはご飯を食べ忘れて議論に集中している人も(笑)
作り方はチームごとに違い、Aチームは付箋を使い壁に貼りながら議論。Bチームは発案者が事前に準備した「エレベーターピッチ」のテンプレートに書き込みをしながら議論という形でした。
結果
時間がやはり足りなかったようで、もう少し詰めたいと言った感じもありましたが一応、発表できる形になりました。
「われわれはなぜここにいるのか」
- 業務を超えて意見交換をしたい
- ほかの人(社内+本の登場人物)の課題解決方法を知りたい
- 仕事に活かしたい → ほかの人の課題解決方法を知り、仕事に活かす
「エレベーターピッチ」
知識をつけてカイゼン したい
自分たち・一緒に仕事している人 向けの
カイゼン・ジャーニー読書会 というプロダクトは、
働き方をカイゼンし実践につなげるための勉強会である。
これは、複数人で1冊の本を読み進め議論することができ、
一人で本を読むのとは違って、
情報共有し、即実践できる環境が備わっている。
感想
初めてにしては、まあまあ良くできた感じになったと参加者からの感想や、やって見てよかったとの感想もありました。
やはり素振りは大事ですね。
第4、5回 社内カイゼンジャーニー読書会
はじめに
8/24、8/31に、社内でカイゼン・ジャーニーの読書会を行いました。
カイゼン・ジャーニー たった1人からはじめて、「越境」するチームをつくるまで
- 作者: 市谷聡啓,新井剛
- 出版社/メーカー: 翔泳社
- 発売日: 2018/02/07
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る
全員で読書会を行なっている感じを出したく、司会進行等もメンバーにやってもらうようにしていますが、思惑通りになってきて嬉しい限りです。
第4回 カイゼンジャーニー社内読書会
— K SHODA (@KO_SHO14) 2018年8月24日
後半に突入!何も言わなくても自分たちで進めてくれるようになってきた😃
カイゼンジャーニー社内読書会 開始。
— K SHODA (@KO_SHO14) 2018年8月31日
今日は17話〜19話。グループ毎に議論が活発にされている!
それぞれ持ち寄ったキーワード
第4回
第13話 お互いの期待を明らかにする
- 期待のギャップ
- 「チームにおける期待」を合わせる
- 互いの期待が合ってるチームがパフォーマンスを引き出し合える
- ドラッカー風エクササイズ
- コードを書ける人にコードを書かせる
第14話 問題はありませんという問題
- 「問題がない」が問題
- 「問題は必ずある」という前提
- ファイブフィンガー
- がんばれば、やれるから、困ってない
- こなし仕事
第15話 チームとプロダクトオーナーの境界
- 相手の仕事を理解
- 全員で向き合うスプリントレビュー
- 目的はユーザに価値を届けること
- あらゆる品質が同程度に重要なのではない
- 0-100ルール
- 狩野モデル
- リファインメント
第16話 チームとリーダーの境界
- ふりかえりとむきなおりの違い
- むきなおりは進むべき先を捉えて現在を正す
- 変わってしまったゴールを可視化
全体での議論を聞きながら個人的にメモした内容
- どこのチームも期待マネジメントはできていなさそう
- ドラッカー風エクササイズで自分ができることを言えないとは?
- ファイブフィンガーをやってみたいという人は多そう
- PO的な役割の人とチームにはなっていない
- むきなおりは大事だと思っている人もいる
- 合宿はみんなやって見たそうだけど敷居が高いイメージがある
第5回
第17話 チームと新しいメンバーの境界
第18話 チームのやり方を変える
- カンバン
- バリューストリームマップ
- ECRS
- 一人のヒーローはいらない。ヒーローはチーム。
第19話 チームの解散
タイムラインの振り返り
感謝のアクティビティ
見える化が改善への第1歩
タックマン
くす玉
全体での議論を聞きながら個人的にメモした内容
- 参加者がはじめて触れるプラクティスが多い印象
- ペアプロがうまくいかなかった人が多い
- モブプロはみんんやって見たい
- メンバー育成は社内でうまくできていない印象をみんな持っている
- 決まっているやり方をやめるということに驚きがあるようだ(決めたことは変えてはいけないと思っている?)
- アジャイルをよく知らない人たちも本を読むことでイメージができているようだ
- KPT以外のふりかえり手法があるのを知らなかった人は割と多い
- 学んだプラクティスをやってみたいという気持ちが感じられる
感想
読書会の回数を重ねるにつれて、参加者それぞれが慣れてきたこともあり時間配分もだいぶうまくできるようになってきた感じがあります。
2章までを終え、プラクティスを知ることはできていますが、「難しそう」とか「ちょっとやって見たけどうまくできなかった」と言ったプラクティスもいろいろ出てきており 学ぶだけでなくやってみることは大事だなと感じています。
そんな中、参加者からもプラクティスをぜひ読書会の中でやってみようと声が上がり次回でやってみることになりました!
来週の読書会。
— K SHODA (@KO_SHO14) 2018年8月31日
参加者達からの提案で、次に進むのは一旦パスして、カイゼンジャーニーで出てきたプラクティスを素振りすることになりました。
参加者からこんな提案が出ると思ってなかったので非常に嬉しい😆
こういう意見を大事にしながらカイゼンジャーニーを読み切り、その後も読書会を継続的にできたるようにファシリテートして行こうと思いました。
Ruby on Rails チュートリアル 環境構築
背景
仕事では .net C# を主戦場にしていますが、他言語も学習してみよう! ということで Ruby を選択。 ついでに .net MVC が影響を受けている rails も一緒に学習してみることにしました。
※Rubyの学習については、「プロを目指す人のためのRuby入門」を一通り終えている状態です。
プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plusシリーズ)
- 作者: 伊藤淳一
- 出版社/メーカー: 技術評論社
- 発売日: 2017/11/25
- メディア: 大型本
- この商品を含むブログを見る
目標
Ruby on Rails チュートリアルを一通りやって見るのを目標にします。
今回の範囲
チュートリアルではCloud9を使用して開発していますが、今回は自分のPC(MacOS)に環境を構築し進めていきます。 また、巷ではRubyやRailsをプロジェクト毎にバージョン管理する方が多いようなので、それもやって見ます。*1
環境構築
前提環境
rbenv
複数バージョンのrubyを簡単に切り替える環境を提供してくれるツールです。
参考サイト
rbenv を利用した Ruby 環境の構築 | DevelopersIO
rbenvとは?(rbenvを利用したRubyのインストール) - Qiita
rbenv + ruby-build はどうやって動いているのか - takatoshiono's blog
rbenvインストール後、Rubyのインストール・切り替えを行います。
Rubyインストール
- インストール可能なRubyのバージョンを調べる
「rbenv install --list」
rbenv install --list Available versions: ・ ・ 2.4.2 2.4.3 2.4.4 2.5.0-dev 2.5.0-preview1 2.5.0-rc1 2.5.0 2.5.1
- Rubyをインストール
「rbenv install <バージョン>」
rbenv install 2.4.4
- 環境全体のRubyバージョン指定
「rbenv global <インストール済みバージョン>」
rbenv global 2.5.0 ruby -v ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-darwin17]
$ cd rails-tutorial $ ruby -v ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-darwin17] $ rbenv local 2.4.4 $ rbenv version 2.4.4 (set by /Users/user/Projects/ruby/study/rails-tutorial/.ruby-version) $ ruby -v ruby 2.4.4p296 (2018-03-28 revision 63013) [x86_64-darwin17]
bundler
Railsをプロジェクト毎にインストールするため、先にbundlerをインストールします。 rbenvを使っているのでコマンドは「rbenv exec gem install bundler」を実行。
※ bundlerは全体で使うのでグローバルインストール
$ rbenv exec gem install bundler Fetching: bundler-1.16.3.gem (100%) Successfully installed bundler-1.16.3 Parsing documentation for bundler-1.16.3 Installing ri documentation for bundler-1.16.3 Done installing documentation for bundler after 4 seconds 1 gem installed
現在のrubyにインストールされたgemの一覧を調べる
$ rbenv exec gem list *** LOCAL GEMS *** bigdecimal (default: 1.3.2) bundler (1.16.3) io-console (default: 0.4.6) json (default: 2.0.4) openssl (default: 2.0.7) psych (default: 2.2.2) rdoc (default: 5.0.0)
参考サイト
Rails開発環境の構築(rbenvでRuby導入からBundler、Rails導入まで)(Macport編) - Qiita
Railsのローカルインストール
Railsをカレントディレクトリにインストールする まずはGemfileの作成と編集
$ cd rails-tutorial $ bundle init Writing new Gemfile to /Users/user/Projects/ruby/study/rails-tutorial/Gemfile $ vim Gemfile $ cat Gemfile # frozen_string_literal: true source "https://rubygems.org" git_source(:github) {|repo_name| "https://github.com/#{repo_name}" } gem "rails", "5.1.4" # ← ローカルに5.1.4(チュートリアルで使用しているバージョン)を指定
railsを vender/bundle ディレクトリ以下にインストール ( ls でGemfile.lock とvendorディレクトリが作成されたのを確認)
$ bundle install --path vendor/bundle $ ls Gemfile Gemfile.lock vendor
hello_app プロジェクトを作成
ようやくチュートリアルの「1.3 最初のアプリケーション」で使用するhello_appプロジェクトを作成します。 上記でインストールしたrailsを使用してプロジェクトを作成するため「bundle exec rails new」を実行します。 また「--skip-bundle」を指定してrails new 時に bundle install が発動しないようにします。
$ bundle exec rails new hello_app --skip-bundle $ ls Gemfile Gemfile.lock hello_app vendor $ cd hello_app $ ls Gemfile README.md Rakefile app bin config config.ru db lib log package.json public test tmp vendor
最後に作成したプロジェクト内でgemのインストールを行います。
この時も「--path vendor/bundle」を付けてプロジェクト専用にgemをインストールします。
(この bundle install --path vendor/bundle で、再びrails(及び関連Gem)が今度はRailsプロジェクトの vender/bundle ディレクトリ以下にインストールされる)
$ bundle install --path vendor/bundle
rails server
bundle でrails をインストールしたので rails server は以下のコマンドで実行します。
$ bundle exec rails server
Heroku セットアップ
1.5 からデプロイ先として使用するHerokuの環境構築を行います。
- CLIのインストール Herokuの公式に書いてある通り、Homebrewを使用してCLIをインストールします。 The Heroku CLI | Heroku Dev Center
$ brew install heroku/brew/heroku $ heroku --version [16:08:37] heroku/7.7.10 darwin-x64 node-v10.7.0
以上
*1:結果としてこれが一番大変でした。
第2、3回 社内カイゼンジャーニー読書会
はじめに
8/3、8/10に、社内でカイゼン・ジャーニーの読書会を行いました。
カイゼン・ジャーニー たった1人からはじめて、「越境」するチームをつくるまで
- 作者: 市谷聡啓,新井剛
- 出版社/メーカー: 翔泳社
- 発売日: 2018/02/07
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る
#kaizenJ 社内カイゼンジャーニー読書会 2回目開催
— K SHODA (@KO_SHO14) 2018年8月3日
今日は第5話から第8話
#kaizenJ 社内カイゼンジャーニー読書会 3回目開催
— K SHODA (@KO_SHO14) 2018年8月10日
今日は第9話から第11話
今まで他の誰かが決めた事をただやる事が多かったがWhyを考える事が大事だと感じてくれた気がする
第1回目を始めてから今のところ予定通り毎週行うことができています。 また、毎週10名強の方々に参加してもらえているので、はじめてよかったなと思います。
それぞれ持ち寄ったキーワード
第2、3回とも1回目と同じくたくさんキーワードを出してもらえました。
第2回
第5話 明日を味方につける
- 句点を一つ増やして申し訳なさを表現
- 1to1
- スプリントゴール
- 朝会がなくなった
- 今日やるべきことが認識できていない
- 1日の最初に1日の計画を立てる
- タスク再計画
- ふりかえりの効果
- 明日を味方に
- 今日のタスクマネジメントは明日のタスクマネジメント
- 何を明日に回しても良いかという判断ができる
第6話 境目を行き来する
- タスクの見える化
- タスクボード
- TODOには一定期間分のタスクのみ
- ParkingLot
- スイッチングコスト
- 複数のタスクは同時にやると作業の切り替えに負荷がかかり効率を落とす
- WIP制限
- 他人に渡したタスクも僕のタスク
第7話 二人ならもっと変えられる
第8話 二人から越境する
- 外にとびだしてみる
- そのまま自分の持ち場に持ち込むのはやめる
- タスクマネジメント
- 新しいことを始めるには小さく試みることからスタートすることが大切
- 小さく試みることからスタート
- リズムを大きく崩さないように仕事を進めていこう
- 今日やることを決めるということは、逆に今日やらないことを決めているんだ
- 一人で始めた見える化が周囲を巻き込む
- 氷山モデル
- 著名な人を呼ぶ
- それぞれの持ち場で
全体での議論を聞きながら個人的にメモした内容
- 本を通じて一人からでも始められることにいろいろ気付けている
- 朝会ではなく帰り際にやるという発想が出て面白い
- ふりかえりのファシリテーションは難しいと感じている人が多そう
- スイッチングコストについてこの本を通じて理解できた人もいてよかった
- タスク管理について若手が意識し始めたことは嬉しい
- カイゼンを一人でもはじめて見るという意識が出てきたかも?
- 新しいことをはじめて見るのにどのくらいの期間試したら良い?という質問 → ベテランから「気がすむまで」という回答。 こういう議論ができるのは良い
- 一人で始めたことに手助けしてくれる仲間ができるのはとても心強い
第3回
第9話
第10話
- つくるモノのイメージがあいまい
- 完成のイメージ
- プロダクトオーナーと会話を通じて理解する
- メンバー全員がプロダクトの完成に対して共通の理解を持つ完成の定義
- チーム全員で共同で思案し、計画策定していく
- 8時間を越えるタスクは粒度が大きすぎる
第11話
第12話
- 成功の循環モデル
- Working Agreement
- ルールは具体的で誰もが同じ見解で判断できるようなもの
- 関係の質から始める
- 結果の質からスタートしない
- ミーティングが長すぎる
全体での議論を聞きながら個人的にメモした内容
- スクラムに興味を持っている人が多数いる気がする
- 今までのやり方(ウォーターフォール)以外の選択肢が増えるのは良い
- カイゼンジャーニーをプロジェクトの必読書にするという意見はいいな
- 事前に決められたことに疑問を持たないで仕事をしている人が多いとみんなが気づくことができている
- Whyからはじめることの重要性
- インセプションデッキに興味を持っている人が多い
感想
2回目、3回目と回を重ねるにつれ、皆が慣れてきた感じで議論もいい雰囲気で行えている気がします。 また、議論の発表時に他のグループからだんだん質問も出るようになり良い読書会になっています。ただ、時間が足りなくなってしまいせっかくの議論を泣く泣く途中で打ち切ることもありこの辺は課題だなぁと。。 しかし、「プラクティスを知る」と「アジャイルに興味を持ってもらう」がそもそもの目標なのであまり多くは望まず、まずは最後まで本を読み切ることができるように進めて行きたいと思います。