タグ

ブックマーク / www.ryuzee.com (21)

  • プロダクトオーナーのアンチパターン

    アジャイル開発に取り組むチーム向けのコーチングや、技術顧問、認定スクラムマスター研修などの各種トレーニングを提供しています。ぜひお気軽にご相談ください(初回相談無料) みなさんこんにちは。@ryuzeeです。 スクラムにおいてプロダクトオーナーは非常に重要な役割を果たしますが、一方でうまくやるのが難しい役割でもあります。 たとえばプロダクトオーナーには、ビジネス価値を最大化する、プロダクトのビジョンを周りに示して理解させる、プロダクトバックログを管理する、ステークホルダーをマネージする、開発チームの成果物の受け入れ可否を判定するといった多岐に渡る責任があり、限られた時間の中でバランスを取りながらやっていかなければいけません。 今回は、こういうのは避けようというアンチパターンを紹介します。 そもそも…多忙すぎるプロダクトオーナー不在のプロダクトオーナースクラムイベントに参加しないプロダクトオ

    プロダクトオーナーのアンチパターン
  • スクラムで開発チームが自由な取り組みをするには?

    みなさんこんにちは。@ryuzeeです。 スプリントをずっと回していると、「いつもスプリントに追われている気がする」「一回立ち止まってゆっくり考えたい」「情報共有ができていない気がするので整理したい」「技術検証をもっとやりたい」「勉強時間をとりたい」といった話を聞くことがあります。 それに対して、どのように対処していくべきか考えてみましょう。 考えられる対応策はいくつもあるので、まずはそれを列挙します(ダメなものも混ざっています) 複数回スプリントを実施したら、1回分のスプリントでは開発チームは好きに活動する(✕)スプリントとスプリントの間に休憩を入れる(✕)フィーチャー開発以外の取り組みを行うスプリントを必要に応じて用意する(△)スプリントのキャパシティを見直して、開発チームが持続可能なペースで働けるようにする(◎)それぞれを順番に見ていきましょう。 複数回スプリントを実施したら、1回分

    スクラムで開発チームが自由な取り組みをするには?
  • AWSを退職します

    私事ですが、AWS(Amazon Data Services Japan)を10月31日付けで退職いたします。日が最終出社日でした。 入社したのが2013年4月1日ですので、在籍期間は2年7ヶ月ということになります。 前回転職した時に知り合いはみんなもって半年とか1年と言ってくれたのですが、その期待は裏切ることが出来ました。 在籍期間中は非常に多くの方にお世話になりましたこと厚く御礼申し上げます。 AWSでやったこと 思い返せばAWS仕事をすることになったのはひょんなキッカケでした。 2012年10月にアジャイル関連の講演をするために、札幌のJava Festa 2012というイベントにお邪魔させていただきました。 その講演会場の控室にいたところ、当時すでにAWS仕事をしていた旧知の玉川憲さん(いま飛ぶ鳥を落とす勢いのSORACOMの代表ですね)から、日AWSコンサルティング部

    AWSを退職します
  • オープンソースのAPI Gateway「Kong」

    アジャイル開発に取り組むチーム向けのコーチングや、技術顧問、認定スクラムマスター研修などの各種トレーニングを提供しています。ぜひお気軽にご相談ください(初回相談無料) 全国100万人のモノリシック巨大アプリケーションに苦しむみなさんこんにちは。 世の中も杓子もマイクロサービスだ!!とかAPIだ!!とか言っていますが、実際にマイクロサービス環境にしようとすると、どのようにしてAPIのサービスを取りまとめるかが課題になります。 一般的には以下のようなやり方になります。 複数のサービスに分散しているAPIを統合するゲートウェイを用意するそのゲートウェイでは以下のようなことをおこなうクライアントからのアクセスのシングルエンドポイントの役目を果たすAPIの実体へのルーティング認証アクセス記録の収集スロットリング(過度なアクセスの抑止)実体がダウンしている場合のデグレーションこのようなAPIゲートウ

    オープンソースのAPI Gateway「Kong」
  • Hashicorpの新プロダクト「Otto」を試してみた

    全国1000万人の大トロ好きのみなさんこんにちは。 Hashicorpから新たにOttoと呼ばれるプロダクトがリリースされました。 OttoはVagrantの後継となるもので、開発からデプロイまで一気通貫で行うことができるソリューションでマイクロサービスでの活用も考慮されて作られているということで早速試してみました。 軽く触った印象としては、Vagrant、Packer、Terraform、ConsulなどいままでHashicorpが提供してきたツールを組み合わせて一気通貫で操作できるようになった、と考えるとわかりやすそうです。 インストール https://ottoproject.io/downloads.html にアクセスして自分の環境にあったバイナリをダウンロードして展開します。展開したら実行できるようにPATHに追加します。 僕の場合はアーカイブを~/tools/otto/に配置

    Hashicorpの新プロダクト「Otto」を試してみた
    bojovs
    bojovs 2015/09/30
  • ベロシティに対する誤解 | Ryuzee.com

    アジャイル開発に取り組むチーム向けのコーチングや、技術顧問、認定スクラムマスター研修などの各種トレーニングを提供しています。ぜひお気軽にご相談ください(初回相談無料) みなさんこんにちは。@ryuzeeです。 スクラムをはじめとしたアジャイル開発の見積りでよく使われるのがストーリーポイントです。 ストーリーポイントは研修でもよく聞かれるテーマであるとともに、誤解も多いものなので、今回基からまとめて解説したいと思います。 なお、文脈の前提として、スクラムでの活用を想定しています。 ストーリーポイントとは?まずは、ストーリーポイントとは何なのかを見ていきましょう。 書籍『アジャイルな見積りと計画づくり ー価値あるソフトウェアを育てる概念と技法』(Mike Cohn 著、安井力、角谷信太郎 訳、マイナビ出版、2009/1/29)の61ページから62ページにかけて、ストーリーポイントは以下のよう

    ベロシティに対する誤解 | Ryuzee.com
  • Dashingで簡単にダッシュボードを作る方法

    全国1億2000万人のImmutable Infrastructure好きの皆様こんばんは。 去年あたりに色々な場所で紹介されたりして知っている人が多いと思うのですが、簡単に自分用にダッシュボードを作れるDashingが結構使いやすいので改めて紹介しておきます。APIを用意しているミドルウェアやシステムであれば簡単にデータを引っ張ってきてゴニョゴニョできます。 Dashingとはhttp://shopify.github.io/dashing/で公開されているSinatraベースで作られたダッシュボード作成用のフレームワーク。 非常に見た目の良いダッシュボードが作れます。デモは、こちらで公開されています。 ウィジェット型のアーキテクチャーのため、色々なダッシュボード用のパーツを独立して作成し、自由に配置することができること、データを自動で更新できること等も特徴です。 インストールDashi

    Dashingで簡単にダッシュボードを作る方法
  • Sensuを使って自由度の高い監視システムの構築を行う方法

    SensuとはSensuはhttp://sensuapp.org/で公開されているオープンソース(MITライセンス)のモニタリングフレームワークです。 特徴以下のような特徴があります(公式サイトの記述を整理) シンプルで融通が効き拡張性があるモニタリングフレームワークエージェント、メッセージバス、イベントプロセッサーの機能を提供要件にあわせて他のツールとの組み合わせが可能クラウドを意識して開発自動でクライアント(監視対象)を登録コミュニティが活発RubyのEventMachineを使って作られているコードはGitHubホストされ、テストコードは高いカバレージ。TravisCIで継続的インテグレーションを実施Nagiosのプラグインを再利用可能設定はすべてJSONファイルで行うRabbitMQを使ったメッセージ型のアーキテクチャーオムニバスインストーラーを提供個人的な見解としては、Sens

    Sensuを使って自由度の高い監視システムの構築を行う方法
  • Packer & Chef-SoloでAmazon EC2のAMIを簡単に作る方法

    全国1000万人のPackerユーザーのみなさんこんにちはこんにちは。 Packerは、Mitchell Hashimotoさんによって開発が進められている様々な環境の仮想マシンのテンプレートを簡単に作れるツールです。例えばVagrantを使っている場合はいままではPatrick Deboisさんが作っていたVeeweeを使うのが定番でしたが、このPackerの登場で主流が移りつつあります。 またPackerでは、Amazon EC2用のAMI (Amazon Machine Image)を作成することもできます(某ドラクエ好きな著名エンジニアのIさんが「PackerはAMI作成ツールだ!」と言っていたのを聞いたような気がw) 今までは、Packerでミドルウェアやパッケージをインストールしたり、細かい設定をする場合にはShellのProvisionerを使っていたのですが、先日登場したバ

    Packer & Chef-SoloでAmazon EC2のAMIを簡単に作る方法
  • 速報 Packerでさまざまな仮想マシンのテンプレートを作成する

    続報で、VagrantのBoxの作り方について書きました。こちら Vagrantの作者であるHashimotoさんが新たにPackerというツールをリリースした(昨晩!)ので速攻ご紹介。 このツールは、Amazon EC2のAMIやVirtualBoxやVMware用のOSのイメージを一貫性のあるインターフェイスで簡単に作ってくれるものです!たとえばVagrantの場合は以前はPatrickさんが作成したVeeweeを使うことが定番だったのですが、今後はそれに変わるものになってくるかもしれません。 (現時点はまだバージョン0.1なのでこれからどんどん良くなると思います!) インストールhttp://www.packer.io/downloads.html からビルド済みのファイルを入手します。もしくは自分でビルドすることも可能です(ビルドにはgoなどのツールが必要です)。 ファイルはzip

    速報 Packerでさまざまな仮想マシンのテンプレートを作成する
  • 【書評】手動デプロイからの卒業指南書「継続的デリバリー」

    継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化著者/訳者:David Farley、Jez Humble、和智 右桂、高木 正弘出版社:KADOKAWA/アスキー・メディアワークス発売日:2012-03-14大型:544ページISBN-13:9784048707879ASIN:4048707876 レビューに参加させていただいた縁でアスキー・メディアワークス社様より献いただきました。和智さん、高木さんの黄金コンビによる翻訳です。 デプロイ自動化に関する話を網羅的に扱ったはこれがはじめてでしょう。 上級技術者向けと書かれているように内容は結構ハイレベルで、構成管理、CI、テスト戦略についての前提知識が求められるように思いますが、アジャイルプロジェクトの中で日々改善を繰り返している人たちにとっては理解しやすいのではないかと思います。 デプ

    【書評】手動デプロイからの卒業指南書「継続的デリバリー」
  • Vagrantで簡単仮想マシン構築

    VagrantはOracle VirtualBoxを利用した仮想マシンをコマンドラインから作成してくれるソフトウェアだ。 設定ファイルをRubyで書くことができ、Chef等とも連携できるので、開発環境をコマンドライン一発で作成することができる。更にはCapistranoと組み合わせてアプリケーションのデプロイも一括で行うことで完全自動でいつでもテスト環境をつくれたりもする。 仮想マシンを捨ててしまってもいつでも再構築できること、誰のところにでもすぐ同じ状態に展開できることは開発を進める上で非常にメリットがある。 以下ではまずはVagrantを利用した簡単な仮想マシン構築の手順を説明する(当に説明したい内容はもっと違う話なのだが追って別のエントリで書いていくことにする) Oracle VirtualBoxのインストールhttps://www.virtualbox.org/にアクセスし左ナビ

    Vagrantで簡単仮想マシン構築
  • Agile Day参加レポート(1/22 マイクロソフト)

    1/22(金)にマイクロソフト社で実施されたAgile Dayのセミナーに行ってきました。 いつものように知った顔が多かったりします。スーツ比率は半々くらいかな。年齢層は20代前半、40代後半以降は少ない感じで、会社の現場を回している中堅~マネージャクラスが多かったのではないかと思います。 3月と6月にまたAgile Dayが開催される予定とのことで、個人的にはお勧めイベントだと思うので、興味のある方は是非。 マイクロソフト長沢さんのセッション アジリティを向上させるためにマイクロソフトが行ったこと 主にマイクロソフトにおけるAgileへの取り組みや現場の回し方、体制等について事例を発表されました。 僕がAgileについて外部に研修するときに、Agileへの取り組みが進んでいる企業の一つとしてマイクロソフトをあげているけど、流石という感じ。 話の内容をいくつか抜粋。 Tech Fielde

    Agile Day参加レポート(1/22 マイクロソフト)
  • Agileでやってるけどデスマったw

    Agileでデスマになったのでそのログです。 この後同じことを繰り返すと馬鹿なので、まだデスマ中だけど、問題点と反省点を書いておこうと思う。 こういうのは渦中にやっておかないと終わった後だと「大変だけど終わって良かったね」で終わってしまいがちなんだよね。 これを読まれている方は反面教師にしてください。 契約と総生産量の関係性 期間と費用が決まっている場合、総生産量には当然上限がある。生産量はチームのベロシティが分かっていれば、ストーリーポイントに換算できるので、開発開始時点で、総生産可能ストーリーポイントについては明示すべきだった。土日出て頑張れ!とか残業して頑張れ!とかいうのはAgileを知らない証拠。 上記に関連して、プロダクトバックログにストーリーを追加することが出来るのは、プロダクトオーナーの権利なのだけれども、優先度高としてストーリーを追加したところで、バーター可能なストーリーが

    Agileでやってるけどデスマったw
    bojovs
    bojovs 2009/11/11
  • アジャイル開発の26のヒント

    アジャイル開発に取り組むチーム向けのコーチングや、技術顧問、認定スクラムマスター研修などの各種トレーニングを提供しています。ぜひお気軽にご相談ください(初回相談無料) 2つめの作業に入る前に1つめの作業を終わらせようビルドを壊してはいけないルーチンはユースケースの実装で必要になるまでは作ってはいけないユースケースの実装で必要になるまでは、メンバー変数を追加してはいけない意思決定することを恐れるな品質を向上させる方法を常に勉強しろ測定しろ、測定しろ、測定しろシステムではなく人を中心とした設計をしろ(最終的な目的はシステムを使って人々の仕事が成し遂げられるのを助けることだと理解しろ)テストは製品の一部だコードを書く前にテストを書け無駄を省けビルドが壊れたらすぐに対応する土壌をつくれ(壊れたビルドを放置するな)全てのチームメンバーは顧客の要求を理解する必要がある関連する事柄は一緒にしておけ(密接

    アジャイル開発の26のヒント
  • cakephp Schemaを使って初期データも突っ込む方法

    cakephpではSchema機能を使ってテーブルを作成することが出来る。 で、ついでにマスター系データもまとめて登録する方法が【CakePHP】お手軽便利なCakeSchemaに載っている。 ただ載っている方法には若干問題がある。 そもそもcakephpでは、テーブルを使わないモデルでは$useTable=falseに設定しないといけなくて、それ以外の場合は、モデルへのアクセス時にテーブルが存在しないとエラーが発生する。 従って、初期データを保存するためのモデルがアソシエーションが設定されているモデルだと、関連モデルのテーブルがまだ作成されていない場合にアクセスすると、その時点でエラーになってしまう。作成する順番だけを変えれば良いケースもあるだろうけど、相互参照しているようなモデルでは無理。 つまり、アソシエーションがある場合は先にテーブルを生成しなければならず、schema.phpのa

    cakephp Schemaを使って初期データも突っ込む方法
  • PHP (続)CakePHPでユニットテストする際に気をつけること

    前回の話はこちらを参照 前回以降もテストしているんだけど、「メモっとかないと忘れちゃうねー」的な話を以下列挙。 それにしても今回は真面目にテストしているぞ(笑 カバレージを測定したかったらテストモジュールの分割方法は、テスト対象モジュール1つにつきテストモジュール1つにするべきだ。  僕が作っているシステムは一般向け画面と管理者向け画面に分かれていて、管理者画面へのアクセスはadmin routingを使っているのだけれど、こういう場合のテストでもコントローラー単位、モデル単位で分割すべきで、利用シーンで分離すべきではない。但し受け入れテスト等、カバレージではなく業務要件への充足確認が中心になる場合は別だけど。 setUp、startTest、startCase等の初期化処理の違いを押さえておくこと。bakeでControllerのテストケースを作るとsetUp()が自動で作成されるが、こ

    PHP (続)CakePHPでユニットテストする際に気をつけること
  • PHP 最近やったプロジェクトのまとめ

    4月から開発してきた案件が終わるのでちょっくら振り返りするぞ。 アーキテクチャ CentOS5 (開発はXAMPP) PHP5.1.6 CakePHP1.2 MySQL5 案件規模 コントローラー13(AppController含む) モデル14 ビュー80 コンポーネント4 PHPのソースで約1万行。テストコードで4000行。開発者は僕だけ。 ツール系 XAMPP 開発環境 Subversion ソースコード管理、ドキュメント管理に最初から利用。接続にはTortoiseSVNを利用。 Trac 課題管理、バグ管理、要件管理に利用 A5:SQL Mk-2 データベース関連の作業に利用。 Eclipse PHP開発用のIDE。Pleiadesを利用 Poedit i18nの言語ファイルの編集用 Lingoes 無償の辞書ツール。モジュール名や関数の命名に利用。 SimpleTest 

    PHP 最近やったプロジェクトのまとめ
  • CakePHPでコードカバレージを測定する

    タイトルに深い意味は無いんだけど、CakePHPSimpleTestでコードカバレージを真面目に取得してみたので、そのメモとか。 使っている環境 XAMPP1.7.0 PHP5.2.8 MySQL 5.1.30 Apache 2.2.10 Xdebugの入手 このバージョンのXAMPPに含まれているXdebug2.0.3ではカバレージが取得できず、Apacheごと死んでしまう問題があるので、Xdebug2.0.0を利用する。 http://www.xdebug.org/download.phpにアクセスして、環境にあったモジュールを取得する。 僕の環境の場合は、XAMPPのPHP5.2.8だから、図の赤枠で囲んだリンクをクリックしてファイルを保存する。 phpxdebug-2.0.0-5.2.2.dllをphpxdebug.dllにリネームしてphp\ext\の中に上書き保存する。 Xd

    CakePHPでコードカバレージを測定する
  • CakePHPでユニットテストする際に気をつけること

    今やっている案件ではCakePHPを使ったアジャイル開発で、当然テストも自動化している。 テストの自動化を徹底的にやったので楽なんだけど、次回の案件のためにどういう観点でテストを組んでおくと良いか、またどこに嵌りがあるかメモとして残しておく。 CakePHPに限らない話 テストしやすい実装にする。例えばメソッドに複数の異なる役割を持たせない。引数と戻り値が明確。適切な行数など MVCの複数レイヤーにまたがる処理を書かない。例えばコントローラの中でSQLじゃぶじゃぶ投げたり、バリデーションチェックをぐちゃぐちゃやったりしない 自動でテスト実行できる仕掛け作り。例えばPHPならphpUnderControl。JAVAならCruiseControlとかHudson。 基に返って、テストを先に書くという意識付け テストがいっぱいありすぎたら今度はテストのリファクタリング。似たようなテストがコピペ

    CakePHPでユニットテストする際に気をつけること