ビギナーに伝えたいバグ管理ノウハウ 〜バグ管理の必要性〜

ソフトウェア開発に携わる人は必ず出会っているバグ。バグとはプログラムのソースコードの間違いや誤動作するコーディング上のミスのこと。設計工程で発生する仕様間違いなどもバグである。

 

このバグを効率よく管理してみんなが幸せになるためにどのような点を注意して日々の業務を進めるべきか、について考えてみる。

 

プログラマーのスキルによる成果物の品質

 

どこのチームや会社にもスーパーエンジニアと評されるスキルが高いエンジニアがいる、という話を聞く。
私の関わるプロジェクトでもあるエンジニアがいるというだけでチームにとって技術的な安心感であったり、品質面でも安心感を与えてくれることを実感している。

 

これは管理する側からみても同様に安心感を得られる場合が多い。

 

特に最近のソフトウェア開発は顧客から短納期・低予算が求められ、専門性の高いエンジニアに大きく依存しているプロジェクトばかりである。開発ではオープンソースソフトウェアやミドルウェア製品、フレームワーク、言語が多数存在しており、それらを「うまく組み合わせた総合的なソリューションを提供」する必要がある。

 

このような状況もあり、専門性の高いエンジニアに大きく依存しているプロジェクトが多いように思う。このようなプロジェクトでは経験に価値があり、技術全体を俯瞰して考えることができるエンジニアの付加価値が大きい。

 

このスキルは簡単に身につくものではないが物事の理由を考えながら高い意識で仕事することで養われていくと信じている。

 

スキルの高いエンジニアでは成果物の品質にも大きく影響し、バグの少ない、メンテナンスしやすいプログラムができる。

すべての開発をスーパーエンジニアに依頼することが理想だが、決められた予算とスケジュールを持つプロジェクトでは到底無理な話で、スキルがバラバラのチームで開発することになる。

 

スキルの異なるチームの生産性を上げるための話題や研究は考えられてきているが。。。ここではプログラマー、テスターが一番触れる機会の多いバグ管理の運用管理について書いていこうと思う。

 

バグ管理の必要性(メリット)

開発の現場でよく聞かれる管理方法として

  • Excelなどの表計算ソフトで管理
  • オープンソースのBTS
  • パッケージ製品

最近はTrac、Redmine、Mantis、BugzillaなどのBTSの利用が増えてきていると実感している。

世の中にはバグ管理だけでも多くのツールが存在しており、各製品には多くの特徴やバグ管理をサポートする機能が提供されている。これから数回に分けてビギナー向けバグ管理のノウハウをまとめていくがツールに依存した説明は避け、バグ管理の運用と考え方にフォーカスしようと思う。

バグ管理の必要性(メリット)について

 

1.バグが管理されデータベースが用意されることで、発生障害についてチーム内の意思疎通がスムーズになる

管理方法が統一されることで、電子メールによる共有や都度作成するレポートよりも正確に内容を伝えることが可能

2. DB化することで、バグの通番管理(追跡と参照)が自動化され、レポートのための分析や報告が提供できる

3. 開発チームは、プロジェクトチーム、マネージャ、顧客、ユーザのそれぞれにとって重要な観点から考え修正を進めることができる。(バグには優先順位が存在する)

優先度がないバグは「声が大きい人」の報告したバグほど早く修正されがちになる

4. 「バグの発見→レポート→担当者割当→解決」について、全てのライフサイクルを通じたバグ管理が出来る。

バグがどこかのライフサイクルに潜り込み、早期修正が必要なバグから注意がそれることがない。

5. 開発チームやプロジェクトチーム、テスターの全員が最新の状況を簡単に入手できる。解決したバグはナレッジとなる。

これらのバグ情報は、リリース製品に紛れ込み、サポート部隊のコストを上げる原因、売上の伸び悩み、使えないシステムという辛らつな評価につながる問題に対する対策が可能

 

チームにとってスキルや役割の違う人々がスムーズな意思の疎通を行うためにも、ベースとなる一元化されたバグ管理は必要である。

 

[ciklone]1.9 RELEASE – リリースノート –

1.9-RELEASE - リリースノート -

1.9-RELEASE - リリースノート -

ciklone version 1.9 リリースのお知らせです。
本日、ciklone のリリースを実施しました。ご利用のお客様は新しい機能を利用する事が出来ます。ぜひご利用下さい。

機能紹介

ご要望やバグ報告を頂きました皆様、まことにありがとうございます。
これからもどうぞよろしくお願いいたします。

今後もさらなる改善をおこなってまいります。
ご要望やご質問はこちらまでご連絡ください。

 

マルチリポジトリにWebDAVが利用可能

サイクロンのマルチリポジトリにWebDAVが利用可能になりました。

サイクロンのインシデント管理やチケット管理システムと連携するリポジトリサービスとして

  • Subversion
  • Git
  • Mercurial

が利用可能でした。ciklone version 1.9 から新たに「WebDAV」が利用可能になりました。

WebDAVとは…

クライアント(ウェブブラウザ)を使って、Webサーバ上のファイルやフォルダをコピー、移動、削除の操作を行うことが出来ます。Windowsのエクスプローラーを利用する事でローカルファイルを扱うようにファイル操作が可能です。

プロジェクトのファイル共有として、WebDAVが利用できることにより以下のメリットがあります。

開発チーム内のデザイナーや管理者

開発チーム内のデザイナー、管理者などの開発者以外のメンバーにとって、バージョン管理システム(Subversionクライアントなど)を利用する事は新たなツールの学習コストが必要となり、スムーズな導入の障害になっていました。この問題を解決するため、

  • バージョン管理するまでもないファイル群を共有する仕組み
  • プロジェクトで簡単にファイル共有する仕組み

WebDAVを利用する事で実現できます。

Windows/Macのファイルサーバの代替

開発を進めていくとき、多くの中間成果物やドキュメント、マニュアルなどのオフィスファイルが生成されます。サイクロンのリポジトリにWebDAVを利用する事で、

  • プロジェクトに関連するすべての情報を一元管理し、
  • ファイルサーバのように手軽にアクセス(ファイル操作)でき、
  • セキュアな情報共有が実現可能です。
  • ハードウェアを用意する必要がありません。
  • バックアップ・メンテナンスする必要がありません。

どのような開発チーム・メンバーにも簡単に使ってもらえる最適な開発プラットフォームを提供可能になりました。

ぜひ、サイクロンの新機能をご利用ください。

 

新規プロジェクト作成時に他プロジェクトの設定情報をコピーしてプロジェクト作成

サイクロンの新機能のご紹介です。

複数のプロジェクトを作成し、管理されている利用者様向けに「テンプレート・既存プロジェクトの設定をコピーして新規プロジェクト作成」のご紹介です。

プロジェクトを立ち上げてから最初に行う作業はサイクロンのシステム設定です。新規作成したときに設定するだけなのですが、毎回設定し直すのはとても不便です。設定項目だけみても

  • チケット分類
  • マイルストーン
  • 優先度
  • 解決方法
  • 重要度
  • 分類
  • バージョン
  • ワークフローの設定

など、会社やチームによってはプロジェクト毎に同じ作業をくり返すことになります。この同じ作業の繰り返しを楽な方法で実現する機能として、「設定済みのプロジェクトをコピー」を提供します。

プロジェクトのコピーでは以下の設定をコピーします。

  • チケットの属性(プロジェクト作成時に入力可能)
  • ワークフローの設定
  • チケットテンプレート
  • カスタムフィールド
  • 設定タブの詳細設定項目(trac.ini)

ぜひご活用下さい。

テンプレートからプロジェクト作成

テンプレートからプロジェクト作成

チケットのテンプレート(雛形)機能の説明

サイクロンの新機能「チケットのテンプレート」について説明します。

チケットのテンプレート機能は、チケットを新規作成するとき雛形となるテンプレート名を選択することで、チケットの詳細内容やチケットの属性に値を自動入力することが出来ます。これにより、開発者にとって有責な情報を報告してもらうためのバグ内容や手順等、必要な情報を報告者に通知することが出来ます。チケットのテンプレートを作成するときに参考になる考え方として、本ブログの「バグデータベースの効果と仕掛け」をご覧下さい。

サイクロンのチケットテンプレート管理の特徴

  • チケットのテンプレートをいくつでも作成することが可能
  • チケット分類に応じたテンプレートを作成可能
  • テンプレート毎にチケットの属性(分類、マイルストーン、重要度)が設定可能
  • テンプレートの編集、削除はプロジェクトの管理者のみ(権限が必要)

参考

Trac プラグイン:Trac Ticket Template Plugin

チケットのテンプレート機能

チケットのテンプレート機能

チケットのテンプレート管理

チケットのテンプレート管理

2012/04/16 Version 1.9 新プラン・新機能リリースのお知らせ

20120416

いつもtracpathをご利用頂き誠にありがとうございます。
本日、tracpathの新バージョンをリリースいたしました。
新機能追加、バグフィックスを実施しております。

ご要望やバグ報告を頂きました皆様、まことにありがとうございます。
これからもどうぞよろしくお願いいたします。
今後もさらなる改善をおこなってまいります。
ご要望やご質問はこちらまでご連絡ください。

OverlayViewPlugin – 添付ファイルを遷移しないでlightbox風にプレビューする

3月も終わりに近づきまだ肌寒さもあるものの陽射しは少しずつ春を感じさせるものになりつつありますね。

さて今回は「Trac で添付ファイルの中身を参照するのにいちいちページ遷移しないといけないのがめんどくさい」という話を聞いて、それを少しだけ解消するプラグインを作ってみたのでそれの紹介です。

インストール

1. easy_install でインストール

いきなりですが、さっそくインストールしましょう。easy_install に http://trac-hacks.org/svn/overlayviewplugin/0.12 を渡せばさくっとインストールできます。svn コマンドがない環境では、これではインストールできないと思います。その場合には手動でエクスポートを行い、エクスポートしたディレクトリを easy_install に渡すようにしてください。

C:>easy_install -Z http://trac-hacks.org/svn/overlayviewplugin/0.12
Downloading http://trac-hacks.org/svn/overlayviewplugin/0.12
Doing subversion checkout from http://trac-hacks.org/svn/overlayviewplugin/0.12 to c:\docume~1\admini~1.ope\locals~1\temp\easy_install-x_lmas\0.12
Processing 0.12
Running setup.py -q bdist_egg --dist-dir c:\docume~1\admini~1.ope\locals~1\temp\easy_install-x_lmas\0.12\egg-dist-tmp-ubt6k_
zip_safe flag not set; analyzing archive contents...
overlayview 0.12.0.1 is already the active version in easy-install.pth

Installed c:\traclight\python\lib\site-packages\overlayview-0.12.0.1-py2.6.egg
Processing dependencies for overlayview==0.12.0.1
Finished processing dependencies for overlayview==0.12.0.1

2. trac.ini でプラグインを有効にする

有効にしたい Trac プロジェクトの conf/trac.ini か inherit-file で共有している trac.ini でこのプラグインを有効にします。

# trac.ini
[components]
tracoverlayview.* = enabled

この後、Trac を動作させている Web サーバを再起動させます。

使ってみる


まずは、添付ファイルがあるチケットや Wiki ページへ行ってみましょう。そのページにある添付ファイル一覧からリンクをクリックすると、lightbox 風のビューでそのファイルを参照できるようになります。


また、画像以外の添付ファイルやタイムラインでの添付ファイルリンクでも同じように遷移せずにその場で参照できるようになります (ちょっと解りにくいですがロケーションバーの URL が /timeline です)。

こんな感じで添付ファイルの参照が少しだけ楽になるかと思います。こうしてほしいとか、ここおかしいんだけど、などありましたら trac-hacks のチケットかここのコメント欄にお願いします。それでは。

RSSリーダーを使ってプロジェクトの更新情報をチェック

こんにちは、サイクロンの便利な使い方をご紹介。
「RSSリーダー」を利用されていますか。ブログやニュースサイトで更新情報(RSS配信)を見たことがあると思います。RSSリーダーとは、ブログやニュースサイトで配信されているRSSを取得・購読するためのツールです。
RSS購読のためのツールはたくさんありますが、有名なところでは

メールやブラウザ型

  • Microsoft Office Outlook 2007
  • Thunderbird
  • Firefox
  • Opera
  • Becky

Webサービス

  • Google Reader
  • livedoor Reader

数多くのクライアント用アプリケーションが提供されているので自分にあったツールを選ぶことが出来ます。
ciklone(サイクロン)はこのRSS(フィード)を提供しています。以下のような特徴があります。

  • タイムライン、チケット詳細、レポート、カスタムクエリをRSS配信
  • プロジェクトの更新情報をすばやく確認
  • セキュアなアクセス(SSL)  ※アカウントのパスワードを変更した場合、RSSのURLもリセットされるため再設定が必要です。

多くのプロジェクトを管理していても、RSSリーダーを使ってプロジェクトの活動状況を素早く、簡単に確認することが出来ます。
ぜひ、この機能をご活用下さい。

 

“ciklone.com” メンテナンスのご案内(1/29)

いつもサイクロンをご利用頂きまして、誠にありがとうございます。

ciklone.com の計画メンテナンスを実施予定です。メンテナンス中は ciklone.com にアクセスすることはできませんのでご注意願います。

【実施予定日】: 1月29日(日) 22:00 – 01:00 (1月30日(月) -25:00)

【作業時間】: 約3時間を予定

【内容】: ciklone が利用している Amazon EC2 チューニングと サービスのチューニングを実施します。

【サービス】:メンテナンス実施中の約3時間はすべてのサービスにアクセスすることが出来ません。

 

今回のメンテナンスで ciklone のパフォーマンスを向上させるための作業を実施します。これまで以上に安定・高速なサービスのご提供が可能となります。 お客様にはご迷惑をおかけしますが、ご理解とご協力をお願いします。

メンテナンスに関するご質問は、こちらまでご連絡ください。

SAP:ソーシャルアプリ開発にクラウド(IaaS)を利用するメリット

「クラウドのメリットを一番享受できるのは、個人開発者、ソーシャルアプリ開発企業、IT系ベンチャー企業」

小さく・安く・始めて、成長に合わせてサービスレベルを向上させることが出来るクラウド・コンピューティングはそのような企業にとって大きなメリットがあると考えています。

クラウドは、開発環境、本番環境のインフラ、スケールアップ、運用負荷軽減を低リスクで担保できるサービスになっています。これからのアプリ開発でははじめるときにハードウェアのことをほとんど考えなくて良くなる、と言えます。

サービス提供者の役割によるメリットを簡単にまとめると、

経営者

  • システムの投資の無駄を排除 →「所有」から「利用」
  • 求めるサービス提供のためのハード購入費用がかからない
  • 素早いサービス立ち上げ

開発者

  • 開発環境の迅速な構築
  • スケールアップ・可用性向上
  • 本番リリースに向けたサーバ規模の設計を軽減
  • 負荷分散

運用者

  • 利用状況に応じた柔軟なリソース割当
  • システム運用負荷の軽減
  • ハード障害から解放(自前に比べて…

数年前まではデータセンターを借りて自前のハードを用意するか、ホスティングサービスを利用するかが一般的だったと思います。最近はクラウドを使うことで低コストでストレスなく(ハードの面倒を見る必要なく)始めることが出来る。スタートするときの敷居が低くなることはアプリケーションベンダーにとっては良いことです。
2,3年のスパンで見た場合、クラウドよりコスト面でメリットがあるサービスもありますがソーシャルアプリ・ソーシャルゲームに限ればベストなソリューションではないでしょうか。

新しいサービスをすばやく提供するために、その時、そのタイミングで最適なサービスを積極的に利用していきたいですね。