朝会の燃料、ストーリー
自分たちのチームは『ストーリー』という単位で仕事をしている。ストーリーがなんなのかわからないと朝会のことかいても意味わかんないかもしれないので、先にストーリーについて書きます。よくあるバグ管理のチケットや、タスクとは全く違うものですよ。
ストーリーとは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ターン
- おやすみにしました
ラズパイ同好会イベントと2018忘年会
親子プログラミング@うつのみや Vol.2
まず、今回のワークショップに参加された方、手伝ってくれたスタッフ全員に感謝したいと思います。無事に終わってよかったです。ありがとうございました。
今年の夏に宇都宮大学内で機材や、宣伝などのサポートを受けて親子向けのプログラミングワークショップを行いました。その時の様々な反響や影響などを受けて、今回はラズパイ同好会としてこのワークショップを開催しました。
機材や、場所の都合上、今回は親子5組までとしてイベントを開催しました。最終的に9組の申し込みがあり、いろいろ都合をつけようとがんばってみたのですが、結局、全員受け入れできず、抽選をしました。
内容は基本的には前回と同様、ラズパイを紹介しながら、Scratchを使って、Lチカをやってもらいました。季節的にクリスマスツリーを作ってみるのをテーマにして絵をかいてもらいました。前回は紙コップを使ってロボットっぽいのをイメージしたんですが、配線などが大変だったので、今回は厚紙を用意してそこに穴をあけてLEDを通すようにしました。LEDも抵抗器付きのものにして、配線の手間をすこし省きました。それと、100均で手に入るスピーカーを用意して音と光で楽しんでもらいました。
3時間ほどのワークショップですが、参加者の親子はみんなクリスマスツリーっぽいのを作ることができて、Scratchをつかって光や音をつけて楽しむことができました。
結果としてはよかったのですが、いろいろな課題もありました。
前回のイベントでは説明が長かったり、自由にやる時間がすこし足りない印象があったので、なるべく説明を省きたかったのですが、それを気にしすぎて、肝心なことをいろいろ飛ばしてしまったり、早口になってしまったり、時間の調整をうまくできなかった。ラズパイを中心にしたワークショップにしたかったのですが、結構、Scratchに持って行かれてしまった感じでした。。。mameさんもFBで書いてたけど、自分たちでやるんだから、もっとみんなで内容を練ったらよかったと思いました。練習もだいぶ必要だったように思います。
課題は次に活かすための糧として、とりあえず、参加者、スタッフも含め、全員楽しく過ごせたみたいだし、自分自身も楽しくできたので、とても貴重な経験になったと思います。本当にありがとうございます。
最後に会場での雰囲気とふりかえりの写真をのせておきます。
勉強会の忘年会2018
今年もいつもの感じで行いました。
みんなで買い出して、飲み食べしながら、LTをして複数の勉強会参加者が交流してもらう会です。はじめにみんなでタイムラインをしながら、今年一年を振り返ってもらってからはじめました。今年もそれぞれいろんな方面で意欲的に活動していて、お互いにいい熱を交換できたんじゃないかと思う。