朝会について
前書きが済んだ?ので、朝会についてかいてみる。
毎朝 9時15分から10時00分までが朝会。だいたい9時50分に終わる。たまに10時ギリギリに終わったり、さらっと短く9時40分ごろに終わることもある。そういうのは異常値として、その日の活動に影響したりもする。全員にとって大事な時間。
朝会はいつも同じ会議室。チームメンバー全員が入るには結構、狭い。しかも、冬は寒く、夏はカビ臭い・・・咳おじさんが朝会のすこし前に空調をつけたり、脱臭剤を用意したりはしているが・・・ちょっぴり?きびしい環境で朝会をしている。
9時ごろに司会の自分は会議室に入って、プロジェクタをつける。ストーリーを眺めてたり、準備運動していると、徐々に会議室にみんなが集まってくる。メンバーはそれぞれ座ったり壁に寄りかかったり。はじめてみた時のこの光景はいまも印象に残っていて、すっごく全員がテンションが低くそうにみえて、大丈夫か?って思った。自分は朝会へのイメージがだいぶ偏っていたみたい。欧米的なイメージが強かったのかもしれない。あんまり関係ないけど、チームメンバーにはそれぞれ場所にお気に入りがあるのか、だいたい決まった位置にいる。あれ?なんなんだろうw
プロジェクタにストーリーの書かれたWiki(RWiki)を表示しながら、進んでいく。表示されるストーリーは今週のイテレーションにあるもので、順番にひとつずつ表示される。ストーリーのタイトルを司会が読みあげて、主に担当している人にパスをする。パスされた人がそのストーリーでできた今日の状態や次の設計について話す。朝会は設計をしていて、報告や連絡を目的にしていない。なので、ひとつひとつストーリーがとても細かく、具体的に話す。報告、連絡会だと思っていたのもあって、こんなに内容をつっこんで話すのかーって、だいぶ衝撃を受けた。
毎日毎日、そのストーリーや周辺について設計するので、詳細な内容や状況が勝手に頭に染み付いてくる。その場の全員が自分ごとになって、参加するので、昨日は問題ないように進んでいたものを、今日は考えを改めたり、やり直すこともある。
朝会の間は、携帯・スマホをいじるのはなし、あとノートPC持ってくるのもなし(司会だけがノートPC持参)、プロジェクターだけに集中。話が長引くと2次会ーって、司会が話を切ることもある。
最近、750イテレーション超えをしたチームの朝会はだいたいこんな感じ。
朝会の燃料、ストーリー
自分たちのチームは『ストーリー』という単位で仕事をしている。ストーリーがなんなのかわからないと朝会のことかいても意味わかんないかもしれないので、先にストーリーについて書きます。よくあるバグ管理のチケットや、タスクとは全く違うものですよ。
ストーリーとはXP(Extreme Programmmig)でてくる"User Stories"から生まれたものだそう。一般的な?アジャイル界隈では計画ゲームとかに使ったりするのかな?原文だとなんだか小難しい...
- http://www.extremeprogramming.org/rules/userstories.html
- http://www.extremeprogramming.org/rules/planninggame.html
自分たちでは、ユーザーが動かしてわかる事象の一つを1つのストーリーにしている。なんとか機能とか、なんとか処理とか大雑把なやつではない。あるストーリーが始めるときには、次のことがだいたいきまって始まる。
- ユーザーはなぜ?どういう目的で「それ」をするのか
- ユーザーは「それ」をするとどんなことができるか
- その次にユーザーはどんなことをするのか
いくつもストーリーが反復しながら進化していくことで大きな機能(処理)が完成する。ストーリーが1つできあがると、それまでにできた関連するストーリーを再評価する機会にもなる。ここまでストーリーができたから、次はこういう風に動作するのがよいかもとか、あの動作はこういう風に動作した方がいいかもとか、ひとつひとつのストーリーが大きなストーリーの1部になっていく感じ。わかりにくいですよね?
バグもストーリーとして扱っているのでそれで説明すると、ある機能がなにかのバグで動かなくなったとすると、”ある動作ができない”というストーリーが作成される。なのでゴールは”ある動作ができること”になる。
手順とか実現方法についてちょっとだけ書く。
RWiki( https://github.com/rwiki/rwiki )というRubyでできたWikiの『ストーリーカード』という機能をつかって実現している。ストーリーのページを作るとイテレーションごとに並べくれるもの。(他にもいろいろあるんだけど、それはまたの機会に)ひとつのストーリーには以下のようなことが書かれている。
- タイトル(文字通り、ゴールが書かれる)
- 種類(Story or Bug or Task)
- イテレーション(反復開発しているのでそのイテーレーション)
- ディスクリプション(概要が書かれる)
- サイン(主に担当する人)
- バージョン(複数バージョンあるので)
- 見積もり・実績(どのくらいかかりそうとか、いまはあんまり機能していない)
- 開発者の開発日記、メモ(想起のためもの)
- テスト(このストーリーを確認するためのテストケース)
だいたいのテンプレートはこんなところ。細かいところを書き始めるとキリがないので今回はここまで。手前味噌だけど、ちょっと前にこういうの書いてた。
https://speakerdeck.com/vestige/story
Ruby勉強会@宇都宮 -2019/02-
参加者は5人。またすこしずつ参加者が増えてくるとよいな。
ポジペ
- 英会話オンライン学習サイトのこと https://hapaeikaiwa.com/premium/
- アレクサアプリのこと
- とちぎRuby会議08のこと
- RubyKaigi2019のこと
- 島根へ行った話
- 3D BASECAMP 2019 Tokyo https://www.alphacox.com/company/basecamp-2019-tokyo/
Rubyターン
今月は「かんたんRuby」2章から。基本を学ぶ。リファレンスの見方からはじまって、インデントの話まで。どちらかというと他の本にはない構成な気がする。とても楽しかった。
演習にはリファレンスマニュアルを使って調べるものがあって、なにか斬新だった。参加者たちも普段はすぐにグーグルで検索して、その場の情報でやってしまうこともあるけど、正確な情報ではないのでこういうのは大事だいう話をした。いろんな言語のリファレンスマニュアルあるけど、やっぱりはじめはどう読んでいいかわからなかったりするけど、こういうのができると覚えることも増えるし、できることの幅は広がるんだろうなぁと思う。
演算子の話の中で"and"と"or"の優先順位の話しらなかった。なぜ、文字列には優先順位がなかったの?
”名前重要”の話がでてて、15年くらい前のmatzの写真をみんなでみた。すごく、わかいー!!!
プログラムのエントリーポイントの話もあった。入門書で?!というのもあるけど、一人だと、「うっ」としそうだけど、とても丁寧な説明でよかった。あと、こういうのは勉強会向きだなぁっと思いました。
Railsターン
今月もお休み。もうしばらくRubyをすすめてからにしよう思います。
次回
3/2の予定です。
朝会がはじまるまでのこと
1日のことをすこしずつ詳細にかいてみる。
その前に前提になる開発のことをすこしかいておく。いまの開発では複数のバージョン、複数の構成(エディション)を扱っている。だいたい3バージョン以上が並行開発されている。スケジュール、開発されるアイテム、重要度を加味しながら全員で行う回帰試験マシンを用意している。また、テストを主にする人たち向けの試験マシンも用意している。朝会が始まるまでにこの回帰試験マシンの準備をしているのでその話を書いてみる。
いま、ビルドできるマシンは3台。なので、3バージョンを開発の状況を見ながらナイトリービルドしている。(だいたい6時間ぐらいで終わる。だいぶはやくなった。)
試験できるマシンは10台ぐらい。だいたい毎日、1〜2人で行っている。
手順としては、会社にきたらまずはビルドマシンのコンパイルログを見る。問題なければ、各試験マシンの電源を入れ、それぞれのマシンからお手製の自動スクリプトでビルドマシンからダウンロード、ファイルの展開を行う。この辺の作業は基本的には誰でもできる。ただ、定時に来れる普通の人じゃないと朝会に間に合わないし、よく休んじゃう病弱な人だと向かない。さらにコンパイルエラーになると、だれでもできる訳ではなく、だれがどんなストーリーをやったかとか、どういうシステム構成かとか、いろんなアンテナや情報を持っていないと、問題の原因を探すのはとても大変。ということで、できる人たちだけでやっている。ファイルを展開をしている最中に今日の回帰試験シナリオを選ぶ。これもだいたい適当だけど、その週に行なっているストーリーに関連するもの。最近、触れていないもの、テストがあまり進んでいないものなどを適宜入れ替えながら設定している。
ファイルの展開が終わると、製品のエディション設定を行う。同じバージョンでも複数のエディションがあり、それぞれできる機能や動作が違うので状況に合わせて切り替えたりする。この辺は毎日やっていても、よく間違えるのでモニターに付箋紙などでどういうエディションのどのバージョンなどを貼っている。そうそう、忍者式テストが始まった頃(18年ぐらい前?)テストするマシンは2台ぐらいだったらしい。それを考えると結構大変なことしているなあっと思う。いまのやり方も徐々に調整されてこのカタチになっているが、構築まで45分から60分はさほど変わっていないのもすごいなぁっと思う。
会社にきたら、毎日すぐにこういう仕事なのでメールみて、ぼーっとしているとかはるか遠い昔のことのよう。
1日のこと(2019年版)
いつかやったけど、文字として残してなかったのでやってみる
わりと最近の平日のこと
- 6:15 起床
- 7:00 - 8:00 通勤。ゲーム。
- 8:00 - 9:00 回帰テストマシン構築、テスト作戦決め
- 9:00 - 9:15 Wikiでストーリーの確認、予習
- 9:15 - 10:00 朝会(司会業)
- 10:00 - 10:45 テストチームの朝会、特定バーションの設計会議(司会業)
- 10:45 - 11:30 朝会での宿題、徘徊
- 11:30 - 12:00 自分の担当しているストーリー作業(プログラマー)
- 12:00 - 13:00 お昼
- 13:00 - 14:00 午前中の続き(プログラマー)、ストーリーの整理
- 14:00 - 15:00 なにかしら会議に呼ばれる
- 15:00 - 16:00 回帰テスト(テスター)
- 16:00 - 16:30 徘徊
- 16:30 - 17:00 夕会(司会業)
- 17:00 - 18:00 だらだら、回帰テストマシンの片付け
- 18:00 - 19:00 帰宅時間。ゲーム。Twitter。
- 19:00 - 20:30 だらだら。夕飯。
- 20:30 - 21:00 お風呂
- 21:00 - 22:30 勉強
- 22:30 - 23:30 ゲーム or ビデオ
- 23:30 就寝
仕事以外はだいたいゲームだった...
仕事時間内は基本的にずっとみんなが作業している場所にいる。
休憩は1時間おきに水分補給、お菓子補給。
仕事中は基本的に割り込み優先。
いろんなところから話しかけられる。こっちからもたくさん話しかける。そんな感じ。
いまのチームに入ってからは平日の昼間の間はあっという間に時間がすぎる。
もうすこし細かい内容はまたかいてみようと思う。
とちぎラズパイ同好会51回目
今日は4人+子供2人すこし少ない人数で行いました。人数がすくなかったけど、今回もおもしろかった。なかうちさん、これなくて残念だ。
- WHF(ワールドホビーフェアの話)
- toio(https://first-flight.sony.com/pj/toio)を紹介
- 電動シャッターのコントロールについて
- ラズパイ 同士をBluetoothでやりとりする
- Kindleアプリをフットスイッチでめくる
- ラズパイとオシロスコープ
電気の勉強会
15回、CDSの紹介。明るさによって抵抗が変わる端子。トランジスタを併用して、暗くなったらLEDを光らせる例を紹介していた。
- CDSは反応が鈍い?
- 明るさによって抵抗値が変わる
- 明るくなると抵抗値が下がる
- カドニウムを使っているのでいまはフォトダイオードに変わっている?
- 照度を図るのは照度センサ自体を使った方がもっと細かい情報が取れる
- いまはいろんなセンサーがある。コーヒーの匂いセンサーもある?
- 複数トランジスタをつなぐ、ダーリントン接続について
例にあるような使い方以外が思いつかなかった。
次回は”セグLED”です
ライフハックもの
ポジペのときに高田さんがお話してたフットスイッチのデモをみせてもらった。購入したフットスイッチは中国製で3つボタン。4000円程度。もともとの課題はPC上でKindleアプリで本を読みながら写経する(コードを書き写す)時に、コードを書くエディターとKindleアプリをカーソルで交互に操作するのがめんどくさくて、今回の装置を作ってみることにしたそうです。PythonのライブラリでGUIを動かせるものがあり、それを利用にして、ラズパイからフットスイッチの信号を取得して各ウィンドウを動かすようにしたようです。実際に書いたプログラムを見せてもらいながらみんなで話をしました。にしても、フットスイッチってだいぶ安くなったんだなぁっと。あと、こういうのをすこしでもめんどくさいと思える感性は大事だなぁと思いました。
今後、やりたいこと
昔のみんなの意見を再度掘り起こしながら、話をしました。ちゃんと残っててすごい。てか、懐かしい。
- https://github.com/TochigiRaspberryPICircle/kit/issues/12
- https://github.com/TochigiRaspberryPICircle/kit/issues/32
話した内容はここにかいてあるけど、オシロスコープに行きそうな気がしている...
実験ターン
ライントレーサーはどういうゴールにするのがいいのかみえなかったので、電気の勉強でやったCDSをやってみることに。が、CDSが手元になかったのでフォトダイオードで実験。代替えだからと思ってなんとなくでやってみたけど、そもそも動作の仕方が違う。最終的にはフォトダイオードを塞いで、LEDを消す構成で実験を行いました。抵抗にかかる電圧をテスターでみながら、ダイオードの特性について話をしました。まだまだわかったようでわかっていないてか、思い出していないんだろうなぁ、自分。
次回は2/24です
Ruby勉強会@宇都宮 -2019/01-
2019年の1回目
去年は遠方からいらしてた人がいたけど、今年は3人からスタート。
今回はRubyのターンのみ、"たのしいRuby"を卒業して、"かんたんRuby"をはじめました。説明に使われる表現や、言葉に対して多少難しさがあるが、実際に手を動かしてプログラムを確認するところや、はじめにつまずきそうなエラーの見方などがとても丁寧に解説されていたので、次回からもがんばれそうな感じでよかった。
ポジペ
- 今年のRubyにまつわるイベントの紹介
- azureむずかしかった話
- 島根にドライブ
Rubyターン
- "かんたんRuby"をはじめる
- ポリモーフィズム/カプセル化、いきなりでむつかしい
- String#stripについて
- 誤字発見(開発環境のところの説明、"を"が2回)
- 公式サイト、マニュアルについてしっかり説明している、すばらしい
- Rubyのインストール
- rbenvのインストールがたいへん?
- irbについて
- エラーの読み方について
- 全体的に説明がとても丁寧
Railsターン
- おやすみにしました