開発ツール

ここではプロジェクトで効率的に開発を進めるための便利なツールについて紹介します。

ここで紹介するのは主に「チケット駆動開発」とよばれるプログラム開発手法のツール群です。チケット駆動開発とは、作業をチケットと呼ばれる小さな単位のタスクに分割し、管理する手法です。チケット駆動開発は、細かな修正作業の多いアジャイル開発と親和性が高く、そしてRubyやRuby on Railsでの開発もアジャイル開発に適しています。

 

以下に本サイトで紹介する開発ツールの概要を説明します。各ツールの使い方の詳細については、リンク先を参照してください。

 

バージョン管理システム

バージョン管理システムとは、ソースコードの作成日時、変更日時、変更点などの履歴を保管するシステムです。過去の変更内容の確認、変更前のソースへの復元などもできます。バージョン管理システムでは複数人で協同してソースファイルを作成することを前提としているので、各ファイルの最新ソースの取得や、同一ファイルに対する変更の競合の検知も行うことができます。本サイトではバージョン管理システムとして、代表的なツールであるSubversionGitを取り上げ、インストール方法や使い方等をこちらのページで紹介します。チケット駆動開発では、バージョン管理システムへのコミット(ソースコードを登録すること)は必ずチケットに関連付けて、成果物の更新と作業を結び付けておくことを推奨しています。

 

バグ/課題管理システム

バグ/課題管理システムとは、プログラムの「バグ」や、仕様の追加・変更要望などの「課題」を"チケット"として登録し、バグや課題の修正・対応状況を管理するシステムです。これによってバグや課題の全体像を把握することができます。またチケットの消化状況によってプロジェクトの進捗度がプロジェクト内で共有でき、作業漏れを防ぐことができます。チケット駆動開発では、チケットをプロジェクトの情報の中心にし、チケットの消化度合いで作業の管理と視える化を実現します。そして「チケットなしでのコミットは禁止」というルールのもと実践します。本サイトでは、代表的なツールであるRedmineのインストール方法や使い方等をこちらのページで紹介します。

 

継続的インテグレーションツール

継続的インテグレーションツールとは、バージョン管理システムにある最新ソースを定期的に取得(チェックアウト)してテストを実行し、その結果を利用しやすい形で出力するものです。このような方法によって、エラーをできるだけ早い段階で検出し、結合時の問題を減らすことができます。本サイトでは、継続的インテグレーションのツールとしてJenkinsを取り上げ、インストール方法や使い方等をこちらのページで紹介します。

 

レグレッションテストツール

プログラムを修正・変更した場合は、修正前の他の機能が動作することも確認する必要があります。本サイトではブラウザを操作してWebアプリの動作を確認するツールとしてSeleniumを取り上げます。Seleniumではブラウザ上でのマウス操作やフォームへの文字列入力、文字列が存在するかのチェックなどを自動的に行います。これによって、システム全体のチェック作業に立ち返って(回帰して)コード改変の影響を確認することができます。インストール方法や使い方はこちらをご覧ください。

 

自動デプロイツール

開発したアプリケーションのステージング環境や本番環境へのデプロイ作業(ソースのインストールまたは最新ソースへの更新や、サーバの再起動など)は、サーバが少数ですと手動でも可能ですが、サーバ台数が多いとそれが煩雑になり作業ミスが発生しかねません。このような問題を解決するツールとしてCapistranoがあります。Capistranoでは複数サーバに対する処理を一回のコマンドで実行できるため、運用を効率化することができます。