Sunday, June 20, 2021

# スクラムマスターを雇う時に聞いてみるとよい47個の質問

 # スクラムマスターを雇う時に聞いてみるとよい47個の質問

スクラムマスターへの質問というPDFがあるので、回答してみた。
定期的に自分の回答がどう変わっていくのか楽しみだ。

Scrum Master Interview Questions: Free Download of the Ebook
https://age-of-product.com/38-scrum-master-interview-questions-to-avoid-imposters-free-pdf/

## Set 1: Role of the Scrum Master 10 Questions

1. __Q 01: The Scrum Master Role as a Contradiction?__
- _The Agile Manifesto infers people over processes. Isn’t a Scrum Master — whose role is
meant to “enforce” the process — therefore a contradiction?_
- アジャイルマニフェストでは「プロセスやツールよりも個人と対話を」といっている。プロセスを守らせるスクラムマスターは、それとは反対のことをしているのではないか?

- (回答)矛盾していません。スクラムマスターはチームがプロセスを守るようサポートすべきです。プロセスを守らせることで、チームの問題点が明らかになります。最初からプロセスをカスタマイズすべきではありません。対話を重視するのは明らかになったチームの問題点、改善すべき内容に対して、チームの実情にあわせて実施するものと考えています。
- (意図)チームを主導することがスクラムマスターの役割であることを理解しているかどうか。

1. __Q 02: Success Factors of “Agile”__
- _What indicators might there be that demonstrate agile practices are working for your
organization, and which of these would demonstrate your efforts are succeeding?_
- 自分の組織でアジャイルがうまくいっていることを示す兆候は何か?また自分の働きが成功している兆候は何か?
- (回答)定性的にはディリースクラムが開発チームにて回せていられるとき、プロダクトリファインメントがチーム内で活発に議論されているのをうまくいっている兆候、あるいは自分の働きが成功している兆候と捉えます。定量的な計測には2つあります。一つはプロダクトで定めたKPI。これはステークホルダー向けあるいはプロダクトの利用観点からの指標値となります。もう一つは内部品質の計測です。これには例えばサイクロマティック複雑度や循環参照の有無に始まり、テストコード成功率やカバレッジ率の低下の有無です。ビルドの失敗率の増加や、単位あたりのデプロイの回数も、指標値として有効と考えます。
- (回答)私は新人研修にてYWTふりかえりを実施していました。ふりかえり項目の一つに「今日の気分」を入れ、笑顔、泣き顔、怒り顔、普通の顔の4つをいれました。毎日その内訳を注視していました。このとき注意しなければならないのは記入のない受講者、もしくは怒り顔の受講者です。彼らは講義は実習に興味を失っているまたはその手前の兆候でした。こちらから声がけを積極的に行い、その理由がどこにあるのかを探り、彼らのストレスが解消するよう勤めました。最終的には無回答、怒り顔の受講者はいなくなり新人研修を終えることができました。任されたチームではこれに準じたサインを取り込みメトリクスとして追跡します。
- (意図)"アジャイルの成功"を示すメトリクスはありませんが、間接的な指標はいくつかあります。

1. __Q 03: Impediment Remover__
- _Should a Scrum Master remove impediments on behalf of the Scrum Team?_
- スクラムマスターはスクラムチームの代わりに障害を取り除く必要がありますか。
- (回答)障害が発生していることを指摘し、自己組織化した彼らが取り除くのを見守ります。障害を取り除くアイデアを提示します。でも取り除くことはしません。

1. __Q 04: Communication between SM and PO__
- _How should a Scrum Master communicate with a Product Owner?_
- (回答)定期的な1on1が役立ちました。私達はインセプションデッキでプロダクトの方向性とゴールを明確にしており、ゴール達成のために自分たちがなすべきことを話し合いました。これは密会ではありません。公開すべきタイミングは図ったものの、話し合った内容はすべてチームメンバーと共有していました。

1. __Q 05: The Product Discovery Process__
- _Should the Scrum Team become involved in the product discovery process and, if so, how?_
- _製品のディスカバリープロセスにスクラムチームは参加してよいか?その場合はどのようにするか?_
- ディスカバリープロセスとはプロダクトを用いたサービスを設計するプロセスです。開発の事前に実施する場合もあれば、プロダクトのデリバリーと連携して実施する場合もあります。このプロセスにスクラムチームは可能な限り参加すべきです。スクラムチームが参加するとサービス設計時にあがった技術的な課題について早い段階で判断、あるいは判断する材料を提供することができます。またプロダクトの責任をもつプロダクトオーナーが参加することでサービスにおけるプロダクトの位置づけが明確になります。プロダクトの位置づけを明確にし、スクラムチームで共有することで、プロダクトバックログの優先順位を判断づけがしやすくなることが期待できます。

1. __Q 06: Supporting the Product Owner__
- _The role of Product Owner is a bottleneck by design. How do you support the Product Owner so that they maximize value?_
- _設計上プロダクトオーナーの役割はボトルネックになる。価値が最大になるよう、どのようにプロダクトオーナーをサポートするか?_
- プロダクトオーナーがプロダクトバックログに専念できるよう取り計らいます。またプロダクトオーナーがプロダクトを掘り下げる上での思考の壁打ち相手となります。具体的にはリーンキャンバス、仮設キャンバスを作成しプロダクトの方向性を見つける手助けをします。

1. __Q 07: Access to Stakeholders__
- _How can you ensure that a Scrum Team has access to a product’s stakeholders?_
- _どのようにスクラムチームがしかるべきステークホルダーにアクセスできることを保証するか?_
- ステークホルダーにも事前にスクラムを理解してもらうよう説明の場を設けておきます。その上で、スプリントレビューの際には必ず呼びかけるようにします。呼び出しに応じてもらえなくても、リリース前に最初にプロダクトに触れてもらえる場を作ります。ステークホルダーは様々な立場の人がいることが想定されるため、その呼出が効果的になるように配慮します。具体的には呼び出すステークホルダーの関心事がかぶらないよう、スプリントバックログを定めるなどの配慮をします。

1. __Q 08: Stakeholders and the Agile Mindset__
- _How do you promote an agile mindset across departmental boundaries and throughout an organization and, in pursuit of that, what is your strategy when coaching stakeholders not familiar with IT?_
- _どのように複数の異なる部門にまたがってアジャイルのマインドセットを広げるか?ITじゃないステークホルダーをコーチするのにどんな戦略をとるか?_
- 最終的には関連する部署全体にスクラムを教育することです。私の戦略は次のようなものです。
1. スクラムチームへの教育
1. スクラムチームを保有する部署のキーマンへの教育
1. 関連する部署のキーマン(ステークホルダーを含む)への教育
1. スプリント計画、スプリントレビュー、レトロスペクティブ、バックログリファインメントにはオブザーバーとして参加を促します。その場でいろいろ意見をいいたがる人もいるかもしれませんが、意見は別の機会ですべて受け止め回答を与えます。
- アジャイルのマインドセットを万人に展開する近道(銀の弾)はないと考えます。実際に参加してもらい理解してもらいます。

1. __Q 09: Scrum and Senior Executives__
- _How would you introduce Scrum to senior executives?_
- _上級管理職にどのようにスクラムを紹介するか_
- 私の説明はつぎのようなものです。
1. 最初に、最近のプロダクト開発には以前のように時間をかけることが難しいことを説明します。採用するフレームワークや技術の移り変わりのタイミングが早いこと、プロダクトをとりまく環境の変化のスピードが早くなっていることを説明します。
1. そのうえで、どのように顧客にプロダクトを提供すべきかを説明します。MVPを定め効果を見極めながら次の戦略をとるアプローチの正当性を説明します。
1. 最後にスクラムによるアジャイル開発でこれらを満たすことが可能であると説明します。

1. __Q 10: Overcoming Stakeholder Resistance__
- _You’ve already provided your product’s stakeholders with training in Scrum. After the initial phase of trying to apply the concepts, when the very first obstacles are encountered, some of these stakeholders begin to resist continued adoption. What is your strategy for and experience in handling these situations?_
- _あなたはすでにステークホルダーにスクラムのトレーニングをしたとする。この考え方を適用しようとする初期フェーズのあと、スクラムの適用を続けることに同僚が激しく抵抗するような障害やハードルにぶつかったとする。このような状況においてどんな戦略を取るか?またどんな経験があるか?_
- 私の経験で、ウォーターフォール開発に慣れたメンバーがドキュメントをつくることにこだわりすぎ、動くものがなかなかできない弊害がありました。このときはAzureDevOpsのBoardsを用いてのチケット管理を勧め、作成するドキュメントを効果的に残すかについて説明しました。
- 一方でドキュメントを殆ど残さないチームもありました。このときの弊害は、仕様の根拠が「みんなで決めたから」というものなっていたことでした。みんなで決めるのは方法であって根拠にはならない旨を説明し、やはりチケット管理のチケットに仕様の根拠をメモ書き程度で記述させるようにしました。
- (意図)この質問は、組織内のスクラムへの抵抗を克服することについてのアイデアの交換と、そのときに学んだ教訓を奨励することを目的としています。

## Set 2: Product Backlog Refinement and Estimation 7 Questions

1. __Q 11: External Requirement Documents__
- _The Product Owner for your Scrum Team frequently turns requirements documents received from stakeholders into tickets, and asks you to estimate each. How do you feel about this procedure?_
- _プロダクトオーナーはステークホルダーの要求をプロダクトバックログ項目に落とし込んでその見積りをチームに求めることになる。その流れでよいか?
- ステークホルダーの要求を受け入れるか否かの判断が必要です。プロダクトオーナーの考えるプロダクトにそぐわないものがあれば事前にステークホルダーと会話させ、プロダクトとしてどうあるべきかを判断します。その結果プロダクトに必要な要求であればプロダクトバックログにしてチームに見積もりを依頼します。

1. __Q 12: PO Anti-Pattern__
- _What kind of information would you require from the Product Owner in order to provide your team with an update on the product and market situation?_
- _チームに最新情報やマーケット状況を伝えるためにプロダクトオーナーにどんな情報を要求するか?_
- プロダクトのゴールおよび周辺情報を共有するために、プロダクトをとりまくサービスのリーンキャンバスあるいはそれに類似した内容のドキュメントを要求します。そこにはプロダクトのKPIやプロダクトの目的、手法、チャネル、潜在的問題、顕在的問題が記載されており、ゴールおよびKPIを含めた周辺情報を共有するのに効果的です。存在しない場合は、プロダクトオーナーと相談してそれを作成します。

1. __Q 13: Writing User Stories__
- _Who should be writing user stories?_
- _誰がユーザーストーリーを書くとよいか?_
- ユーザーストーリーはプロダクトのゴール、あるいはプロダクトを利用するサービスを理解していれば、誰でも作成可能です。作成したユーザーストーリーはINVEST(独立している、交渉可能である、価値がある、見積もり可能、小さい、テスト可能)に基づいている必要があります。

1. __Q 14: A Good User Story__
- _What does a good user story look like? What is its structure?_
- _よいユーザーストーリーとはどんなものか?どんな構造か?_
- DONEの定義にあわせた完了条件が明確になっていることです。他のユーザーストーリーに依存しないことです。他のユーザーストーリーの機能を含めずにテストできる単位。経験したプロジェクトではチケットにこのユーザーストーリーのゴールを記載するようにしました。ゴールを明記させることで必要なテスト、実装方法が明確となる効果が得られました。

1. __Q 15: INVEST__
- _What does the acronym INVEST mean?_
- __I__ Independent: ほかのユーザーストーリーに依存していてはいけません。
- __N__ Negotiable: スプリントバックログに入れるまではいつでも変更可能です。
- __V__ Valuable: エンドユーザーに何らかの価値のある内容でなければいけません。
- __E__ Estimatable: 見積もれるサイズである必要があります。見積もりサイズ無限大というのはありえません。
- __S__ Small: スプリントで消化できるぐらいの大きさでなければなりません。
- __T__ Testable: テスト可能な単位でなければなりません。具体的にユーザーストーリーに関連のないリソースを用いるようなテストであってはなりません。

1. __Q 16: Person-hour Estimations__
- _Why aren’t user stories simply estimated in person-hours?_
- _ユーザーストーリーを時間で見積もらないのはなぜか?_
- (回答)人月はチームの能力を表すものではないからです。時間での見積もりはメンバーの技量に左右されてしまい不確実性が高く、見積もりには適していません。プロダクトにおけるユーザーストーリーの機能の難易度、重要度でサイズを見積もることは可能です。例)赤いSサイズのTシャツ(重要度を色であらわし、難易度をサイズであらわすなど)

1. __Q 17: Cluttering the Product Backlog__
- _The Product Owner of your Scrum Team tends to add ideas of all kinds to the Product Backlog as a reminder to work on them at a later stage. Over time, this has led to over 200 items in various stages. What are your thoughts on this? Can a Scrum Team work on 200 Product Backlog items?_
- _プロダクトオーナーはあとになってから取り組むようないろんな種類のアイデアを追加してくる。結果的にいろんなタイミングで取り組む200個のチケットができたとする。それに対してどのように取り組むか?スクラムチームは200個のチケットに取り組めるか?_
- チームのメンバーが7人程度としても、200個のプロダクトバックログは異常な状態であると捉えます。バックログがどこからなぜ出現したかをプロダクトオーナーから聞き出す必要があります。不要な重複機能はないか、この機能により利便を提供されるのは誰かを見極める必要があります。
- それでも必要であれば次のような手段で対処します。最初に順番あるいは優先順位を決めるます。このとき狩野モデルを採用してそれぞれがどの品質に分類されるかも確認します。当たり前品質を優先させ、一元的品質を次に、最後に魅力的品質の順番に並べます。スプリント計画時にこれらの必要性を再確認し取り組むべきチケット、取り組む必要のないチケットを判断します。結果として200個すべてに取り組むときには優先順位に従いますし、不要なチケットは対応しないことになります。

## Set 3: Sprint Planning 8 questions

1. __Q 18: A Scrum Master’s Contribution to the Sprint Planning__
- _How can a Scrum Master contribute to Sprint Planning in a way that enables the Scrum Team to work only on the most valuable user stories?_
- _チームがもっとも価値のあるストーリーに取り組めるようにするためにどのようにスプリントプランニングにスクラムマスターとして貢献するか?_
- ユーザーストーリーからスプリントゴールを定める手助けをします。具体的にはプロダクトオーナーにこのスプリントを通じてユーザーに何を提供したいかを語ってもらい、それについて議論の場を作ります。議論を通じてスプリントゴールを定め、開発チームにその実現のためのプロダクトバックログを選んでもらいます。

1. __Q 19: Assessing the Value of a User Story__
- _With what metrics would you assess the value of a user story?_
- _ユーザーストーリーの価値をどんなメトリクスに基いて判断するか?どんなメトリクスは受け入れがたいものか?_
- コードレベルではCCN、循環参照の有無、テスト成功率を定める。これは後の拡張性や保守性を担保するために必要です。ストーリーの価値はKPIにより測定されます。KPIがない場合はそれをつくるようプロダクトオーナー、ステークホルダーに進言します。定性的にはサーベイによるユーザーのフィードバックから判断できます。

1. __Q 20: Selecting the Most Valuable User Stories__
- _How do you facilitate user story selection in a way that the most valuable stories are chosen without overruling the Development Team’s prerogative to select the Sprint Backlog?_
- _チームのコミットメントの権限を侵犯することなくどのようにもっとも価値のあるユーザーストーリーを選べるようにファシリテーションするか?_
- (回答)定量的、定性的の2つの観点を忘れないようアドバイスする。定量的にとはチームのキャパシティの見込みにマッチするかであり、定性的にとは選んだスプリントがスプリントゴールにマッチするかである。

1. __Q 21: Time Allocation During a Sprint__
- _How much of a Development Team’s capacity during a regular Sprint would you consider adequate for refactoring? Fixing important bugs? Exploring new technologies or ideas?_
- _どれくらいの時間をリファクタリングや重要なバグの修正や新しい技術やアイデアの調査につかうのが適切と考えるか?_
- (回答)ユーザーストーリーの遂行に影響を与えないことを考慮します。軍事的に部隊の3割を失うと全滅扱いされるとのことなので、3割は超えないようバッファを見込んで2割内に抑えるのが適切と考えます。

1. __Q 22: Assigning User Stories__
- _Should a Product Owner assign user stories or tasks to individual members of a Development Team?_
- _チームの個人にストーリーやタスクを割り当てようとするプロダクトオーナーをどう扱うか?_
- (回答)自分たちはチームでプロダクトを作成していること、個人への負担はチーム全体のパフォーマンスを下げることを伝えます。ユーザーストーリーの割当はチームの仕事であることも伝えます。その上で、スプリント計画時にどういう割当がチームにとって効果的かを判断し決定します。

1. __Q 23: Cherry-Picking Items__
- _How do you deal with team members cherry-picking tasks?_
- _チームメンバーによるタスクのつまみ食いをどのように扱うか?_
- (回答)これはチームの成長にとってよくない傾向です。実装しかやらないメンバーがいれば、その結果テストしか担当しないメンバーが生じてしまいます。短期的なパフォーマンスはあがっても長期的なチームのパフォーマンスには全く寄与しません。したがってこれを阻止する必要があります。開発チームにはこの事態は避けるべき事態であることを伝えます。ベロシティは下がるけれど、スプリントバックログの個数を制限し、チームの経験値があがるような割当を提案します。また日頃からペアプログラミングを実施し、メンバー間での経験の共有を推進させます。

1. __Q 24: The Almost Ready User Story__
- _A valuable user story is lacking the final user interface designs, but the design team promises to deliver on day two of the upcoming Sprint. The Product Owner for your team is fine with that, and pushes to have the user story added to the Sprint Backlog. What are your thoughts on this scenario?_
- _ユーザーストーリーが最終的に確定していないがスプリントの2日目には確定する状況で、プロダクトオーナーはそれをスプリントバッグログに入れようとしている。どのように行動するか?_
- (回答)いれてはいけない。次のスプリントに回すべきです。入れなくてすむようプロダクトオーナーとステークホルダーを説得します。そのユーザーストーリーのかわりにリファクタリング、スパイク、テスト充実などを提案します。
- チームメンバーが合意すれば入れることは可能ですが、これはあくまでも例外であり認めるべきではありません。一度の例外は習慣化してしまいます。ですのでスクラムマスターは原則不可。のスタンスでこの問題に臨むべきです。

1. __Q 25: Sprint Planning Is a Waste of My Time__
- _A member of the Scrum Team does not want to participate in Sprint Planning and considers the meetings a waste of time. How do you deal with this attitude?_
- _スクラムチームのメンバーがスプリントプランニングに参加したがらないだけでなく、時間の無駄だと考えている。このような態度をどう扱うか?_
- (回答)このような状態は望まれない状況です。最初にスプリントプランニングのファシリテーションを点検します。問題がなければ参加したくないメンバーとの1on1を実施し、理由、原因を探ります。理由、原因が適切なものであればあるいはチームが受容可能であればそれをレトロスペクティブの場で提案させ、スクラムの仕組みの中で解決を図ります。そうでない場合、人事権を有するマネージャーに任せます。

## Set 4: Daily Scrum 7 questions

1. __Q 26: The Formal Daily Scrum__
- _Would you recommend formal Daily Scrums for all teams, no matter the size or experience level?_
- _チームのサイズや経験度合いに関わらず全部のチームにスタンドアップを薦めるか?_
- (回答)薦めます。最初はチームのメンバーのサイズ、参加メンバーのキャリアに関わらず実施します。チームのサイズが7人を超える場合はあらかじめ7人以内に収まるようチームを分けておきます。チームメンバーのサイズが十分に小さい場合、二人とか、状況に応じて開催のスタイルを変えるほうが効果的かもしれません。

1. __Q 27: Impediments__
- _Do you expect experienced team members to wait until the next Daily Scrum in order to ask for help overcoming an impediment?_
- _なにか困っていることの助けが必要なとき次のスタンドアップまで待つことを期待するか?_
- (回答)待つ必要はない。いつでも声をあげてよい。あげにくければスクラムマスターに相談してほしい。

1. __Q 28: Leading a Daily Scrum?__
- _How do you handle team members who ‘lead’ Daily Scrums, turning the event into a reporting session for themselves?_
- _スタンドアップをリードして単なるメンバーに対する報告セッションにしてしまうような人をどのように扱うか?_
- 進行を持ち回り制にすることを提案してみる。リード役の彼にはチームの状況を確認するためにはいろんなやリ方があることを示し、気づかせることを第一に考える。

1. __Q 29: Waste of My Time?__
- _How do you manage team members who consider Daily Scrums to be a waste of time and are therefore either late, uncooperative, or simply don’t attend?_
- _スタンドアップが無駄だと思っていて遅刻して来たり協力的でなかったりもしくは出席すらしないような人をどのように扱うか?_
- (回答)このような状態は望まれない状況です。最初にデイリースクラムのファシリテーションを点検します。問題がなければ参加したくないメンバーとの1on1を実施し、理由、原因を探ります。理由、原因が適切なものであればあるいはチームが受容可能であればそれをレトロスペクティブの場で提案させ、スクラムの仕組みの中で解決を図ります。例えば開催時刻の変更など。そうでない場合、人事権を有するマネージャーに任せます。

1. __Q 30: Stakeholder Attendance__
- _Your team’s Daily Scrums are not attended by any stakeholder. Should that change?_
- _スクラムチームのスタンドアップにステークホルダーは誰も参加していない。この状況をどのように変えるか?_
- (回答)私の理解、経験ではステークホルダーは参加する必要はありません。このため状況を変える必要はないと考える。ステークホルダー参加により状況確認が阻害されることを排したい。

1. __1Q 31: Daily Scrum with Distributed Teams__
- _How do you approach Daily Scrums with distributed teams?_
- _分散チーム間のスタンドアップをどのように進めるか?_
- (回答)Teams、Zoomなどを利用してスタンドアップミーティングを実施します。ポイントは毎回定刻に実施すること、開始時刻数分前に会議を開き毎回アイスブレーク(雑談)をすること、少なくともスクラムマスターは顔を見せること、です。ボードはMiroなどを利用するのをおすすめします。

1. __Q 32: The Scrum Board__
- _Can you draw an example of a Scrum Team’s Kanban board — right now?_
- _スクラムチーム用の物理カンバンボードをいま書いてください_
- ToDo、Doing、Code Review, Test, Doneの5レーンの横軸を基本にします。縦軸に緊急レーンを設けるかはチームを運営して決めます。最初から緊急レーンを設けると、すべてが緊急レーンに入ってしまうからです。

## Set 5: Sprint Retrospectives 6 questions

1. __Q 33: Participants of a Retrospective__
- _Who should participate in a Sprint Retrospective?_
- _だれがふりかえりに参加してよいか?チームだけか?プロダクトオーナーも参加してよいか?_
- (回答)プロダクトオーナーもふりかえりには参加すべき。プロダクトオーナー、開発者、スクラムマスターにてスクラムチームです。レトロスペクティブの議事録はチーム外には非公開であるべきです。

1. __Q 34: Team Health__
- _Should you check a team’s health during a Sprint Retrospective, or is doing so unnecessary? If you do, how would you go about it?_
- _チームが健全な状態かをふりかえりの中で確認するか?それとも不要か?もし必要だとするとどうやって確認するか?_
- (回答)チームの健全性というテーマではないが、例えばコミュニケーションに困っていないかなどを確認することは可能。コミュニケーションについて、心配事の有無について無記名で5段階アンケートをとるなど実施するとよい。Teamsのアプリ、Office365のFormsなどアンケートをとるツールはいくらでもあります。

1. __Q 35: Retrospective Formats__
- _What Sprint Retrospective formats have you used in the past?_
- _過去に使ったふりかえりのフォーマットはどんなものか?_
- KPTをベースにふりかえりを利用しています。意見が出ない場合は、Keepとしてやったこと、わかったこと、感謝したことを、Pではプロジェクトで気になっていることを観点として示し、間口をひろげたりしました。Fun/Done/Learnも有効です。日々のふりかえりではYWTという日本発のフォーマットを使いました。

1. __Q 36: Retrospective Fatigue__
- _How do you prevent boredom during Sprint Retrospectives?_
- _どうやってマンネリを防いでいるか?_
- マンネリを防ぐためにというわけではありませんが、会の冒頭で自分たちチームのミッションを確認するようにしています。これはインセプションデッキの我々はなぜここにいるかであることが多いです。こうすることでふりかえりの焦点が明確になると考えています。

1. __Q 37: Not Delivering on Action Items__
- _If your team is picking reasonable action items but not delivering, how would you address the situation?_
- _チームはいつも妥当なアクションアイテムを選んではいるものの、実際に行動できていない。この悪しき習慣をどう扱うか?_
- 選択するアクションを一つに限定する。そこでも行動できていない場合はチームに何かが起きていると考え、障害の除去に務める。あるいは選択方法、選択基準に問題があるのかもしれないので、選択基準を見直してみる。またその実際に行動できていない、という問題をレトロスペクティブで提出してみます。

1. __Q 38: Follow-up on Action Items__
- _Would you recommend following up on action items? If so, how would you do that?_
- _どうやってアクションアイテムのフォローアップを薦めるか?_
- デイリースクラムにてリマインドし、意識を向かわせます。あるいは次のレトロスペクティブにて前回のアクションの成否をチームで議論します。

## Set 6: Agile Metrics 9 questions

1. __Q 39: Volatile Velocity__
- _Your Scrum Team is consistently failing to meet forecasts and Sprint Goals, and their velocity is volatile. What are the probable reasons for this problem, and how would you address it with the team?_
- _あなたのスクラムチームは常に予測とスプリントの目標を達成できておらず、その速度は不安定です。 この問題の考えられる理由は何ですか?また、チームでどのように対処しますか?_
- (回答)考えられる原因と対策は
1. スプリント計画が適切でない スプリントバックログを抽出するプロセスを点検します
1. DONEの定義が曖昧である DONEの定義を明確にするための会議を設ける
1. テストしにくい、開発しにくい、などの技術的負債の存在 技術的負債の解消をユーザーストーリーとして計画します

1. __Q 40: Suitable Agile Metrics__
- _What suitable agile metrics have you used in the past?_

1. __Q 41: Qualitative Metrics__
- _What qualitative agile metrics would you consider tracking?_

## Set 7: How to Kick-off a Transition to Scrum

1. __Q 42: Kicking off Scrum__
- _How would you prepare to kick off a transition to Scrum?_

1. __Q 43: Creating the First Scrum Team__
- _How would you create the first Scrum Team?_

1. __Q 44: First Steps of a New Scrum Team__
- _What do you recommend a newly formed Scrum Team works on first?_

## Set 8: Scrum Anti-patterns

1. __Q 45: Scrum Master Anti-Patterns__
- _What Scrum Master anti-patterns do you know?_

1. __Q 46: Sprint Retrospective Anti-Patterns__
- _What anti-patterns do you know of that can happen during a Sprint Retrospective?_

1. __Q 47: Improving as a Scrum Master__
- _How can you (as a Scrum Master) identify where you need to improve?_


EOF

Sunday, May 19, 2013

rabbitのインストール

rabbitはrubyによるプレゼンテーションツールです。 最近時間ができたのでSnow Leopardに入れました。 これで私もrabbitショッカーの一員に一歩近づいたかな?

rabbitって何?

Rabbitのサイトはこちらになります。Rabbit - A presentation tool for Rubyist インストールの仕方から、プレゼンテーションの作り方、Rabbitで作られたスライドのギャラリーまで書かれているので、 目を通しておくのもいいかもしれませんね。

インストールの仕方

先にあげたサイトのインストールのページに詳しく書かれています。 Mac OS XでHomebrewを使ったインストール方法はこちら。

ハマったとこなど

記載通りにインストールすれば問題なくできるかと思います。 私がハマったのはつぎの2点。 2点目はrubyのインストールをrvmからrbenvに変えたら生じました。何だったのだらう。

  • XQuartzをインストールしていなかった。
  • gem install rabbitでlibpngを参照できていなかった。
XQuartzはサイトを参照してインストールすればOKです。 libpngの参照はPKG_CONFIG_PATHにhomebrewで入れたlibpngライブラリのpkg_configへのパスを指定してあげればOKです。 具体的にはこんな感じ。
% PKG_CONFIG_PATH=$HOME/opt/homebrew/opt/libpng/lib/pkgconfig gem install rabbiter

参考にしたサイト

おまけ

似たようなプレゼンテーションツールに W3CのSlidyがあります。 こちらはJavaScriptによるプレゼンテーションツールです。これはこれで好きですけどね。PDFへの変換がちょっとかな。

rbenvのインストール

rbenvは異なるバージョンのRubyを管理するツールです。 最近時間ができたのでSnow Leopardに入れました。

rbenvって何?

異なるバージョンのrubyを管理するツールです。 sstephenson / rbenv - Github すでにrvmという同じ機能のツールがあるし、それを使っていたけれど、 基本的なコマンドを書き換えたりお行儀があまりよろしくない。 お行儀がよろしくない、というより機能がどんどん追加され肥大化してしまったのではないかしら。 いろんなシェル変数を定義するし、envとかsetとかタイプするとウジャウジャウジャーと出てきて気持ち悪く感じていたのは確か。 そんな時に稲尾さんのつぶやきを目にします。

rbenvの動向

え?そうなのrvmじゃなくてrbenvなの?google trendsで比較してみます。

rbenvの評判

実際どんな感じなの? googleでキーワード"ruby rvm vs rbenv"を検索して、出てきた記事を読みあさります。
そんなわけでrvmを捨てて、rbenvを入れました。

rbenvのインストール

% mv $HOME/.rvm $HOME/.rvm.old
% ドットファイルの修正
% ターミナルの開き直し
% brew update
% brew install rbenv
% brew install ruby-build
% ドットファイルの修正
参考にさせていただきました。ありがとうございました。

Friday, April 05, 2013

ブレイク寸前? 新しい習慣づくりを支援してくれるサービス、Liftを見て、いいかも?と思い、私のiPhone 3GSにインストールしました。 ブログ書きを習慣化したい。

Sunday, March 24, 2013

いろいろと試す

http://rinu.hatenablog.com/entry/2013/03/17/164151

こんな感じでしれっと書かれると、置いてきぼり感が半端無いです。
今日はいろいろと試してみましたが、どれもこれもダメダメでした。

jenkinsのプラグインbuild pipelineは使い方がわからないし
仮想マシン起動のvagrantはvirtual box起動させるところで失敗する。
ackいれても慣れているgrep使おうとしてしまう。
 Sublime Text2入れても、ついついvi使ってる。

頭が固いのか、新しいものを受け入れようとしていない自分がなんだかなぁ、という感じ。 あ、ubuntuのdesktopをVMWare Fusion のゲストOSにいれました。 固定IPにしたかったので、先日のサーバーのインストールと同様に/etc/network/interfacesを修正しました。こんな感じ。
auto eth0
#iface eth0 inet dhcp
iface eth0 inet static
address 192.168.xxx.yyy
netmask 255.255.255.0
network 192.168.xxx.0
broadcast 192.168.xxx.255
gateway 192.168.xxx.zzz
dns-nameservers 192.168.aaa.bbb

Wednesday, March 20, 2013

ubuntu server 設定メモ

vmware fusion のゲストOSにubuntu server 12.10をインストールした。
インストール後の設定を備忘録として残しておく。

やったこと
 (1)/etc/network/interfacesの設定変更
 ホストOSからも参照するようにしたい。しかしVMWARE Fusionを起動する度にipアドレスが変わってしまうのはいただけない。 そのため、ubuntuのIPアドレスを固定にした。
固定IPはVMware FusionのDHCPで割り振られるIPとかぶらないようにする必要がある。
DHCPの設定ファイルは次の場所にある。

/Library/Preferences/VMware Fusion/vmnet8/dhcpd.conf
subnetで割り当てられる範囲を避けて固定IPアドレスを決めること。

 (2)タイムゾーンの変更
ESTをJSTに。

sudo dpkg-reconfigure tzdata

そんな感じ。

Sunday, February 19, 2012

デブサミ2012 Day2 2012/02/17 メモ

デブサミ2012 Day2 2012/02/17 メモ

全体俯瞰はこちらが便利。
デブサミ2012 参加セッション一覧 http://bit.ly/A9kjcL

【17-A-1】
Jenkins
川口 耕介 氏
(※部屋変更)
http://togetter.com/li/257791

具体的な利用方法ではなく、Jenkinsの方向性についてのお話。
メモとっていないので、togetter見てください。

【17-A-2】
仕事のバトン、渡っていますか? - プロジェクト管理におけるコミュニケーション基盤作り
鈴木 雄介 氏
(※部屋変更)
http://togetter.com/li/257887

課題管理ツールJIRAの説明。
使い方のポイント
・起票のルール(言葉遣いは丁寧に、記載内容は事実の報告を)
・誰がクローズするのかを決める
・チケットの粒度を定める(切り過ぎ注意)
・定期的な棚卸し必要

アンチパターン
・ワークフローやフィールドの設定し過ぎ
・タスクの階層化
・複数のコミュニケーションツールの併用

要は基本デフォルト設定の利用で問題ないとのことです。

お客さんにも使ってもらうことが大事だとのこと。
印象的だったのはログインを面倒だというお客がいれば、「だったら僕ログインしますよ」と。つまりそれくらいのことをしてもお客さんと役割を決めて、コミュニケーションツールとして使ってもらえ、と解釈しました。

【17-B-3】
言語の世界
まつもと ゆきひろ 氏
http://togetter.com/li/257797

Rubyの言語設計のお話。
言語設計は発想をプログラミングしているのだと。
なので、Rubyを利用している人はまつもとさんの言語仕様を組み込まれているのだと。
つまり、We program You!

【17-C-7】
From Legacy to Agile ~レガシー開発からアジャイル開発へ~
野口 大輔 氏 / 塩谷 啓 氏
http://togetter.com/li/257837

ドワンゴへ転職した人たちのお話。
といいつつ、結構SIerのdisりが多かったような。

紹介されていた書籍やウェブサイト
・アジャイルマニフェスト
・アジャイルサムライ
・アジャイルプラクティス(おすすめ)
・アジャイルな見積もりと計画作り

途中で上司の方が登壇されチームの決まりを披露
・テストを書く
・問題は根性では解決しない
・人を■す以外なら何やってもいい
・失敗を引きずらない
これについては本人のブログも参照。
デブサミで僕が話したことの簡単なまとめ
http://d.hatena.ne.jp/Yoshiori/20120217/1329491437

以上で今年のデブサミも終わりです。
大変楽しかったです。登壇者の皆様、スタッフの皆様、ありがとうございました。

デブサミ2012 Day1 2012/02/16 メモ

デブサミ2012 Day1 2012/02/16 メモ

行ってきました。目一杯セッションを選ぶと消化不良を起こしますね。
全体俯瞰はこちらが便利。
デブサミ2012 参加セッション一覧 http://bit.ly/A9kjcL

【16-E-1】
2015年のアーキテクチャ、マーケティングシステムを題材にして
熊澤 公平 氏
http://togetter.com/li/257811

現在主流なBigDataとBigProcessingがやがて融合されると説いてらっしゃいました。
購買の際、計画をたてていながら、その場の情報により予定外の購入をしていることはよくあることです。これをツカミに「モノと一緒にコトを見る」アプローチについての説明は大変刺激的でした。これは購買支援だけでなく、意思決定支援にも展開されるのではとワクワクしながら聞いていました。

【16-E-2】
ペイパル最新決済ソリューション
水野 博商 氏 / 植野 稔之 氏
http://togetter.com/li/257826

PayPalの説明でした。今後決済可能な手段として広く流通していくことを期待します。
例えば百貨店とかコンビニエンスストアとかね。
紹介していたビデオに描かれていた未来予想図はなかなか楽しめました。


【16-B-3】
教科書と現場のあいだ ~学びを活かすために~
和智 右桂 氏
http://togetter.com/li/257696

自分が価値があると思うことを相手に伝える技術は大切だと説いていらっしゃいました。
説得とか説明というのは自分にとって苦手な部分です。ちょっと反省。

【16-E-5】
デザインの最前線
田川 欣哉 氏
http://togetter.com/li/257704

takramの田川さんによるMUJI NOTEBOOK制作を題材にしたデザイン設計についてのお話。
MUJIとiPadのベン図の交わる部分がMUJI NOTEBOOKという説明はわかりやすかったです。

企業相手のシステムでは機能優先や導入技術に偏ったデザインになり失敗することが多いのですが、
コンシューマー相手ではエンジニアリング(機能)部分とデザイン(操作性、見た目)の両方が重要になります。
このため早い段階からお客さんにプロトタイプを見せることで、お客の理解度が上がり、共感を呼び、アイデアが出てくるとのこと。

企業相手のシステム開発では、設計書という仮説だけで詳細化が進み、不必要な仕様が付け加えられることがあるのですが、プロトタイプの利点は、具体と抽象の両面から製品開発にアプローチできることです。

シミュレーションで動かしても有効な結果は得られないので実機で確認する、というお話は継続的インテグレーションあるいは継続的デリバリーに通じるものを感じました。

まとめ
1 demo is more informative than 100 sketches.
Animation for not only screen.
Test the application with a right setting.

ユーザに残る体験の作り方としてヒントを教えていただきました。
製品の中に強いコントラストをつける
できるだけ複数の感覚を同時に刺激する
(挙げていただいた具体例を失念してしまいました)

お客との間で感覚を共有するのは大事なことだと思います。
企業向けの場合、やたらと機能とか新しい技術にこだわったデザインとなり、
失敗することが多いので気をつけたいと思います。
また、早い段階から実物を見せられるよう、日頃の練習(?)が必要ですね。


【16-B-7】
デブサミオフィシャルコミュニティから選出のLT大会2012
よしおか ひろたか 氏 / ショウジ ユウコ 氏 / 16コミュニティ参加
http://togetter.com/li/257878

Hack For JapanのOikawaさんのLTが印象的でした。

Saturday, January 28, 2012

特許庁情報システム開発中断備忘録

特許庁情報システム開発中断についての備忘録です。

特許庁の発表は次の四点。

1. 作ろうとしていたもの
2005/7 「特許庁業務・システム最適化計画」(改訂版)について http://bit.ly/AmQPeI

2. 収賄事件の調査報告書(開発状況へのダメだし含む)
2010/8/20「特許庁情報システムに関する調査委員会」からの調査報告書の提出について http://bit.ly/xZHjJI

3. ダメだしが改善されていないのでヒアリング
2011/9 - 2011/12 特許庁情報システムに関する技術検証委員会 http://bit.ly/yzTy31

4. 開発中断報告
2012/1/24 特許庁情報システムの技術検証結果について bit.ly/yl0F3m

違和感を感じたのは2010/8の報告書の内容。三つある。
報告書の六割が「再発防止」を理由に開発状況の技術検証となっていること。
報告書第二部の収賄事件の背景にて、「業務要件確認書」が開発会社TSOLから納められていない事実があるとし、開発の停滞原因がTSOLだけにあるかのように書かれていること。
なぜTSOLが「業務要件確認書」を納品できなかったかの真因分析がなされていないこと。
上記三点から考えられるのは、この報告書はTSOLに分が悪く書かれており、TSOLによる開発をやめたかったのではないかということ。ひょっとすると最初から内部でTSOLの開発に反対の声があり、収賄事件を機に開発をやめさせる方向に動いたのかもしれない。

特許庁が提示した最適化計画を見ると、非常に複雑な印象を受けるが、人間が担う作業と、システムに対する操作と同列に書かれていたり、適切な業務分析がなされたかは疑問だ。本来RFPとしてユーザー側が開発するシステムに対して明確なビジョンや方針を作成すると思うが、それがなされていなかったのではないだろうか。

確かにTSOLは設計をスケジュール通りに終わらせられなかったかもしれないけど、その真因は報告書でも明らかにされておらず、依然として不明なまま。開発中断は正しい選択だとは思うけど、また同じことが起こる気がする。


参考
特許庁の55億かけて頓挫したプロジェクトの報告書が面白い http://bit.ly/y6GbjM

特許庁の情報システムについて - myatsumoto blog http://bit.ly/wXHYbb

特許庁の情報システムについて - 技術検証委員会の議事録 - myatsumoto blog http://bit.ly/xD1iN4

Sunday, January 01, 2012

2011 振り返り

2011年 KPT的振り返り

2011年をKPT的に振り返ってみます。KPTふりかえりについてはこちら。
http://www.slideshare.net/esmsec/kpt-5469874

Theme
ITに関すること

Keep
IT系イベント参加
- Agile Japan 2011 4/8 http://www.agilejapan.org/event/2011/
- JJUG Cross Community Conference 2011 Fall 10/12 http://www.java-users.jp/contents/events/ccc2011fall/
- Yapc::Asia 2011 10/14-10/15 http://yapcasia.org/2011/
- Scrum Gathering Tokyo 2011 10/19, 10/22 http://www.scrumgatheringtokyo.org/sgt2011/index.php?id=7

IT系勉強会参加および発表
- nseg #11 01/15, #18 08/27 http://nseg.jp
- jggug #15 2/24, #17 7/29 http://www.jggug.org

発表はnseg #11 Selenium RCの紹介
http://www.slideshare.net/sano66/selenium-rc-web-application-testing-tool

IT系イベントや勉強会は刺激を得られますね。
自身の発表する機会を得られたことが一番の収穫でした。
Selenium-RC使っていてよかった。

Problem
アウトプット不足
もう少しいろいろつくったり、発表できたと思います。
時間が足りないというのは言い訳ですね。
原因はなんだろう。モチベーションが足りないのかな。
IT勉強会やイベントで得る刺激が多すぎて目移りする、というのはありますね。
参加対象を十分に選択しなければいけないかもしれません。
もともと自分の許容量は小さいですし。

プレゼン技量不足
もっと場数をこなさないといかんなぁ。
プレゼンテーションzen
Garr Reynolds ガー・レイノルズ
ピアソン桐原
売り上げランキング: 1138


Try
Selenium 2.x の習得
Seleniumもバージョンがあがりました。
理解を深めまた発表する機会に備えたいと思います。
http://seleniumhq.org/

Project Euler挑戦
twitter経由で知ったProject Eulerですが数学の復習のようで楽しいです。
現在Javaで解いているのですが、これをRubyやGroovyなどの異なる言語で
挑戦することで言語の勉強に生かしたいと思います。
http://projecteuler.net/
http://github.com/sano66/projecteuler/

Yammer関連のアウトプット
yammerはドメインに閉じたマイクロブログサービスです。
APIがそこそこ充実しているのでなんか作ってみたいと思います。
http://yammer.com

読書時間の確保
じっくり本を読む時間を増やしたいと思います。


KPT的ふりかえりはこんな感じでいいのかな?ちょっと違う気もするけど、まぁいいや。
今年もよろしくお願いします。

Wednesday, November 23, 2011

HIP_343660280.189695

HIP_343660280.189695 by Atsushi Sano
HIP_343660280.189695, a photo by Atsushi Sano on Flickr.

昨日ライブに行ってきた。
渋谷慶一郎 / ATAK Dance Hall set:Keiichiro Shibuya+evala
WWW 1st Anniversary 『分解☆渋谷慶一郎』

http://www-shibuya.jp/schedule/1111/001017.html

久しぶりに楽しい時間を過ごした気がする。やや興奮気味。

Sunday, October 23, 2011

Scrum Gathering Tokyo 2011 Day2に行ってきた

10/22(Sat)に早稲田大学理工学部にて開催されたScrum Gathering Tokyo 2011 Day2が行われました。私はスクラムについての知識よりも実際の作業を体験したかったのでBoot Campに参加しました。


Boot Campでは「アジャイルサムライ」の監訳者でもある西村直人さんが講師となり、実習も交えながら一日がかりのScrum研修です。書籍や講演などで知識としてScrumを知っていても実際に何から始めればいいか迷っている私にとっては大変意義のある内容でした。


実践するにあたってのヒントをいくつか得ることができました。私にとってのヒントは以下のとおりです。



  1. スプリントの完了条件を明確にすること


  2. 技術的なスキル( TDD / CI / CD / リファクタリング )が必要であること


  3. 問題点だけでなくチームの気分も透明にすること


  4. 約束したことを守り続けること


  5. テストできること、つまり実現を確認できること


  6. 見積もりをチームでやること


  7. 見積もりができる、すなわち扱えるということ



大変貴重な時間になりました。西村さんをはじめ、スタッフの方々ありがとうございました。


参考URL


Scrum Boot Camp


塹壕より Scrum と XP





"アジャイルサムライ−達人開発者への道−" (Jonathan Rasmusson)



追伸当日、TDD BC 長野 0.1 が長野市で行われていました。アジャイル開発においてはTDDは必要なので次回は参加したいと思います。








































Wednesday, September 14, 2011

iPhoneから投稿テスト

googleサイトをマルチアカウントで利用できるiPhoneアプリを探していたところ、google作成のbloggerという名前のアプリを発見した。
どんなものかと思い、只今テスト中。

Monday, August 29, 2011

NSEG #18に行ってきた

第18回長野県ソフトウェア技術者グループ勉強会に行ってきました。
カレーの大原屋さん、幹事の方ありがとうございました。
充実した時間と、適度な刺激をいただきました。感謝です。
あと、遠方から参加された方々、夜三時までおつきあいくださりありがとうございました。

以下、自分のためのメモ

1 NSEGの紹介
今までのNSEGの活動を簡単に紹介
コンスタントに継続していることに改めて驚きを覚える。
主催者の勉強会への強い思いと、敷居が低さの現れなんだと思う。
これは私見なんだけど、勉強会は心療内科のグループカウンセリングに近いところがあると思う。
参加者が集まり、各自が思いを吐露するところがよく似ているような気がします。

2 カレーとプログラミング
@kagamiwariさんによるCurry言語の紹介とCurrey-Howard 対応についての説明
書籍紹介 論理の哲学
知の教科書 論理の哲学 (講談社選書メチエ)

講談社
売り上げランキング: 400664


"Curry-Howard correspondence"は初めて耳にした。
日曜日にネットを漁ってみたけれど理解に至らず。残念。

3 カレーと勉強会
カレーの大原屋ご主人小沢さんのプレゼン。
ソーシャルメディアを用いたお店の宣伝活動について語っていただいた。
書籍紹介 アイデアの作り方
アイデアのつくり方
アイデアのつくり方
posted with amazlet at 11.08.29
ジェームス W.ヤング
阪急コミュニケーションズ
売り上げランキング: 394


刺さった言葉
"全てのアイデアは既存物の結びつきでしかない"
"情報収集のつもりが情報発信になっていた"
"それまでGoogle Mapのサテライト写真がなかったが、ウェブで紹介されてからサテライト写真が乗るようになった。Google すごいぜ!"

ソーシャルメディアで大切にしていることは、
レスポンスをタイムリーに返す、そのために情報導線を作った。(レジのとなりにPCを持ってきた)
ネガティブなことは言わない
とのこと。なるほど。
オヤジギャグをつぶやくとフォロワーが増えるとは知らなんだ。

4 PHPerによるEclipseプラグインの作り方
@zoolooskiさんによるプレゼン
PHPerと書いて"ペチパー"と読む

刺さった言葉
"きっかけは前々回山田さんのプレゼン"
"触りだしたら作りたくなった"
これ大事だと思う。
勉強会での刺激が、次の勉強会の刺激を生むいい例だと思います。

5 カレーとFirefox

@hATrayfloodさんによるFirefoxプラグインの作り方紹介
Mozilla関係者にはカレー好きが多いらしい。
「辛くて辛い」ときたから「禿びで禿げ」と返したかったのだがそれは自虐的なのでやめておいた。
以前に比べずいぶんとプラグイン作成が容易になったようだ。
デモはカレーの大原屋へのリンクアイコンをステータスバーに表示するプラグイン作成
なるほど記述も直感的だし、敷居が低くなった気がする。

6 ギネスブック申請と10兆桁の計算(途中経過)

近藤さんによるギネスブック申請の顛末
ギネスブックの始まりは「世界一はやい鳥は何か」をギネスビールの取締役が言い出したから。
ギネスブック申請は最初考えていなかった。周りから言われる度合いが高くなってきたので申請した。
ギネスブック申請は全て英語。日本語ガイド付きは有料。
円周率計算結果5兆桁をハードディスク4台に入れて送付(返却されない)
東京の大学の先生には証明が足りないと言われた。でもギネス申請受理された。
現在10兆桁に挑戦中。
7月の停電時にはあきらめたが、UPSが持ってくれてことなきを得た。
(昔、書籍に載っているプログラムを打ち込んでいる最中に、ブレーカーが落ちたときのことを思い出しました。)

学習要項には3で教えろとは一言も書いていない。「円周率を3でいい」とした報道がおかしい。
円周率教育について、3桁の計算を教える前に円周率3.14を教えるのがよくない。
「だいたい3とちょっと」から始めて、紐で測ったりして、精緻な数字にたどり着いていた。

ハードディスクにアクセスするとOSが邪魔する。からの、ファイルシステム談義
OSがWindowsだからじゃないか? Linuxならどうかしら?
Windowsだとドライブレターが24しか使えない
Linuxだとext4ファイルシステムの制限がある zfsファイルシステムならどうかしら?
円周率の計算はハードディスクの耐久テストみたいだよね
日本人は儲からないと相手にしてくれない
円周率計算挑戦のきっかけはフランスの方の世界記録更新を聞いたから。


7 Rabbitの紹介
@tmtmsさんによるプレゼンテーションツールRabbitの紹介
Rabbitと高橋メソッドによるRabbitと高橋メソッドの紹介
Rabbitと高橋メソッドは相性がいい
高橋メソッドはLT向き
うさぎと亀により制限時間と進捗度が視覚的に表示されるところが優位

書籍紹介
MySQL徹底入門 第3版 ~5.5新機能対応~
遠藤 俊裕 坂井 恵 館山 聖司 鶴長 鎮一 とみた まさひろ 班石 悦夫 松信 嘉範
翔泳社
売り上げランキング: 5483


高橋メソッドはインパクトを与える、わかりやすいという点ですぐれたメソッドですね。
近藤さんが感心されていたのが印象的でした。

8 git超入門
@yamada_ken1さんのgitの入門
というよりこのプレゼンテーションを元にしたgit談義
参加者の半分ほどがsvn、三分の一ぐらいがgit、数名がmercurialな感じ。

書籍紹介
入門Git
入門Git
posted with amazlet at 11.08.29
濱野 純(Junio C Hamano)
秀和システム
売り上げランキング: 9404

入門git
入門git
posted with amazlet at 11.08.29
Travis Swicegood
オーム社
売り上げランキング: 14987







Friday, July 29, 2011

JGGUG #17 G*ワークショップ に参加した

JGGUG #17 G*ワークショップ

品川NTTソフトウェアでの開催。
今日のお題は、次の二本。
▶「1.4.0.M1 !? 2.0.0.M1 -更新メモ-」 by 山本剛(ニューキャスト)(tyama)
▶「うさみみとJenkinsとG*な開発環境」 by きょんさん(kyon_mm)

内容が私には難しく、理解ができていません。消化不良気味です。
とはいえ、プログラミングGroovyも出たことですし、勉強をするきっかけにはなったかと思います。多分。
以下はメモです。推測や思い違いも入っています。

▶「1.4.0.M1 !? 2.0.0.M1 -更新メモ-」 by 山本剛(ニューキャスト)(tyama)
"プログラミングGroovy"によれば"GrailsはGroovyの言語特性とDSLを徹底的に駆使したWebアプリケーションフレームワークです。"
もともとはRuby On RailsのJava実装だったが、JavaによるRailsライクなフレームワークに実装方針が変更されてきている。
コンポーネントのバージョンは次のとおり
Groovy 1.8
Sprng 3.1
Servlet 3.0
Tomcat 7
Hibernate 3.6
jQuery
ソースコードはGraidleの使い方の勉強にもなる。一度読んでおくといいらしい。
山本さんの会社では100%Grailsで実装とのこと。
2.0からバイナリプラグインの提供が可能になった。

▶「うさみみとJenkinsとG*な開発環境」 by きょんさん(kyon_mm)
きょんさんの開発環境は
Jenkinsを中心に、いくつかのシステムを組み合わせている。
バグトラッキングシステムにRedmine
バージョン管理システムにMercurial
ビルドするのにGradle
テストコードを書くのにGroovy
テスト対象はJava

Groovyを使うようになったきっかけは三つ
Groovyを「やってみたかった」
自動テストを「やってみたかった」
AntとかMavenわからない

きょんさん曰く「GroovyはJavaというUnix哲学の言語をモダンにラップした言語」
人に便利さを説明する場合に5分かかっていてはだめ、3秒でできることが大事。
Groovyは学習コストが低く、機能を満たすコード量が少ないので、書くのに時間はかからない。

適用範囲はテストコードに限定して使っている。
テストコードをJavaを使って30秒かけて書くよりも、Groovyを使って7秒で書くことが大事。
dump()メソッドは便利
PowerAssert使うときれいな表示でわかりやすい。
テストコードのパッケージングをTDD用、ユニットテスト用、システムテスト用に分ける。
Jenkinsでどうなるかが判断基準。おそらくJenkinsの動作に負担を強いるような構成はとっていないと思われる。

RedmineはBacklogsのために入れているとのこと。
入力項目の多いバグトラッキングシステムは「ゆとり」だから使えない、と仰っていたがおこれは同意できる。必要最低限でいいと思う。SIerは意味のわからないメトリクス値を要求するとのこと。これは確かに閉口だ。

きょんさんはうさみみつけてた。びっくりした。

おまけリンク
20110729_第17回 G*ワークショップ(#jggug )
RedmineのBacklogsプラグインを入れてみた

Thursday, July 28, 2011

JJUG 基礎セミナー HTML5&API入門へ行ってきた

JJUG 基礎セミナー HTML5&API入門へ行ってきました。講師は白石俊平さん。内容は初心者向けのHTML5入門といったところ。
HTML5についてはほとんど知らないのでちょうどいい内容でした。
HTML5&APIを使ったウェブページの表現力の豊かさに圧倒されてきました。
明らかにデスクトップアプリケーションとウェブアプリケーションの距離は縮んでいます。

以下は簡単なメモ。思い込みやうろ覚えも含んでいます。

それまでは文書のプラットフォームであったHTMLは、HTML5によりアプリケーションプラットフォームへと進化した。
狭義にはHTML5はHTML文法とDOMに関する仕様のアップデート
広義ではHTML5にJavaScript, CSS3も含められる場合がある
HTML5には3つの意義がある。

1つ目セマンティックWebとアクセシビリティ
"More Readable for Everyone"
健常者だけでなく全ての人に。
HTML4ではセマンティックの表現が乏しくdiv要素とスタイルシートのクラスで表現していた。
HTML5ではheader要素、footer要素、section要素など文書内の文の意味の表現が可能

2つ目互換性の追求
ブラウザの挙動、表現を同じに。
"Pave the Cowpaths"
HTML4で仕様が無かったり曖昧な部分の実装がブラウザ毎に異なっていた。
HTML5では既存のブラウザの実装から仕様を取り込んだ。
"Write at once, Run any Browser"
IE9の提供は評価できる。これでIE6, IE7, IE8とも決別できる。
Microsoft曰く、"IE6は9年前の腐った牛乳だ"

3つ目Rich Internet Application
canvas要素による表現力の強化
起動時に必要とするリソースを全てダウンロードしておくことで、オフラインでも稼働可能に。これにはローカルのデータベースIndexedDBを使う。
参考サイト Sticky Notes
デバイス固有の機能にアクセス可能。これはスマートフォンを意識した仕様。ただしセキュリティには気を使っている。ユーザの許諾無しにアクセスは不可。
例 GPS、マルチメディアファイル、アドレス帳、バッテリー、マシンの傾き、メール送信
これによりネイティブアプリとの機能差が縮小する。
WebSocketを使った高度なネットワーキング
ゲーム業界が注目 HTTPでシェイクハンド!?
ファイアウォールを超えられる
video要素によりマルチメディアの再生が容易
WebWorkersを使って、バックグラウンドでJavaScriptの処理させることが可能になった

まとめ
HTML5でウェブアプリケーションはバージョンアップする。
セマンティックウェブ、リッチインターネットアプリケーション
HTML5ではオープン標準を利用している(W3C, ECMA, など)ので仕様の互換性が保証される。
ベンダーロックインは無い。
CSS3を策定した人(名前は失念)が策定作業を活版印刷技術になぞらえて、「この先500年使われる技術仕様策定に関われて幸せだ」と言っている。

おまけ(質疑応答から)
ウェブアプリケーションの作り方は変わる。
それまではサーバーサイドで処理させていたが、できることはブラウザ側にやらせるようになる。
プログレッシブエンハンスメントというアプローチ
これは、ターゲットを新しいブラウザに置き、古いブラウザでは最低限の動作を提供する、という考え方
以前はどのブラウザでも同じに見えなきゃだめ、だった。
やっちゃいけないのはUSER_AGENTを使った判定処理。Modernizrを使ってブラウザの実装機能を判定するのがいいらしい。
HTML5によりクロスオリジンリソースシェアリングが可能になった。
それまでもJSONPを使ったハックがあったがあまりいいやり方ではない。

Saturday, August 07, 2010

PerlでHTMLをエスケープ

perl -MHTML::Entities -p -e 'encode_entities($_);' file

Syntaxhighlighter

Syntaxhighlighterを使ってみる。

GoogleのPrettyPrintよりもよさそうだ。

こんな感じ

sub text2hello {
my $arg = (@_);
print $arg;
}

Friday, July 23, 2010

クラウドコンピューティングについて思うこと

クラウドコンピューティングってIT業界の潮流なので、エンドユーザの要件充足とは切り離して考えなきゃいけないと思うんだ。
手段であって目的じゃないよね。

# スクラムマスターを雇う時に聞いてみるとよい47個の質問

  # スクラムマスターを雇う時に聞いてみるとよい47個の質問 スクラムマスターへの質問というPDFがあるので、回答してみた。 定期的に自分の回答がどう変わっていくのか楽しみだ。 Scrum Master Interview Questions: Free Download of...