スクラムマスター Part1
先月行われた認定スクラムマスター研修に参加させて頂きました。
費用が20万と高額だったので参加したいとは思っていたものの参加できておりませんでしたが
当面の間、参加できる機会はないなと思い自費で参加してきました。
参加した動機
参加したいと思った動機はいくつかのプロジェクトでのマネージメントやプロセスに疑問を
持っており様々な手法を学ぶことで解決するためのヒントがないかと感じていたからです。
例をあげると次のようなことをたまにプロジェクト内のメンバーに対して思うことがありました。
・なんで締め切り守れないの?
・クオリティ低すぎない?
・それぐらい自分で判断できない? etc
こういった状況を仕組みによって回避することが出来れば
ユーザに届けることが出来る付加価値はもっと高くなるはず!!
事前に学んでいたこと
1.書籍での勉強
スクラム実践入門は研修後に読ませて頂きましたがそれ以外は2~3回は読みかえしてました。
2.他社事例の調査
4Gamer.net ― CEDEC事前インタビュー:アジャイルで大規模開発? スクラムを使ったゲーム開発の可能性とは
【CEDEC 2011】開発手法の地味な改善、スクラムを導入するには何から始めたらいい? / GameBusiness.jp
ドラクエXマネージャが語る大規模アジャイル開発の極意 − @IT
3.現場での実践
モバイルアプリのプロジェクトで途中からですがスクラムが採用され経験したことがありました。
ほぼ機能せずに失敗に終わったと誰もが思える状況でした。
次回は実際に研修で学んだ内容や感想などを書きたいと思います!!
UnrealEngine4
本日発売の書籍を購入させて頂きました。
実際に読んで試して何かアウトプットをGithubで公開できたらと考えてます。
協力したりライバルになってくれたりする人は連絡下さい。
見てわかるUnreal Engine4 ゲーム制作超入門 (GAME DEVELOPER BOOKS)
私はゲームエンジンやミドルウェアなどのライセンスビジネスにとても好感を持っています。
なぜ好感を持っているかというと次の2つの理由が大きいです。
1つ目の理由は餅は最高の餅屋。
いちエンジニアとしてアーケード、モバイル(ガラケー)、PC、
PS2、PS3、Xbox360、Android、iOSなど様々な環境でお仕事させて頂きました。
開発規模も大小様々なプロジェクトチームありましたが会社が変わったり
対象プラットフォームが変わったりしただけであれ?似たような機能を
また作ってるなとか、場合によっては低機能で拡張性もない社内で
開発されたシステムを使ってクオリティの高いものを作ろうとしたりして
余計に時間かかったりしてコストが見合わなかったりなんてことがざらにあります。
そこで辿りついた結論は自分達に出来ないもしくは実現できていないものはコストを
計算した上で最高の餅屋を利用してクオリティを担保して利益をあげようという考え
にたどり着きました。これが1つ目の理由です。
2つ目の理由はチャンスの拡大。
ゲームを作りたいと考える人のうちゲームを作れるようになる人は何%いるか。
10年以上前の話になりますが私が学んでいた学校ではゲーム業界に進みたい人のうち
数%しかその夢を実現できていませんでした。私も当時一度はその壁にぶつあたり
挫折をしました。様々な要因はあると思いますがゲームというビジネスで食える人が
もっと増えればいいなと考えてるので特に利用料金の少ないゲームエンジンは作る環境
の裾野が広がり今まで作れなかった人やアイデアを持っている人にチャンスが与えられる
ことになると思っています。
アプリのクラッシュについて まとめ編
3回にわたり下記の3つのサービスを導入してみたので振り返りです。
BugSense https://mint.splunk.com/
Crittercism http://www.crittercism.com/
Crashlytics http://try.crashlytics.com/
結論からいうとCrashlyticsが一番オススメです。
BugSenseは落ちたソースの行が分からないため選択肢からはずれました。
そこまで詳しく触ったわけではないので出来るかもしれませんがわからなかったです。
Crittercismは手動でdSYMファイルをアップしないと落ちた場所が分からないのが面倒。
ただ会社で利用するケースを考えるとapkやipaを申請するタイミングで
登録することを考えるとそこまで日常的な作業にならないのでアリかもしれません。
見た目はどのサービスもグラフィカルでかっちょいいです(笑)
アプリのクラッシュについて Crittercism導入編(iOS)
さて最後のCrittercismの導入です。
Crittercism導入
1. アカウント登録
http://www.crittercism.com/から必要情報を入力してユーザ登録します
2. プロジェクトを登録
サイトへログインしてプロジェクト名とプラットフォームを選択してプロジェクトを登録します
3. SDKをダウンロード
サイトのDownloadsからiOSのSDK(v.4.3.7)をダウンロードします
4. プロジェクトへCrittercismライブラリを追加
Linked Framweworks and LibrariesにlibCrittercism_v4_3_7.aを追加。
5. プロジェクトへコードを追加
#import "Crittercism.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[Crittercism enableWithAppID: @"Crittercism_API_KEY"];
return YES;
}
6. クラッシュレポートを送りサイトでの表示を確認
■テストコード
NSArray *array = [NSArray array];
id data = array[0];
感想
http://docs.crittercism.com/index.html に Japanese Documentationという日本語専用ページがあり
各作業にどれくらいの時間がかかるなど細かく記載されており導入は迷うことなく出来ました。
dSYMをアップロードしないと詳細が見れないところが少し使いづらいような印象を受けました。
参考にさせて頂いたサイト
Xcode - クラッシュログ収集Crittercism を仕込む時のメモ - Qiita
アプリのクラッシュについて Crashlytics導入編(iOS)
今回はCrashlyticsの導入をしていきます。
Crashlytics導入
1. アカウント登録
http://try.crashlytics.com/からユーザ名、メールアドレスを登録します。
登録して実際に使えるようになるまで数時間がかかりました。
使えるようになると登録したメールアドレスへメールが届きます。
2. Crashlyticsアプリをダウンロードして起動
サイトへログインしてアプリをダウンロードする(Crashlytics-latest.zip)
アプリを起動します。起動するとメニューバーにアイコンが出ます。
3. xcodeプロジェクトをCrashlyticsへ登録
Crashlyticsアイコンを選択してxcodeプロジェクトを選択します。
4. xcodeプロジェクトへコマンドを設定
Build Phase - New Run Script Build Phase で設定項目を追加。
Run Script Build PhaseへCrashlyticsで指定されているコマンドを追加。
5. プロジェクトをビルド
ビルドするとframeworkの追加を促されます。
6. プロジェクトへCrashlytics.frameworkを追加
CocoaPodsを使ってframeworkをインストールしました。
Linked Framweworks and LibrariesにCrashlytics.frameworkを追加。
7. プロジェクトへコードを追加
#import <Crashlytics/Crashlytics.h>
- (BOOL) application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[Crashlytics startWithAPIKey:@"Crashlytics_API_KEY"];
return YES;
}
8. クラッシュレポートを送りサイトでの表示を確認
■テストコード
NSArray *array = [NSArray array];
id data = array[0];
感想
サイトへの登録からアプリを起動するとアイコンからグラフィカルに
やるべき手順を通知してくれるのでそこはかなり分かりやすかった印象です。
あと落ちた関数の行数が出ていたのでどこで落ちたか分かりやすかったです。
参考にさせて頂いたサイト
Objective-C - Crash Report解析サービスのCrashlyticsを試してみた - Qiita
iOS アプリのための Crashlytics | moonxseed
アプリのクラッシュについて BugSense導入編(iOS)
色んなサイトで3つ(BugSense,Crittercism,Crashlytics)を比べましたが
正直どれがいいのやら決定的ではなかったので全部試して見る方向で動きます!!
さっそくBugSenseから試していきます。
BugSense導入
1. アカウント登録
https://mint.splunk.com/からSIGNUP FOR FREEボタンからユーザ情報を登録
2.BugSenseにプロジェクト登録する
サインインしてサイトからAdd Projectのボタンから次のような画面に進み
情報を入力してSUBMITボタンを押す
プロジェクト用のKEYが発行されます。
3.BugSenseをインストール
CocoaPodsを使ってインストールしました
4.プロジェクトへ設定を追加
Linked Framweworks and Librariesに2でインストールしたBugSense-iOS.frameworkを追加
5.プロジェクトへコードを追加
2で発行されたKEYをプロジェクト内の関数に埋め込む
#import <BugSense-iOS/BugSenseController.h>
- (BOOL) application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[BugSenseController sharedControllerWithBugSenseAPIKey:@"BugSense_API_KEY"];
return YES;
}
6.クラッシュレポートを送りサイトでの表示を確認
■テストコード
NSArray *array = [NSArray array];
id data = array[0];
レポート結果の一部を下記に抜粋しましたが反映までは3分ぐらいでサイトには反映されました。
感想
アカウント登録から実装まで2時間もあれば試すことが可能でした。
dSYMをアップできるページがあったので詳細な情報を追えるように出来るのかもしれません。
参考にさせて頂いたサイト
スマートフォンアプリのクラッシュログ解析サービス (crittercism と bugsense) を使ってみた - むらかみの雑記帳
iPhone - Crash Report解析サービスのBugSenseを試してみた - Qiita
クラッシュ分析ツールBugSenseでアプリのバグの原因を突き止める。 | 三度の飯とエレクトロン
iOSアプリ開発でもCI/継続的デリバリしようぜ(5):アプリのクラッシュリポートを統計解析できるBugSenseの使い方 (3/3) - @IT