タグ

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

  • Vagrantで簡単仮想マシン構築

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

    Vagrantで簡単仮想マシン構築
  • 資料公開 Scrumの概要 (2013年の開発トレンド先取りセミナー)

    2013年2月1日に日マイクロソフトさんで行われた「2013年の開発トレンド先取りセミナー」で、Scrumの概要について話をしました。その際の資料を公開しておきます。あんまりいつもと代わり映えしない資料ですが、アタマの方に大事なことを書いておいたのでそこだけはチェックしておいてください。 まぁ正直なところ、Scrumが開発トレンドを先取りしているかどうかは微妙だと思ったのですが、今日ご参加頂いた方の中でアジャイル開発に取り組まれている方は数名しかいなかったので、日だとまだまだこれからなのかなぁ。 個人的には、アジャイル開発、継続的デリバリー、DevOpsあたりは日で早く当たり前になってくれるといいなぁと思っています。 なお、DevOpsについては、2013年2月号の日経SYSTEMSにDevOpsでよく使うツール群の話を書きましたので、ご参照いただければ幸いです。他にも各社のDevO

    資料公開 Scrumの概要 (2013年の開発トレンド先取りセミナー)
  • 資料公開 Agile/Scrum基礎

    2012年も沢山の組織や会社さんにお声がけをいただき、AgileやScrumについて基礎を習得していただくための研修を実施させていただきました。 研修用の資料は随時加筆修正しているのですが、来年からは新しいコンテンツを使う予定ですので、今年主に使っていた研修用のスライドを公開します。200ページ程ある巨大な資料で、研修では一日かけて説明している内容です(ワークショップを研修時間の半分ちかくおこなっています)。個人や組織内での学習のためにご利用ください(お約束ですが営利目的では使わないでくださいね!)。 今年研修で主にやったワークショップは、紙飛行機ゲーム、マシュマロチャレンジ、自己組織化ゲーム、マネージャー・ワーカーゲーム、ピンポン玉ゲーム、プロダクトバックログ作成、プランニングポーカー、ボールゲーム、マルチタスク適性診断あたりだったのですが、来年用には新しいネタをいくつか仕込んでいますの

    資料公開 Agile/Scrum基礎
  • 大きなリリースの際にチェックすべき34のこと

    以前に作っておいた大きめなリリースをする際にチェックしておくべきことのリストが役に立ちそうなので公開しておきます。 僕の場合は普段はワンクリックデプロイが多いんだけど、かなり大掛かりな変更をするケースが年に数回あったりするので、その際にこういうリストを使ってリリース計画をチェックしています。(もちろん大掛かりなリリースでもワンクリックでできるのに越したことはないし、そもそもビッグバンリリースにならないようにできるだけ小さい単位で頻繁にリリースできるに越したこともない) 体制当日の体制は決まっているか夜間立会いの場合、日中の営業時間の対応体制は決まっているか翌営業日以降の体制は決まっているか連絡担当と作業担当は分離されているか作業担当はペア作業になっているか。作業者と確認者を定めているか顧客の連絡先を抑えているか顧客の連絡順番を抑えているか、お客様の当日の所在を抑えているか顧客への連絡タイミ

    大きなリリースの際にチェックすべき34のこと
    yterazono
    yterazono 2012/12/12
  • より良いテスト駆動開発を行うためのチートシートの紹介

    みなさんこんにちは。@ryuzeeです。 planetgeek.chというサイトでUrs Enzler氏がTDDのチートシートを公開していたのでご紹介します。 Clean Code and Clean TDD Cheat Sheets (PDFファイルでダウンロード可能です) 以下で、チートシート内の一部を意訳にてご紹介しましょう。 Unit Test Smellsテストが何もテストしていない一見するとテストが有効に機能しているように見えるが、実はテスト対象をテストしていない テストに過度なテスト準備が必要とされるテストが環境をセットアップするのに長いコードを必要としている。こういうノイズがテストが当にテストしたいのが何なのか?ということを分かりにくくする。 大きすぎるテスト有用だが大きすぎるテスト。たぶんテストが1つではなく複数の機能をチェックしているか、テストが1つ以上のことをやろう

    より良いテスト駆動開発を行うためのチートシートの紹介
  • Jenkinsでビルド・パイプラインを作る

    アジャイル開発に取り組むチーム向けのコーチングや、技術顧問、認定スクラムマスター研修などの各種トレーニングを提供しています。ぜひお気軽にご相談ください(初回相談無料) Jenkinsのプラグインでビルド・パイプラインを作ることができるので紹介。 #12月20日のワンクリックデプロイ勉強会の発表のネタバレっぽいのですが。 ビルド・パイプラインとはビルド・パイプラインとは、継続インテグレーションのプラクティスの1つで、テスト等を複数の単位に分割し、順番に流していくものである。一般的には継続的インテグレーションを利用していれば、SCMにソースコードをコミットした段階ですぐにユニットテストを走らせ、以降に、静的解析や結合テスト、受け入れテスト、ステージング環境へのデプロイ、番環境へのデプロイという形で進んでいくことになり、その単位でパイプライン要素を分ける。 当然パイプラインの途中で試験に不合格

    Jenkinsでビルド・パイプラインを作る
  • CakePHP2アプリケーションをCapistranoでデプロイする

    アプリケーションのデプロイを自動化すべきなのは言うまでもないことです。 一応手動でデプロイを行う場合の問題点について整理しておくと以下になります。 プロジェクトの期間中そして運用に入ってからも何度も手でデプロイするということはとてつもなく多くの時間を手作業に費やすことになるデプロイ先の環境の数が多くなればなるほど作業の時間も増える手作業で作業すると間違えやすい。特に手順が複雑だったり環境が多かったりすると確率は飛躍的にあがるもしデプロイしたアプリケーションに問題があってすぐに戻さなければならない場合に多くの時間がかかる。場合によってはビジネス上の機会損失に繋がる来は価値を生むフィーチャーを実装することに時間をかけたいはずが、こういうことをやっているとどんどん時間がなくなっていきます。また手作業のリスクや消費される時間を恐れてデプロイの回数を減らしてしまうのは、ビジネス側からみると納得いか

    CakePHP2アプリケーションをCapistranoでデプロイする
  • 継続的インテグレーションアンチパターン

    みなさんこんにちは。@ryuzeeです。 なんとなく書きためておいた継続的インテグレーションのアンチパターンをいくつか紹介します(結構ラフなメモ書き)。 頻繁にSCMにコミットしないテストコードを書かないテストコードと製品コードを同時にコミットしない定時ビルドのみでコミットビルドがない・夜間ビルドしかない帰り際にコミットしてそのままCIの結果を見ずに帰るCIでテストを通すために手作業の準備が必要メインラインのみで大きなブランチをCI対象にしていない様々な種類のテストをまとめて行っているビルドの失敗に気付かないビルドに失敗しても放置しているビルドの失敗に気づいても、修正コード以外のコードをコミットする何も変更していないのにビルドが落ちたり落ちなかったりする頻繁にビルドが失敗しているので、失敗するのが普通だと思うCIからの通知メッセージが大量すぎるCIが落ちても何も通知しないCIサーバのリソー

    継続的インテグレーションアンチパターン
    yterazono
    yterazono 2012/11/05
  • 【資料公開】CakePHP+Jenkinsによるアジャイル開発

    みなさんこんにちは。@ryuzeeです。 2012年11月3日,4日の二日間にかけて行われたPHPMatsuri 2012で、登壇させていただきました。 その際の資料を公開しておきます。 内容は過去にやったワンクリックデプロイ勉強会の内容にCakePHPっぽい内容を追加した感じです。 大分前からこのあたりの話はしているのですが、まだまだデファクトスタンダードでどこの会社でもやっているという状況にはほど遠く、ようやく各社取り組み始めたところ、という感じな気がします(もちろん大分状況は変わってきた) 参加者の方に聞いたところ、環境構築含め自動化されているのは2名くらいでした。 せっかくフレームワークを使い倒して高速に開発できるようになっても、もっと他に高速化すべき箇所もあるし、そもそもその速度を継続できないと意味がない、いまそのあたりができていないならできるところから着実に改善していくといいん

    【資料公開】CakePHP+Jenkinsによるアジャイル開発
  • CakePHPのアプリのコーディング規約チェックを自動で行う方法

    みなさんこんにちは。@ryuzeeです。 PHPで書かれたソースコードがコーディング規約に準拠しているかどうか確認するには、PHP_CodeSnifferというツールを使うのはよくご存知だと思いますが、今回はCakePHPを使って書いたソースコードの規約をチェックする方法を紹介します。 なお、このような規約チェックはローカル環境で気が向いた時にやるだけではなく、継続的インテグレーションにも組み込んで実施することが望まれます。 PHP_CodeSnifferのインストール特にチャンネルの追加は必要ありません。 インストールが完了すると、phpcsコマンドがインストールされます。 また標準では、Squiz, PEAR, Zend, MySource, PSR1, PSR2 , PHPCS の7個の規約がインストールされます。このうちMySourceは自分でのカスタマイズ用です。 CakePHP

    CakePHPのアプリのコーディング規約チェックを自動で行う方法
  • 【資料公開】Doneの定義虎の巻

    10月28日に日オラクルさんで行われたスクラム道EXPOに登壇しましたので資料をさらしておきます。 登壇時間が20分ということで非常に駆け足でDoneの定義について話をしました。 大事だと思うことは最後にまとめておきましたが、これについて補足しておきます。 プロジェクト開始時点で決める完成の定義の内容によってプロジェクトの所要期間や見積りは影響を受けます。たとえばプロダクトバックログアイテムの完成の定義でテスト対象ブラウザを定義することを考えてください。Mac上のChromeだけでテストする場合と、IE、Firefox、Chrome、Safari、OperaでテストしてさらにWindows7Windows8とMacとUbuntuでテストする場合とでは、タスクの見積り時間も異なります。 必然的にスプリントで完了するプロダクトバックログアイテムの量も異なります。 この合意がないままに進める

    【資料公開】Doneの定義虎の巻
  • CentOS6にGitLabをインストールする方法

    GitLabgithubのクローンのようなもので、表に出せないけどgithubみたいなものが使いたいという場合に有効だろう。 ここではCentOS6 (x86_64)にインストールする手順を解説する。 yum用の追加レポジトリの設定CentOS6の標準レポジトリには存在しないパッケージが多数あるため、epelとremiを使用する。まだepelとremiを利用していない場合は、以下のように設定する。 rpm -Uvh http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/6/x86_64/epel-release-6-7.noarch.rpm rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm 必要なパッケージの導入CentOS6.2のrubyのバージョンはデフォルトで

    CentOS6にGitLabをインストールする方法
  • コマンドラインからDropboxを操作する方法 (+Jenkinsとの連携) | Ryuzee.com

    前回のエントリでは、ReVIEWとJenkinsを組み合わせてPDFを自動でビルドする方法について説明しました。今回は更に進んで、ビルドされたPDFをJenkinsサーバから自動でコマンドライン経由でDropboxに保存する方法について説明します。 なお、ここで説明する内容は別にJenkinsと連携しなくても使えます。 例えば、サーバのファイルを定期的にバックアップしたり、シェルスクリプトの中で呼び出したりといったことが可能です。 Dropbox API Commandの導入コマンドライン経由でDropboxを操作するためには、Dropbox API Commandと呼ばれるツールを使うのが簡単です。 githubで公開されており、ライセンスはMITライセンスです。 https://github.com/s-aska/dropbox-api-command インストールDropbox AP

    コマンドラインからDropboxを操作する方法 (+Jenkinsとの連携) | Ryuzee.com
  • ReVIEW + Jenkinsでドキュメントを常時ビルドする

    ReVIEWはマークアップ言語でソースを記述することで、html形式やPDF形式の綺麗な体裁の文書を作れるオープンソースのツールです。入手はhttp://github.com/kmuto/review から可能です。例えば = 章 == 節 === 項 * 箇条書き * 箇条書き のような書き方をするとhtmlであれば、それぞれh1〜h3に変換されたり、ulに変換されたりします。PDFの場合は予め規定された体裁に変換されます。 今回は、Windows Azure上の仮想マシン(Ubuntu12LTS)上で、このドキュメントを常時ビルドする方法を紹介します。 ReVIEWのインストールReVIEWは動作にrubyが必要です。また最新版はgithubにて提供されていますので、gitを導入しておきます。 sudo su apt-get install ruby apt-get install g

    ReVIEW + Jenkinsでドキュメントを常時ビルドする
  • 開発をより良くしたい人が読んでおくべき10冊

    アジャイル開発に取り組むチーム向けのコーチングや、技術顧問、認定スクラムマスター研修などの各種トレーニングを提供しています。ぜひお気軽にご相談ください(初回相談無料) アジャイルな開発の導入支援の現場や色々な勉強会でよく「どんなを読んだら良いですか」と聞かれたりします。 何のためにを読んで勉強するかは人それぞれですし、自分のおかれたコンテキストでどのが役にたつかは分からないですが、以下にあげたは個人的に強くオススメできるです。人に聞くのも大事だし自分で試行錯誤するのも大事だけど、を読んで体系的に学んだり先人の知恵を学ぶことは続けたほうが良い。 プロダクティブ・プログラマ -プログラマのための生産性向上術どうやったら自分自身の生産性を高くすることができるのか。PCの使いこなしから始まり、自動化やバージョン管理等にも触れている プロダクティブ・プログラマ -プログラマのための生産性

    開発をより良くしたい人が読んでおくべき10冊
  • 資料公開 アジャイル開発の勘所

    2012年10月5日に札幌で行われたJavaFestaに登壇しましたので資料を公開しておきます。 相変わらず絵ばかりなので、わかったようなわからないような感じですが、お役にたてば幸いです(内容は過去の総集編みたいな感じ) こんなに絵ばっかりにしている理由は、公演時間に収まるように話しながら内容を調節するためです(文字が多いと内容をSkipせざるを得ない場合にバレバレになる) セッションでいいたかったことは 自分たちのやり方は自分たちでもっとよくする、そういう取り組みが絶対必要 アジャイルも単なる手段。どうやって継続的に顧客に価値を届け続けられるか、を考える 技術の土台なくして継続的にはまわせない。Scrumでは技術プラクティスの定義はないけど、技術が不要とはヒトコトもいってない 現実的にはScrum+XPの組み合わせ。はじめてやるときはまずはテスト書くところから始めるといいかも 組織に障壁

    資料公開 アジャイル開発の勘所
  • 資料公開 ざっくりわかるScrum

    普段あまりシステム開発に携わっていない人やアジャイルな開発の経験がない人向けに色々資料を作って説明しているのですが、今回のモノは個人的に結構しっくり来ているので参考までに公開します(7月くらいから何回か使って検証しました)。 エレベーターピッチ並とはいきませんが、ページ数をかなり削っているので、5分くらいでScrumのおおよその雰囲気は分かるのではないかと思います。 ご意見や感想等がありましたらページ下部のMessageLeafからお知らせいただけるとありがたいです(僕個人にしか見えません)

    資料公開 ざっくりわかるScrum
  • スクラムに関する無料の日本語資料のまとめ | Ryuzee.com

    みなさんこんにちは。@ryuzeeです。 スクラムを学習するにあたって参考になる【無料】の資料を以下にあげておきます。 僕がコーチングする際は上2つの資料については事前に読んでもらった上で、トレーニングを実施したりしてます。 スクラムガイドスクラムの父であるジェフ・サザーランド氏とケン・シュエイバー氏が書いた公式のルールブック。 これを読まないでスクラムをやるのはマズイです。 http://www.scrumguides.org/日語版は、多くのの翻訳をされている角さんが訳されてます塹壕よりScrumとXP昨年開催したScrum Gathering Tokyoで基調講演をされたヘンリック・クニベルグ氏によるScrumとXPの実践事例。 どういう問題がおきてどう改善したかも分かる。 http://www.infoq.com/jp/minibooks/scrum-xp-from-the-t

    スクラムに関する無料の日本語資料のまとめ | Ryuzee.com
  • テスト自動化について5分で分かるまとめ

    アジャイル開発に取り組むチーム向けのコーチングや、技術顧問、認定スクラムマスター研修などの各種トレーニングを提供しています。ぜひお気軽にご相談ください(初回相談無料) みなさんこんにちは。@ryuzeeです。 テスト自動化について簡単に教えてほしいと言われることが多いので、以下にまとめました。 テスト自動化/テスト駆動開発についてXPのプラクティスの中で、最も単体で導入しやすいプラクティスの1つであるこのプラクティスのみで1冊のが書けるくらい奥が深い基的な方法失敗するテストを書くできる限り早く、テストがパスするような最小限のコード体を書くリファクタリングをする適用範囲通常では、独立性の高いクラスやファンクションへの適用が良いGUIや分散オブジェクト、自動生成されたコード、DBのスキーマに関するテストは導入が難しい既存システムにおいて、テストが準備されていない場合に、部分的に導入するの

    テスト自動化について5分で分かるまとめ
  • BehatとSeleniumを組み合わせ受け入れテストを自動化する

    みなさんこんにちは。@ryuzeeです。 Behatは良さそうなので引き続き検証しています。 今回は、BehatとSeleniumを組み合わせて、受け入れテスト型のテストを自動化してみたので、その方法について説明しましょう。 なお、前回の記事を読まれていない場合はまずそちらを参照してください。 PHPでBDD(Behavior Driven Development)する方法 Seleniumの課題僕が関わっている案件では受入テストを自動化しているケースももちろんあって、その際はPHPUnitとSeleniumを組み合わせています。 このテストには以下のような課題があります。 画面の操作をするphpコードが大量にあって、ソースを見ただけでは何をしているのか分かりにくいSeleniumは操作に画面の要素名利用するため、例えばサイトのデザインを大幅に変えたりすると、テストの中身も大幅に書き換えな

    BehatとSeleniumを組み合わせ受け入れテストを自動化する