アジャイルジャパン2012レポート

アジャイルジャパン2012を開催しました。
翌日からタイムラインを追いかけていると、250人を超える人が対話を深めた大阪メインの熱気は余韻として依然残っていますし、全国のサテライト会場の興味深いディスカッションの内容も伝わってきており、改めて充実感を感じています。
各セッションのレポートはどんどん上がってきていますので、公認レポーターのみなさん記事や、Twitterの”#aj12”タイムラインを是非ご覧下さい。

会場は超満席で、人気のセッションでは立ち見も出る状態。
当日は、私もほとんどの時間、他の参加者と一緒に各セッションに参加させていただき、たくさんの方とアジャイルについてじっくりと考え、対話することができました。
印象に残った言葉はたくさんありましたが、いくつか挙げておきます。

  • 基調講演でジョナサンが話した内容。アジャイルの科学的分析(XP、Scrum、リーンなど)やけにしっくりきた。アジャイルはある程度のレベルを超えると「マインド」を語りがちだが、合理的で腹に落ちる説明がよかった。
  • 岸良さんのお話。変えるのは現場ではなくマネジメント。現場を変えるのはリスクが大きいが、マネジメントを変えるのはリスクが少ない上に、効果が絶大。参加者の方にも、視点を切り替えて考えるきっかけになったと思う。
  • 「DEEP AGILE PEOPLE」では、僕がすごいと思う人が集まって好きな事を話してもらった。とにかく面白すぎた!(聴いてて鳥肌がたった!)アジャイルに真剣に取り組んでいる3人の、何が「すごい」かをたくさんの人に知ってもらえたはず。これがアジャイルだ!
  • アジャイルのあるとき、ないとき」でパネリストだけでなく、参加者からも出た意見。アジャイルの根底には「技術」(プログラミング)に取り組む楽しさがある。プロセスだけにフォーカスしてうまくいかない理由ははっきりした。

そして、一日、話をしていて再認識したこと。

アジャイルに取り組むことの最大の効果は「考える」ことだと思っています。
ラクティスをそのままやるだけでは、絶対うまくいかない。

考えて、開発の内容や、チームにあわせて、自分で適用し、カイゼンを続ける必要がある。
日本の契約体型や基準に当てはめにくい。

考えて、顧客を始めとするステークホルダーを含めてコミュニケーションを深め、より良いものを作るために、全体を巻き込んでいかなければならない。
アジャイルソフトウェア開発の定義の理解自体がどんどん深くなっていく。

考えて、自分の「アジャイル」を持たなければならない。
自分、そして周りの人たちと、ずっと考え続けなければならないと思っています。

アジャイルジャパンは、「アジャイル」をキーワードに、日本のソフトウェア開発に関わる全ての人達に考える”場”を提供できている。


今回、平鍋さんから実行委員長を引き継ぎ、大阪開催が成功したことで、私は2つの仕事ができたと思っています。

大阪という日本のアジャイルの発信地の土台を作れたこと

平日、有料のカンファレンスに250人を超える参加者が、大阪に集まった。
一緒に考える仲間はこれだけたくさんいる。
東京だけじゃない。全国で、このような場を提供できることがわかった。
業界を良くして、日本中に発信していくための土台ができたかもしれない。

これからのアジャイルを新しい世代に伝えていく、きっかけを作れたこと

アジャイルジャパン実行委員会で一番若く、実践経験の少ない私がこうした場を作り、
新しいメンバー、参加者を巻き込めたことは、今後の日本のアジャイルの発展にとって、
とても良いことと確信しています。


今年のアジャイルジャパンが終わってアウトプットがどんどん出てきています。
来年のアジャイルジャパンに向けての活動は始まっているのかもしれない。
この流れをさらに拡げていきたい。

アジャイルジャパン2012で話したことをしっかりと自分に落としこんで実践し、周りを巻き込んでいきたい。
チームをより良くして、良いものを作りたい。業界を良くしたい。

AgileJapan2012実行委員会のみなさま、スポンサー、スタッフ、レポーター、スピーカーのみなさま、そして、参加者のみなさま、心から御礼申し上げます。
ありがとうございました!

ディープなプログラマトーク番組「DEEP AGILE PEOPLE」

AgileJapanの開催が近づいてきました。
今年も興味深いテーマのコンテンツがそろっていますが、
今日は、その中から特にオススメなセッション「DEEP AGILE PEOPLE」をご紹介します。

プログラマの中には、ほとんど会話をしなくても「この人はすごい!」と感じる人がいます。
ちょっとした技術的な会話での鋭いひとことや、エディタ・デバッガなどのツールを使いこなしてる様からそのように感じるわけですが、コードを書いてるまさにその場を見たらなおさらです。最近はLT(=LightningTalk,5分で言いたいことを言うプレゼン形式)などでいきなりコーディングする人もいますので、「すごい!」って感じる人に出会う機会も多くなったように思います。

このセッションに登場するのは、僕が「すごい!」と感じたプログラマ三人衆です。
さらに、この三人、ただすごいプログラムが書けるだけではありません。
プログラマとして純粋に、Agileに向き合ってきた点でも共通しています。
何より、「しゃべり」が面白い関西人であるということ!

そんな人たちが、例えば居酒屋とかで、本音で好きなことをフリーに喋ってる場面を横から見れたら面白いに決まってる!

それがこの「DEEP AGILE PEOPLE」の趣旨です。
すごいプログラマ3名のフリートークを、テレビを見るような感覚で横から覗き見てみませんか!?

テレビと違うのは、生で見れて、ツッコミできること。また、セッション終了後に、話していた人に直接疑問を投げかけられること。

是非、AgileJapanの会場に来て、ディープなAgileの話をしてみましょう。


AgileJapan2012は3/16(金)大阪ATCホールで開催。
参加費が半額になる早割りは2/17(金)まで。上司・同僚を誘ってペアで参加するとさらにお得です。
お申し込みはお早めに!

アジャイルジャパン2011に行こう!

今年も実行委員やってるので告知します!

4/15(金)に、「Agile Japan 2011」が開催されます。

Agile Japan 2011

海外からリンダ・ライジングさん、USP研究所の當仲さんを招いた基調講演に始まり、
実際の開発現場からの事例セッション、体験型のワークショップと、充実した内容になっています。

今回のテーマは「広がる、つながる、動き出す」です。
一般からの公募セッションや、全国の事例を集めたポスターセッション、IT業界で働く女性のワークスタイルに焦点を当てた「WOMAN'S セッション」など、新しい取り組みを取り入れています。
その中でも特にすごいのが、全国のサテライト開催です。
本会場は東京なのですが、同じ日に、北海道、仙台、富山、名古屋、大阪、島根、岡山、愛媛、福岡、沖縄で各地方の特色を出した、サテライトイベントが開催されます。
基調講演(リンダ・ライジングさん、USP研究所の當仲さん)は中継で共有するものの、その後の時間は、各サテライトの特色を出したイベントが企画されています。

私は大阪サテライト会場の企画を担当しました。
関西でアジャイルの活動に取り組んでいるみなさんから、「この人の話を聞いてみたい!」「あのワークショップを大阪でやってほしい!」という推薦がすぐに集まり、東京に負けないぐらい、充実したセッションが用意できました。
地元でがんばってるみなさんの事例は、一味違ったものになると思っています。また、今後の交流を考えても良い機会になるはずです。関西近辺の方はこの機会に是非お越しください。

ここで大阪サテライトのプログラムを紹介します。

アジャイルジャパン2011大阪サテライトプログラム紹介

  • 「プラクティス・技法を洗練しうまく伝えるためのコンテキスト記述〜 Continuous deliveryを題材に実際に試してみませんか?」
  • アジャイルUX『ユーザテストもアジャイルに行こう!』〜開発者のための"DIY"ユーザテスト入門講座 with マインドリーディング・ワークショップ〜
    • 樽本徹也さん(利用品質ラボ代表,アジャイルUCD研究会)
  • 「『超』ふりかえり 〜 Agile なう #aj11 〜」
    • OsakaStudyNetwork

大阪サテライトの申し込みはこちらです。



僕は自分自身はもちろん、開発者、マネージャ、顧客も巻き込んで、ソフトウェア開発の未来を作っていきたいと思っています。そう考えている人たちは、”アジャイル”というキーワードに可能性を感じていて、社内外の勉強会や、こういったカンファレンスへの参加を通じて、ゆっくりではありますが、実際の開発・ビジネスにつなげてきています。

「日本のアジャイル」を知り、自分で考え、現場で実践する。

アジャイルジャパンに集まり、その流れを参加者全員で作っていきましょう!

Kindle 3 ソフトウェア更新方法

Kindle3Gが最近不安定なので、安定化の期待も込めてversion 3.1 (Early Preview Release) にアップデートしてみました。
「Public Notes」という本の中で気に入った文を選択し、コメントを追加してtwitterFacebookで共有できる機能も追加されてるみたいです。

メモ程度に手順を残しておきます。

更新前のファームウェアバージョン

Home→Menu→Settingsの画面の一番下に書いてあります。
更新前は”3.0.1”でした。


ファームウェアをダウンロード

このページでファームウェアのイメージをダウンロードします。
 http://www.amazon.com/gp/help/customer/display.html/?nodeId=200529700#download

私のKindle3はWiFiモデルなので、これをダウンロードしました。

  • Kindle Wi-Fi: Download 3.1 (Early Preview Release)
    • Your serial number will start with "B008"

シリアルナンバーは、Home→SettingsのDeviceInfoにありますので、対象の機器かどうかを確認しましょう。

ファームウェアイメージをKindleにコピー

PCにKindle3を接続し、ファームウェアイメージをコピーします。

コピーが完了したら、Kindle3をPCから取り外します。

アップデート開始

Home→Menu→Settingsで設定メニューに入り、
さらにMenuキーを押すと、メニューに「Update Your Kindle」が表示されます。

これを選択すると更新処理が開始します。

あとは待つだけ。

アップデート中は何回か再起動をしたりしてますが、放置しておけば終わりました。


バージョン確認

Home→Menu→Settingsの画面の一番下のバージョン番号が新しくなってることを確認します。


Public Notes

更新して、追加されたPublic Notesを試してみました。
英語版の書籍なら、文字列を選択して「Alt+Enter」で、選択部分にコメントを沿えてtwitterFacebookにそのまま投稿できます。
日本語の自炊コンテンツだと、テキスト埋め込みPDFでもダメでした。残念。

全体的に

一日使ってますが、いまのところ安定してます。
本を読むだけのシンプルな端末なのに、こうした細かいアップデートが用意されているのがいいですね。
今後の機能追加も楽しみです。

T-mobile G2はbusyboxが標準で入っている。

T-mobileG2はルート書き換えがちょっとやっかいそうなのですが、busyboxが標準で入っているため、adbのシェル操作や基本的なコマンドは普通に使えます。

入ってるbusyboxのバージョンとサポートメソッド(コマンド)はこちら。

# busybox
BusyBox v1.15.2 (2009-11-27 10:38:30 GMT) multi-call binary
Copyright (C) 1998-2008 Erik Andersen, Rob Landley, Denys Vlasenko
and others. Licensed under GPLv2.
See source distribution for full notice.

Usage: busybox [function] [arguments]...
or: function [arguments]...

BusyBox is a multi-call binary that combines many common Unix
utilities into a single executable. Most people will create a
link to busybox for each function they wish to use and BusyBox
will act like whatever it was invoked as!

Currently defined functions:
[, [[, addgroup, adduser, adjtimex, ar, arp, arping, ash, awk,
basename, beep, blkid, brctl, bunzip2, bzcat, bzip2, cal, cat, catv,
chat, chattr, chgrp, chmod, chown, chpasswd, chpst, chroot, chrt, chvt,
cksum, clear, cmp, comm, cp, cpio, crond, crontab, cryptpw, cttyhack,
cut, date, dc, dd, deallocvt, delgroup, deluser, depmod, devmem, df,
dhcprelay, diff, dirname, dmesg, dnsd, dnsdomainname, dos2unix, du,
dumpkmap, dumpleases, echo, ed, egrep, eject, env, envdir, envuidgid,
ether-wake, expand, expr, fakeidentd, false, fbset, fbsplash, fdflush,
fdformat, fdisk, fgrep, find, findfs, fold, free, freeramdisk, fsck,
fsck.minix, fsync, ftpd, ftpget, ftpput, fuser, getopt, getty, grep,
gunzip, gzip, halt, hd, hdparm, head, hexdump, hostid, hostname, httpd,
hush, hwclock, id, ifconfig, ifdown, ifenslave, ifplugd, ifup, inetd,
init, insmod, install, ionice, ip, ipaddr, ipcalc, ipcrm, ipcs, iplink,
iproute, iprule, iptunnel, kbd_mode, kill, killall, killall5, klogd,
last, length, less, linux32, linux64, linuxrc, ln, loadfont, loadkmap,
logger, login, logname, logread, losetup, lpd, lpq, lpr, ls, lsattr,
lsmod, lzmacat, lzop, lzopcat, makedevs, makemime, man, md5sum, mdev,
mesg, microcom, mkdir, mkdosfs, mkfifo, mkfs.minix, mkfs.vfat, mknod,
mkpasswd, mkswap, mktemp, modprobe, more, mount, mountpoint, msh, mt,
mv, nameif, nc, netstat, nice, nmeter, nohup, nslookup, od, openvt,
passwd, patch, pgrep, pidof, ping, ping6, pipe_progress, pivot_root,
pkill, popmaildir, poweroff, printenv, printf, ps, pscan, pwd,
raidautorun, rdate, rdev, readahead, readlink, readprofile, realpath,
reboot, reformime, renice, reset, resize, rm, rmdir, rmmod, route,
rtcwake, run-parts, runlevel, runsv, runsvdir, rx, script,
scriptreplay, sed, sendmail, seq, setarch, setconsole, setfont,
setkeycodes, setlogcons, setsid, setuidgid, sh, sha1sum, sha256sum,
sha512sum, showkey, slattach, sleep, softlimit, sort, split,
start-stop-daemon, stat, strings, stty, su, sulogin, sum, sv, svlogd,
swapoff, swapon, switch_root, sync, sysctl, syslogd, tac, tail, tar,
tcpsvd, tee, telnet, telnetd, test, tftp, tftpd, time, timeout, top,
touch, tr, traceroute, true, tty, ttysize, tunctl, udhcpc, udhcpd,
udpsvd, umount, uname, uncompress, unexpand, uniq, unix2dos, unlzma,
unlzop, unzip, uptime, usleep, uudecode, uuencode, vconfig, vi, vlock,
volname, watch, watchdog, wc, wget, which, who, whoami, xargs, yes,
zcat, zcip


たとえば、シェルをashにするだけでタブ補完や各種ショートカットは普通のbashっぽく使えますし、シェルスクリプトも基本的な処理は走ります。

  • シェルをashにする。

# busybox ash

その他、viでファイル編集したりはもちろん、httpd,ftpも使えるのでサーバーっぽく動作させるのも容易です。
SDカードやデータパーティションスクリプト置いておけば、起動も簡単でいろいろできそうです。

日本語設定とキーボード入力

日本語設定は無いですが、以下のアプリを入れると日本語環境が使えます。

  • MoreLocale2
  • Simeji

キーボード出したときも入力メソッドが生きます。
Shift+スペースで日本語/英語入力を切り替え。
日本語テキストもPC感覚で入力できます。


フォントの入れ替え

上記手順で日本語化しただけでは、フォントが中国っぽくて違和感があります。


(図1)デフォルトのフォント

いろんなサイトで紹介されていますが、
/system/fonts以下、

  • DroidSans.ttf
  • DroidSansJapanese.ttf
  • DroidSansFallback.ttf

というファイルを、好みのTrueTypeフォントに置き換えたらフォントが置き換わります。

T-mobileG2では、後で示す「VISIONary」という一時的なroot取得ツールで一時的にフォント置き換えはできます。

  • SDカードに、好きなTrueTypeフォントのファイルを保存。(例では、DroidSansJapanese.ttfとしています。)
  • 次のコマンドで置き換え。Zygoteを再起動。

$ su
# busybox ash
# mount -o rw,remount /dev/block/mmcblk0p25 /system
# cd /system/fonts/
# cp /mnt/sdcard/fonts/DroidSansJapanese.ttf DroidSans.ttf
# cp /mnt/sdcard/fonts/DroidSansJapanese.ttf .
# ls
DroidSans.ttf
DroidSansJapanese.ttf
DroidSansFallback.ttf
DroidSerif-Bold.ttf
DroidSerif-Regular.ttf
Clockopia.ttf
DroidSansMono.ttf
DroidSans-Bold.ttf
DroidSansArabic.ttf
DroidSansThai.ttf
DroidSerif-Italic.ttf
DroidSerif-BoldItalic.ttf
DroidSansHebrew.ttf

# kill -9 $(pidof zygote)


ただし、フラッシュファイルシステムへのwriteはキャッシュだけされて実際の書き込みが行われないサービスが走っているようで、電源を切ると元のフォントに戻ります。ファイルシステムにwriteされない分メモリ(RAM)が圧迫されますし、これ以上いじるにはリスクがありそうなので、デモ用途ぐらいで考えると良いでしょう。



(図2)日本語フォントに置き換え

T-mobile G2のadb接続(Linux)

T-mobile G2をLinuxに接続すると次のように認識されます。

makoto@makoto-macbook:~/android/T-mobileG2/report$ lsusb
Bus 001 Device 008: ID 0bb4:0c91 High Tech Computer Corp.


udevd設定して再起動。

makoto@makoto-macbook:~/android/T-mobileG2/report$ cat /etc/udev/rules.d/51-android.rules
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0bb4", MODE="0666"

makoto@makoto-macbook:~/android/T-mobileG2/report$ sudo /usr/sbin/service udev restart
udev start/running, process 3580


あとは、Android-SDKのtoolにPATH通して、adb関連ツールが使えます。

  • adbシェル起動

$ adb shell

  • DDMS

$ ddms &