« 2014年1月 | トップページ | 2014年3月 »

2014年2月の記事

自動生成で生産性&品質向上してみた!

Pict2625
某・大手顧客先での案件で、アーキテクトの三文字さんが自動生成の技術を適用(自前での開発)した実例ベースの話をしてくれました。

実装言語はPHP、フレームワークはSymfony、O/RマッパーはDoctorineです。

最近のフレームワークやO/Rマッパーは、標準で実装されているソースコードの自動生成機能が少なからずありますので、それらを活かしつつ、業務仕様との間を結ぶためのソースコード自動生成機能を開発しました。

つまりは、Excelなどで書いた設計書を元に、動作するアプリケーションのソースコードや、スケルトン、抽象クラスなどを吐き出すということになります。

で、折角自動生成したコードでも、人の手を入れてしまうと再生成が効かなくなってしまいます(面倒な管理が必要になったり、間違いの元・品質低下につながります)ので、デザインパターンの1つ「ジェネレーションギャップパターン」を使うのだそうで。

これで、「統一化する・自動生成で済ませる」部分と、「手で書かなければならない部分」を切り分ける(別ソースファイルにする)事を実現します。

また、これに応じて開発プロセスも幾分か変更が必要になる(自動生成されたままで手を加えないコードの単体テストはしない、など)ので、その辺も顧客側との調整・了承を得た上での適用になります。

但し、現実的な制約もあり、全てを自動生成できるわけではありません。

Pict2624例えば、入力項目などで条件判定が複雑な部分は、ロジックの入力を行うようにしてしまったり(入力判定を何処の論理層:クラスに実装するか?という点での統一性を持たせることには成功しているわけですが...)。

バックエンド(管理業務)の画面系のソースコード生成は可能ですが、フロントエンド(一般ユーザー向け:特にコンシューマー向けWebサイトの)はデザイナーが作成しますので、自動生成は不可能です。

また、現実的な一面として、(当然の前提条件にはなるのですが)開発者の教育・意識付けの問題から、折角の生成コードの思想や機能が十分に活かされないケースもあるようです。
この辺は、コーディング基準の作成と共有/コードレビューや、場合によっては一時的にペアプロを行うなどすべきなのでしょうが...。

殆どの場合に付いて回る条件、「デリバリー優先」(でも品質も守る)、納期が短い点とのせめぎ合い。

レビューは抜き打ちの部分的なものに限定すれば出来るかも知れませんが、ペアプロまではとても余裕が無いかも知れません。

結局は、メンバーの意識やレベル、共通目標への到達イメージ(どうやってゴールに達するのか)の共有に掛かってきてしまいそうに思えます。

アーキテクトには、ファシリテータ的な視点・判断・アクションも求められる、ということでしょうか。
開発プロセス(特にアジャイル系プラクティス)の知識と、選択的な実践(勿論、プロジェクトリーダーとの意識共有・役割の住み分けなども考慮・調整しつつ)が必要になってくる、ってことなんでしょうね。

今回の三文字さんからのお話は「自動生成」に焦点を合わせたものでしたが、実働上はサブリーダーを務め、かつアーキテクトであり、複数チーム横断的なファシリテーター的な動きも行っていたようです。

それでもなおかつ「難しい...」と言う。

「おもしろい!」とも繰り返し言ってましたが。

最後に、自動生成技術の開発に向いている人の特性の1つとして、「レビューが好きな人!」であることだと。
(「レビューする側」であって、「される(文句を付けられる)側」ではないところが気楽でいい気分!...というのは、半分は冗談でしょうけれども)


★クリック1つでブログランキングにご協力戴けます! m(_ _)m

| | コメント (0) | トラックバック (0)

顧客先でKPI分析

Pict2621 昨年の夏ごろまで、某社にて常駐でソーシャルゲームの開発・運用・分析などを行っていた山下さんから、当時を振り返ってのナレッジ抽出・発表をしてもらいました。

随分と時間が経ってしまいましたが、折角得たナレッジを形にせず、吐き出しもせず、自分自身もその殆どを忘れてしまうってのは如何にも勿体無い話ですので。

ソーシャルゲーム対応はデリバリーが最重視で、アーキテクト指向の山下さんには何かと切ない部分も少なくなかったようです。
数多くの改善提案もして来ましたが、リリース時期を早くする・付加価値を増やす(面白く、魅力的にする)・余分なコストをかけない等の比重が大きく、なかなか採用して頂けなかったようなのですが...。

対応の終盤では、生産性向上・不具合低減の為に効果のある品質改善・自動化(手動操作の軽減)ツールの整備などへの対応に集中させて頂けました。

それらの中から、
KPI(Key Performance Indicators:重要業績評価指標、目標達成に向かって業務が回っているかを定量的に計るための指標)の測定に関してのお話を、定例会の中で聞けました。

Pict2623 ログ&自動解析である程度の数値はすぐに出る仕組みになっていたそうですが、それ以上の情報を求められるので、開発者サイドで事前に必要そうな(或いは顧客側が必要とするKPI値を聞き取っておいて)情報を収集しておくことが重要とのこと。

後になってから、「この情報が欲しかったのに...」と言われても遅いですからね。

余り、特定ゲーム依存の内容はここには書けないのですが、概ね下記のような項目について話をしてもらえました。

・DAU(Daily Active User その日遊んだユーザ数)
・ARPPU(Average Revenue Per Payed User平均課金額)
・Lv分布
・Install数/月(1人で複数アカウントを作る人がおり、正確ではない)
・離脱率(ゲームをやめてしまった割合(2週間以上アクセスしなくなったなどで))
・Comeback率(昔同じゲームをやっていた人からSNS経由で呼び戻された人)
その他諸々...

イベント参加のユニークユーザ数や、報酬配布数、イベント中のアイテムの消費量、得点の分布なども算出していたそうで。

本来的には、売上の目標からKPIを逆算し、その値を実現することを1つの目標指標として各種施策をとる、企画を考えるということになるのですが、
この辺は鶏と卵。

「これ!」といった正解が無いので、難しい世界のようです。


★クリック1つでブログランキングにご協力戴けます! m(_ _)m

| | コメント (0) | トラックバック (0)

「はじめてのUX/UI講座」レポート

Pict2619 社内の若手3人組のなかの1人、トミーから、社外講習の「はじめてのUX/UI講座」(http://techacademy.jp/courses/8)受講レポートがありました。

「講座」といっても、要素知識の説明や実例提示は一部分(2時間)であり、殆どはワークショップに時間が割かれたようです(4時間)。

基礎知識の部分は、概ね下記のようなものでした。
IA(Informartion Architecture:理解の為のデザイン)とは?
UX(User Experience)とは?
・良いUXデザインをするには?
  ・日本のサイトは製品に重きをおきすぎている!、とのこと
  ・「Goods-Dominant Logic(製品)から Service-Dominant Logic(体験)へ
Customer Journey Map とは?
  ・ユーザーの体験を訪問から離脱までの時系列(横軸)の体験をアウトプットしたもの
    ・プラスの経験も、マイナスの経験も、両方とも!(経験の強度が縦軸)
  ・Mapの実例(スターバックス)

ワークショップの中身は、3~4名をチームとして「ディスカッションしながらWebサイト(料理サイトのTOP画面のみ)を作る」というもの(当日は4チームに分かれたようです)。

だいたい、下記のような流れで進められたようです。

※用意されたペルソナから一人選んで、詳細なシナリオを作る。
  ・ペルソナとは仮想の人物想定だが、細かな設定まで具体的に詰める。
  ・ペルソナの作成だけで結構な時間を消費してしまうので、当日は選択式で実施。
  ・ペルソナを元に、サイトでの体験を Customer Journey Map として作成してみる。
※用意されたレシピの束を整理する。 - カードソーティング
※サイトキャッチコピーを考える。
※実際にワイヤーフレーム(画面のモックアップ:手書き)を作成。
※各チームから発表する。

「万人に受けることを目指しても、結局は誰に対しても『そこそこ』のインパクトしか与えられず、成果を得られない」。
ペルソナの設定は、このような結果を避けるため、「ターゲットとして想定する顧客」に「刺さる!」コンテンツをデザインすることを目指すものです。

ペルソナシナリオの作成が重要で、
 ・ターゲットイメージ:名前や写真(イメージしやすいように掲載)
 ・ユーザーデータ:ペルソナユーザーの基本情報
 ・コンテクスト:ペルソナユーザーの日常
   ★これが最も重要とのこと!
   ・その人の生活に沿ったWebサイト作りが大切なため!
 ・プロブレム:ユーザーが今抱えている問題
   ・これに加えて詳細なペルソナのシナリオを書く。

で、設定したペルソナに従って、想定しているWebサイト上での体験:「Customer Journey Map」を作成してみます。

...と、ここまでやって来たことは、所詮は仮説の上に仮説を積み重ねたもの。
外に出て現実を見て、リサーチを重ねて検証していくことが必須です!

※その他:テクニック

カードソーティング
 ・付箋やカードなどを用いてコンテンツを整理する方法。
 ・複数人数で整理やコンテンツの可視化が可能。
 ・整理の基準はペルソナやcustomer Journey mapなどに基づく。
 ・お客さまは案外、自社サイトの問題点を理解していない。
   ・その為、カードソーティングなどで要素整理をしてから始めることが多い。

※:その他:Tips
 ・ユーザーはあまり文字を読まない(本とは別)。
   ・物理的な表示方式の違いなどで、紙などに比較して目が疲れるから。
 ・画面イメージやHTMLは、調査や設計が終了してから手書きで作成すると良い。
   ・パワーポイントやPhotoshop等で作成すると、見た目が整っており捨てにくくなる。
   ・Web画面で正確に再現するのは難しく、返って足枷になる...。

イメージ的な参考例として、同日のワークショップで作成された各チームの成果物の写真を掲載させて頂きます。 

1

2 

 

ちなみに、本人の、同講習を受講しての満足度は90点(100点満点として)でした。3_2 410点のマイナス分は、チーム内でワイヤーフレームを作成する時間が無くなり、自分のものがすんなり採用されてしまった(他の人の意見を多く取り入れたものに出来なかった)為とのこと。

1時間の休憩を挟んで、実質6時間の講習:ワークショップでしたから、これだけの濃い・深い内容を実施する上では限界だったのかも知れません。

いずれにしても、大変良い経験ができたと思います!

トミーの今後の実践・活躍に期待したいと思いますっ!!


★クリック1つでブログランキングにご協力戴けます! m(_ _)m

| | コメント (0) | トラックバック (0)

「LEGOブロックで街造り」リベンジの企み...

昨年の11月の定例会で、「LEGOブロックで街造り」を通したスクラム(アジャイル開発プロセスの1つ)体験ワークショップを行いました(このブログにも書きました[↓])。
http://aspire.way-nifty.com/majime/2013/11/lego-f03b.html

・プランニングポーカー
・仕様伝達ゲーム
・「Fearless Journey」ゲームをひとかじり
・スクラムを取り入れている実案件からの情報レポート
.....などを、同じく定例会で実施済みで、それなりの参加率だったはずなので、このワークショップも成り立つだろう!、と考え、情報入手元(http://www.atmarkit.co.jp/ait/articles/1305/28/news059.html)を参考に組み立てて実施したのですが.....

私の方での企画の詰めの甘さ・当日の進行方法の拙さから、本来の目的である「スクラムプロセスの疑似体験」という点では消化不良に終わってしまいました。
(楽しくチームプレイが出来た!、という点では良かったのですが...)

3チームに分かれて実施しましたが、チーム内にスクラムの実務経験者がいる/いないの違い、前述の「目的」を意識して動くレベルの違い、構成要素の(最低限の)習得として必要な以前のワークショップの参加率と記憶のばらつきなど、問題山積でした。

「もう1回!、今度はしっかりやってみたい!」

.....と思い、その後の定例会で簡単なアンケートを実施した(その場で問うて挙手して貰った)結果、8割程度が「やってみても良い」・「やりたい」だった。

ので、リベンジしようということに相成りました!

実施は3月の定例会で、時間枠を通常定例会の2.5時間から3.0時間に延長し、このコンテンツオンリーに集中!
前回の振り返りから得られたProblem、Tryなども参考にしつつ、資料も再整理しました。
資料・進行方法などに付いても、スクラム実務経験者にレビューしてもらい、得られた指摘・提案も取り込みました。

前提知識を改めて説明していると、それだけで1~2時間食ってしまいそう(しかも個人別に認識・経験のレベル差が大きい)なので、資料も、当日の進行方法・ステップ・タイムテーブルまで事前公開して、読んでおいて貰うようにします。
(ここが結構難しい点でもあるのですが.....)
(実務で忙しいと、ついつい後回しになって、結局当日まで目を通していない、って例は幾らでも有りますからね...)

しかし、現実的に掛けられるコストや日時設定・時間枠の問題もありますので、読んでおいて貰うしかありません。
何とかしましょう。

この辺で、上手くファシリテートするか、ゲーミフィケーション出来ると良いのでしょうけどねえ...。

私自身にも大きな課題が幾つも有る気がします。
勉強せねば...。


★クリック1つでブログランキングにご協力戴けます! m(_ _)m

| | コメント (0) | トラックバック (0)

« 2014年1月 | トップページ | 2014年3月 »