Think Global Act Local ~北海道から世界へ~ 初音ミクの生みの親 クリプトン伊藤さんの講演

Think Global Act Local ~北海道から世界へ~ クリプトン・フューチャー・メディアの伊藤さん講演

今日は初音ミクの生みの親、クリプトン・フューチャー・メディアの伊藤さんが会社で講演してくれました! 伊藤さんの落ち着いた声のトーンとは裏腹に、とにかく熱く、面白い話が聞くことができました。 用意された2時間はあっという間に過ぎてしまいました。 クリプトン・フューチャー・メディアは「コンテンツ」×「技術力」で勝負している会社で、音で発想するチームを目指しているとのことです。 http://www.crypton.co.jp/

特に注力して話していただいたのは、初音ミクの話。 音声技術×コンピューターミュージック=歌唱合成技術 + キャラクターということで 今までに無いキャラクターと結びついたボーカロイドが生まれたとのことです。

権利関係もかなり考えられたようで、世の中のクリエイターがつながりやすいように、 気持ちよく創作活動ができるようにと考えて仕組みづくりをしている感じを受けました。 伊藤さんは創作の連鎖~共感の連鎖/ありがとうの連鎖と言っていて、 言葉だけではなく、それを仕組みにしているのは凄いなぁと感じました。 また日本だけではなく、世界の人をターゲットにしているというのもグッときました。

初音ミクはその活躍する世界も広がってきているようで、 最近では世界ツアーも開催されている模様。 なんと!札幌でも4/5(火)にあるようなので、行ってみたい!と思いました。 世界中で満員御礼が続いていて、中国はわずか10分で売り切れたとのことです。 凄い!!凄いぞ!初音ミク!!

最近では札幌のクリエイターやスタートアップの人を応援する取り組みをしているようです。 ・雪ミク ・ミライスト カフェ ・シメパフェ ・札幌移住計画

伊藤さんの地元愛をヒシヒシと感じました! やっぱり札幌いい街ですもんね~

最後に質問できる機会があったんだけど、 「最初の初音ミクのデザインはどうやって決めたんですか?」って聞いてみました。

伊藤さんの答えは、音楽のクリエイターが引かないようにコテコテの萌えではないデザインにしました、とのことでした。最後はなんとなく全体的にいいんじゃないかい?っていう雰囲気になったようです(笑

伊藤さん、企画してくれたHさん、本当にありがとうございました!!

ドラクエ風スキルマップ

あるとき突然『チームのキーマンが抜ける』というイベントが発生しました! まあ会社という組織ではよくありますよね(苦笑
チームメンバーが不安がっていたので、以前、楽天の川口さんに教えてもらったドラクエ風スキルマップを使って今の状況を可視化してみました。 これもまさにゲーミフィケーションって感じですねぇ~

スキルマップを作る過程

元々はWebアプリケーションエンジニアのスキルマップだったため、自分達に合うように数人でスキルマップを練り直しました。 これだけでもかなり盛り上がりましたッ!! 以下は川口さんのオリジナルから変更したところです。

  • 要件定義のスペシャリストとして、商人を追加。
  • 旅芸人はマネージメントのイメージに変更
  • スキルの方向を上方向に変更
  • 盗賊のスキルレベルの見直し
  • CやC++をイメージして文言を見直し
  • 特性に対応するキーワードを追加

f:id:nemorine:20160127135604p:plain

スキルマップを記述する

チームメンバーに実際に記述してもらったところ、通常の無味無臭なスキルマップより楽しくつけることが出来たとのことです。 まずはそれだけでも大成功ッ!!それとともに問題点がいくつかでました。

  • 下のスキルはないが、上はあるなど、スキルが飛ぶことがある。
    →そのまま素直につけてもらいました。
  • 文言が2個あり、片方にしか当てはまらないときはどうするのか?
    →そこまで厳密ではないので、今回はどちらかに当てはまればつけてもらいました。

これらの問題点に関しては次回以降の宿題になりそうです。

f:id:nemorine:20160127135610p:plain

チームの現状とキーマンが抜けた後の状態を把握する

チームメンバーからのスキルマップを合成して、キーマンがいる現状とキーマンが抜けたあとのイメージを共有しました。 予想通り問題がありそうというのがはっきりと分かりました。(図はイメージです) 自分達は数も出していて、1人は赤、2人は黄色、3人以上は赤色にしてみました。 特にキーマンというだけあり、その人しかもっていないスキルが多いと思います。

f:id:nemorine:20160127135616p:plain

f:id:nemorine:20160127135613p:plain

やってみた感想

何はともあれ面白くできたのというのが大きいです。 スキルマップつけるのって面倒になること多いですもんね。 特にドラクエ風のスキルマップにすることで、戦士だけのチームを目指すのではなく、いろいろなスキルを持った人がチームに必要なんだよというイメージが伝えやすくなります。
そして自分達のチームの問題点を可視化できるのも効果が高そうです。 まずい状態をメンバー全員で共有できるし、次にどうしたらいいかという話に持っていきやすいと思います。 今回はキーマンが抜けた後の問題点を出したかったので、その前にアイスブレーク的な感じでこのスキルマップのワークを入れました。

とりあえず自分達のスキルマップをみんなでワイワイ作ってみるのをお勧めします。 意外に面白いですよ~

川口さんのオリジナルネタは日経SYSTEM(2015年11月号~)に載っていて、現在好評連載中とのことです。 特にキーマンの離脱に関連するところとしては、日経SYSTEM2015年12月号の「メンバーの離脱について考える」の節に詳しく載っていますので、ぜひ読んでみてください。

『自分の成長に責任を持てるのは中長期的には自分だけなので、自分で(スキルを)選んでいく必要がある by 川口さん』(日経SYSTEM 2015年12月号)

スプリントをドラマ仕立てに!

Scrum Gathering Tokyo2016できょん君の発表で 『スプリントを無味無臭なモノから、ドラマ仕立てにする!』 というのがあった。 ゲーミフィケーションに興味があるので、こういうのグッと来る。

面白いっていうのはもちろんだけど、 スプリント自体に名前を付ける事によって、今回のスプリントで何を大事にするかが分かるとのこと。 うーん なるほど!いいアイディアだなぁ〜

『胎動』とか『鉄は熱いうちに打て!』とか名称が秀逸過ぎるでしょ〜

f:id:nemorine:20160119233610p:plain

参考)Scrum,Test,Metrics #sgt2016

Googleにやられた話

12月24日。クリスマスイブ。 Googleのトップページには何かの平面図が載ってました。(全部で4種類)

f:id:nemorine:20151225093748j:plain

f:id:nemorine:20151225093851j:plain

会社の友達と印刷をして作ってみたら家が出来た。 可愛いっ!!

f:id:nemorine:20151225093800j:plain

でも緑の平面図だけがどうにも分からない。皆さんは分かりますか? 半円はクルっと丸めて木だろうなぁ~なんて予想して(笑

結果できたもの。。。 木がある小屋かな?

f:id:nemorine:20151225093820j:plain







そして、今朝クリスマス当日・・・ 衝撃の画像がGoogleのTopページに!! f:id:nemorine:20151225093905j:plain

いやー Googleにやられました・・・ 答えを教えた会社の友達も「今年一番の驚きです!」と言ってました。 この半円を重ねるという発想はでなかったなぁ~ 答え分かると簡単だけど、これぞコロンブスの卵ってヤツでした。

悔しいので、昨日のものを使って新しいデザインの家を考案してみました。 こっちも意外に可愛い家ができました♪

f:id:nemorine:20151225092111j:plain

クラス設計とテーブル設計のちょっとしたDiff

すごい久々のエントリですw デブ沙汰しています。

半谷さんからバトンタッチしました♪ マンガなので読みやすく、それでいて内容はグッと来るので是非見てください♪

このエントリ記事はDevLOVE Advent Calendar 2015の「Diff」11日目の記事です。

今回は今年実施したSQLアンチパターンの勉強のときに感じた違い(Diff)になります。

今までDBはメンテナンスが多くてキチンとSQLの勉強をしたことがなかったので、チームの有志であの t_wadaさんが監訳したSQLアンチパターン勉強することにしました。

その第3章を勉強してたときのことです。 「IDリクワイアド」といって、全てのテーブルに(何も考えずに)id列をつけてしまうというアンチパターンでした。 その中に列の名前付けの話が書いてあったのですが、例えばBooksテーブルの場合はid列よりbook_id列が推奨されるとのことでした。

一方、Bookクラスの場合、メンバ変数nameやidとはしますが、bookNameやbookIdとはしませんよね? 昔オブジェクト指向を勉強したとき、Book.bookIdとなるとブックブックしちゃうので、だからBook.idとなるようにnameやidを付けるのですと書かれたのを見てなるほど!!と思った記憶があります。

そのことを思い出して、どうしてSQLの場合はid列ではなくてbook_id列が推奨されるのだろうと参加者と一緒に考えてみました。 その結果、テーブルは他のテーブルとも結合されるため、様々なテーブル間で一意になるように、idではなくbook_idと付けた方がいいということが分かりました。 idだとBooksテーブルのidもReservationsテーブルのidも見分けがつかないですもんね。 しかも2つのテーブルに同じ名前の列名がある場合はUSINGを使って簡潔に書けるとのことでした。

SELCT * FROM Books INNER JOIN Reservations USING book_id

SQLアンチパターンにはもしidとしてしまうと冗長なON構文を常に使う必要があると書かれています。

SELECT * From Books As b
INNER JOIN Reservations As r
ON b.id = r.book_id

ON構文は冗長である。 ガ━━Σ(゚Д゚|||)━━ン 普通だと思ってた・・・

普通にSQLを書いている人にとっては、あたりまえだね~と思われるかもしれませんが、メンテばかりしていると気づきにくいものです(言い訳w)

ある日DBの新規設計を任されたら、id列としていたと思いますので、やっぱり素振りって大切だと再認識しました。 個人的にはクラス設計とテーブル設計のDiffを感じたところだったので今回のエントリとして書かせてもらいました。

www.amazon.co.jp

魅力的品質と品質特性

この記事はソフトウェアテストあどべんとかれんだー2014の12/16の記事になります。

今日は今年の心に残っているエピソードの1つを紹介し、それについて考えたことを紹介したいと思います。

あるとき、TEF道のお世話役の安達さんと品質特性の使い方の話をしていたときに、「製品やサービスに必要な品質を考えるときに、いきなり品質特性を使うとグッとくる製品はできないよ」ということを言っていました。

これを聞いて自分はハッとしました。Σ(゚Д゚;)

テスト設計コンテストに参加したときは網羅を意識して最初から品質特性を用いていました。また実際の業務でも品質特性に基づいて初めから品質の定義をすることが多かったと思います。でも確かに最初から品質特性を使うとヌケ・モレは防げますが、製品・サービスのコアになるべき機能が全くトガらずに、ありきたりなものになる可能性がありそうです。

この問題を解決するため(*1)に、狩野モデルを使ってこの製品・サービスのコアになるトガった機能とそれ以外の機能に分けて考えてみます。

  • 魅力的品質  :製品・サービスのコアになるトガった機能
  • 当り前品質  :上記以外の機能

順序的には、トガった機能にあたる製品やサービスの魅力的品質をまずしっかりと考え抜き、その後、当り前品質を考えるときにモレ・ヌケがないように品質特性を使うといいのですね (*・Д・)ナルホドネ-

f:id:nemorine:20141216233957p:plain

ところで本当に魅力的品質かどうかはどうやったら分かるのでしょうか?

机上で品質特性の一覧とにらめっこしていても答えはでないと思います。 COOKPADの高井さんの発表(*2)から引用しますと、「要求事後性:ソフトウェアが要求を満たしているかは、ソフトウェアを使わないと判断できない」ということです。もちろん特定のドメインのソフトウェアに おいては簡単に使ってもらうことが難しい可能性もありますが、Webサイトやスマホアプリなどのソフトウェアは使ってみることでフィードバックを得ることができます。

リーン・スタートアップでいうところのMVP(Minimum Viable Product)で作り込む機能も、魅力的品質(と思っているモノ)に属する機能とその魅力的品質が成立するための必要最低限の当たり前品質の機能が対象になると思います。そしてMVPのリリースとフィードバックを繰り返していくことで、ユーザーにとっての本当に魅力的品質かどうかを判断していくのですね。

特に目新しくはないと思いますが、自分にとっては品質特性の使いどころを改めて整理する良い機会になりました。

次回はきょん君お願いします♪

*1 @snskが提案している品質特性自体に重みをつけて品質モデルを定義するという方法でも解決できそうです。詳しい説明はAndroidアプリテスト技法秀和システム)を参照のこと。

*2 JaSST’14東北発表資料 https://speakerdeck.com/takai/cookpad-and-test-automation

2014/12/18 追記

安達さんからコメントありましたので、そのまま転記しておきます。

私のコメントの真意は「いきなり品質特性を使うとそれに一律はめ込んで満足する=特徴的な要素が尖らずに平坦にしてしまう人が多いんだよね」です。十分に使いこなすスキルを持っている方は大丈夫ですが、そうでない方が使うと特徴のない平坦な結果wwを出しがちなのでこのコメントになっています。それを防止する一つの手段として、①品質特性を使わずに特徴的な特性を明確にする(尖らせる)→②そのあと何か忘れているモノがないかを確認する意味も含めて品質特性を使う、というやり方を紹介しました。

とちぎテストの会議03 参加レポート

とちぎテストの会議03、通称とてか03に梅ちゃんとまなべーと参加した。

とてか02に参加したときにも思ったのだが、"日常"というのがテーマになっているので、開発者とテスターのお互いが普段どう考えているか分かりやすい。とてかは開発とテスターが融合するイベントになっていると思う。

何より雰囲気が暖かいのがイカしてます。

「いかす!」のために大事だと思う4つのこと / 湯本さん

f:id:nemorine:20141011144118j:plain

日本HPの湯本さんが日常生活を振り返り、イカしていると思うことを話してくれた。 本編ではまさかのタイムアウトということで、続きが懇親会という2部構成(笑 http://www.slideshare.net/yumotsuyo/toteka3

定期的なトライ

テストケースを作ると同じ組織でもバラバラになる テストケースを作るときにルールを作る メンバー間の相互理解を促進する環境を作るのが重要。 そしてテストプロセス全体を知ることでテスト技法の使いどころや自動化に必要なことが分かる。

人の知見吸収

本のままの知識ではなく、現場に適応するのが重要である。
特に自分が知らない新しいシステムに本気で対応することで湯本さん自身の勉強になる。

目的再考

近頃は大学でテスト(ゆもつよメソッド)の研究を実施している。
なんでやっているか考えてみたところ以下の3つが出たとのこと。

  • 論理的思考の訓練
  • 刺激
  • 資格
無駄をやめる

この基調講演の依頼を受けたとき、1週間の自分の時間を考えてみたら、色々ムダが多くて、愕然となった Σ (゚д゚lll)

感想

普段のセミナーやシンポジウムではなかなか聞けない湯本さんの日常を垣間見ることができた。その中で自分が気になったことは2つ。
1つめは湯本さんのコンサルではこうやりなさい!ではなく、如何に組織が自立的に回るようになるかということにもフォーカスしているようで「テストの目的」にあたる合意形成をキチンと取っているのがいいと思った。意味無いと思っているテストは誰もがやりたくないもんね。
2つめは何にでも真摯に向き合うこと。例えコンサルでも大上段から構えずに、自分なりの考え(テスト設計など)を持って現場とガチでぶつかるってカッコいいなーって思う。コンサルもQAもそうだけど外からいうだけだと現場は動かないことが多いと感じるし。しかもその忙しい中で博士号を取ろうと頑張っているなんて…
湯本さん… イカしてます!!

忍者式テスト 中島さん @ledsun

気になっていた忍者式テストの発表。
事前に少し調べていたが、実例はいつも楽しみ♪
http://www.slideshare.net/ledsun1/03-39903732

状況

あまり変更したくないコード(ヒドいコード)に機能追加するために、リファクタリングとして様々なパターンを適用し分割する。GUIからテストをしたかったのだが、自動化している暇がなかったので、毎日手動でテストを実施する忍者式を選択した。チームメンバーは中島さん一人。

方法

優先度のついたテストケースを用意し、毎日それを上からテストしていく。新しいバグが出たときはケースを上に追加する。そのことで枯れたテストはだんだんやらなくなり、バグがあったケースが何日間かテストされることになる。テストにかける時間は30分以上。

結果

忍者式テストを導入し実施したところ、新しいバグが見つかってきた。忍者式テストには、どうやらCheckingだけではなく、Testingの要素(*1)もあるのではないかとのこと。

感想

あるなんとか動くコードがあるときに、コードに極力触ることなくテストで抑えようというテストダケガンバルパターンがある。それとは別にコードカラミナオスパターンがある。今回の中島さんの例はコードカラミナオスパターンでかなりガッチリやっている感じ。ここらへんの考え方は咳さんがズバッと切っている記事がある。

中島さんの忍者式テストを自分なりに考えた結果、少し抽象度の高いテストケースをチャーターとした「探索的テスト」に近いと思う。ある軸になるテストケースを決めておいて、そこから派生するケースを毎日コツコツ実施していく。同じことはやっていないので未知のものを発見するTestingの要素が出てくるんだと思う。毎日実施する忍者式の最大の弱点は「飽きること」だと思っているので、前の日とちょっと違うことをやることでテスト実施者(=今回は中島さん)のモチベーションは維持されるみたい。 完全にフリーの探索的テストだと証拠が残りにくいなどデメリットがあるが、中島さんの忍者式テストだと抽象度の高いケースは残るので忘れることはないのではないかと思った。
この仕組みは結構面白いし、色々使えそうだなぁ〜

中島さん… イカしてます!!

※1 ChekingとTestingの違い
Checking 既知の情報を確認する行為 Testing 新しい情報を探す行為
参考)JAMES BACH'S BLOG http://www.satisfice.com/blog/archives/856

中島さん語録

名言があったのでまとめておく。

  • テストは健康な状態でやらなければならない
  • テストをやめる基準は感性
  • 毎日テストしないと怖い

イカついパネル

お題
http://d.hatena.ne.jp/m_seki/touch/20140930#1412073967

聴衆全員がパネリストになるイカついパネル。全然イカつくなくてワイワイと盛り上がったw 最初にmiwa719さんから説明でもやもやしたらOKっていう説明があった。懇親会で関さんとも話したが、色々な考えがあるってことを気づくのが目的にする場合はまとめずに参加者に考えてもらうのがいいなぁと思った。

ワールドカフェ

今回の使用したタイマーの実例を使って、どうしたら良いかみんなで考えるワールドカフェ。タイマーの付加機能としてアニメーションの機能を実装したが、イベント2日前に全く動かなくなって不安になってしまった。明日が本番の場合どうするか?!
開発者とテスターが入り交じっているイベントのため、両方の意見が結構出ていた。自分が覚えているだけ書いてみる。

  • バックアッププランを用意する
  • タイマー機能だけリリースすればよい
  • そもそもタイマー機能だけだったら、このタイマーの意味はない。踊るから意味がある
  • このイベントではバグが出たら逆に盛り上がる
  • 不安の元は何だろうか?明らかにする
  • 言語の問題が不安に影響しているかもしれない
  • メインのシナリオはテストしておく
  • タイマーのテストは長いので面倒である
  • 落ちても再起動すればOKかどうかをテストしておく
  • 拍手を誘導するというタイマーでもOK
  • 運営スタッフが自分たちで作るから意味がある
  • LT用のタイマーでも機能的には代用できる
  • 踊るという魅力品質はいいが、当たり前品質のタイマー機能に影響あるのは困る
リンク等

まとめ
http://togetter.com/li/729139

懇親会で小井戸さんが発表したLT ← これまた熱い… http://www.slideshare.net/koido1961/ss-39837146

参加報告 toshimana's diary http://toshimana.hatenablog.com/entry/2014/10/05/130224

うーん とちぎ熱いですね〜
仙台も負けずに頑張らないとですね。
スタッフの皆さん、スピーカーの皆さん、参加者の皆さんどうもありがとうございました!
みんみんの餃子も美味しかったです♪