fixedpoint.jp - Roundup の設計




Roundup の設計

いわゆる Issue Tracker アプリケーションの1つである Roundup は、Ka-Ping Yee 氏が Software Carpentry の "Track" デザインコンペで優勝した設計を基にしています。

このコンペは既存のオープンソース Track アプリケーションより使いやすい設計を目指して行われました。主催者が集めた「提案された要求」が過去のページに記載されています(以下抄訳):

  1. ユーザーがどれだけ簡単にそのツールのワークフローの制約(例えば、課題の状態の集合やそれらの状態間の遷移を決める規則)を構成できるか?
  2. ユーザー and/or 管理者がどのようにしてワークフローの規則やその他のシステムの操作の側面(例えば状態遷移、システム依存の形式間の翻訳)をデバグするか?
  3. 割り当てられた and/or 任せられた課題に対応するための責任をどうするか?
  4. ユーザーはどのようにして項目を分割したり(例えば、1つの項目が実際には2つの別々の項目を記述しているとき)、項目を結合したり(例えば、複数の貢献者が同じ項目を提出したとき)できるか?
  5. セキュリティはどのように管理されているか? 例えば、ある会社がいくつかの課題は従業員のみに見えるようにし、他の課題は顧客、または一般に見えるようにどのようにして保証するか? 安全な接続プロトコル(例えば SSH や secure HTTP)はサポートされているか?
  6. どのようにして古い議論または課題は記録され、索引が付けられ、そして検索されるか? いつ、またどのようにしてシステム and/or そのユーザーは古い話題 or 課題を再提起する提出 or 議論を特定するか?
  7. どのようにして課題および課題の状態の変更を、(ソースコードをチェックイン/チェックアウトする、または外部から見える Web ページに内容の修正をほどこす、といった)他のツールの利用に結びつけるか? どのようにしてシステムは外部操作が行われたかどうかを追跡するか?
  8. システムは単なる 7-bit ASCII 以外の、non-Latin Alphabet、画像、ソースの圧縮されたアーカイブなどを含む内容をサポートするか?
  9. ユーザーおよび管理者は項目の現在の状態やワークフローの規則をグラフィカルなインターフェースを通じて調べたり修正したりできるか?
  10. どのようにしてシステム依存の形式の翻訳(例えば、Windows と Unix との間の CR/LF 変換)を取り扱うか?
  11. ユーザーは項目についての知的な検索、つまり課題の本体内でキーワードを検索するよりも洗練されたものを行うことができるか?
  12. どのようにしてユーザーおよび管理者は(クローズされた課題が再オープンされた頻度、といった)統計情報を集めるか?

また、Roundup の設計についてのドキュメントの中で面白いと思ったのは、(表現 "." によって)特別な日付「right now」を定義している点です。


© 2006,2007 Takeshi Abe