PLAINセンターニュース第167号
Page 2

DARTS と UMS で目指したこと− PLAIN センターでの 2年半を振り返って

小林 佑介
株式会社セック


  私が PLAIN センターのソフトウェア開発業務を担当するようになったのは 2005 年の初めの頃であった。以来、約 2年半にわたり、主に天文データベース「DARTS」、テキストデータやバイナリデータの構造定義とその処理系の開発を行う「UMS (Universal Mapping Schema)」、という二つのプロジェクトに携わってきた。本文では、これら二つのプロジェクトで何を目指し、どのようなことに意識して取り組んできたのかについて振り返ってみたい。

 DARTS と UMS のどちらもが共通して目指しているテーマがある。それは「どうすれば良いソフトウェアを簡単に作れるか」ということだ。これを実現するために、両プロジェクトでは、PLAIN センターのスタッフの方と協力し「設計情報を一元化する」仕組み作りに取り組んでいる。

 一般のソフトウェア開発は、ソフトウェアに対する要求事項があり、要求事項を実現するための設計情報をまとめ、設計情報に従ってプログラムを作成する、という一連の流れで進められる。これらの各ステップの間では、要求事項から設計情報に、設計情報からプログラムに、という具合に人手による変換作業が行われる。DARTS や UMS では、特に設計情報からプログラムへの変換において混入されるエラー(例えば単純な転記ミスやコミュニケーションロスによる実装漏れ等)を極力排除することを目指している。具体的には、設計情報をある決まった形式に一元的にまとめ、設計情報から必要な情報を抽出してプログラムを生成したり、実行時に設計情報を読み込んで動作するプログラムを提供したり・・・というような、人手による変換作業を軽減する仕組みの整備を進めている。

 実際に、DARTS では Web データベースの開発に利用可能な仕組みとして「Tsunagi」フレームワークを作成し、「すざく」「あかり」「ひので」各衛星向けの DARTS の開発に適用した。また、UMS でも人工衛星搭載ソフトウェアの開発に適用するための仕組み作りが進行中である。

 この二つのプロジェクトを進めていくにあたり、関係者間で意識して取り組んだことがあった。そのひとつが「コミュニケーション」である。ソフトウェア開発では、関係者間の意思疎通が不十分なために、依頼側の期待に反したソフトウェア製品が作られてしまうことがある。両プロジェクトとも、関係者間のコミュニケーションを重視し、こうした齟齬を発生させないように努めてきた。例えば、関係者が共同で作業する日を定期的に設けることで、各々の理解に誤りがないかどうかや、作業状況や課題について、関係者同士がフェイス・トゥ・フェイスで確認できる機会を増やし、情報共有の促進をはかった。また、2〜3 週間のサイクルに沿って細かく成果を確認していくアジャイルソフトウェア開発の手法を取り入れ、何か課題が発生した際に、その重要度や優先度を判断し、必要であれば作業順序を入れ替える等の柔軟な対応が可能な進め方を採用した。こうした進め方は、DARTS や UMS のように、ソフトウェアの仕様や設計を徐々に具体化していくような開発には有効であり、より良い仕様や設計をまとめることができた一因であったと思う。

 一方で、課題や反省点がゼロであった訳ではなく、今後はこれまでの開発の良いところは引き継ぎつつも、これらの改善も必要である。例えば、反省点のひとつとして文書化への取り組みがやや不十分であったことがあげられる。フェイス・トゥ・フェイスのコミュニケーションを重視するとは言え、情報を永続的に引き継いでいくためにはその情報を文書として残すことも重要である。現在は、両プロジェクトともバグトラッキングシステムを利用した新たな情報共有に取り組んでいるところである。

 意識して取り組んだことのもうひとつが「ユーザの視点に立った開発」である。DARTS と UMS に共通するテーマとして「どうすれば良いソフトウェアを簡単に作れるか」をあげたが、では「良いソフトウェア」とはどのようなものであろうか。様々な定義があると思われるが、DARTS や UMS の開発を通じて思うのは「ユーザにとって使い易いソフトウェア」である。ソフトウェアを実際に使用するのはユーザである。作成されたソフトウェアが最新技術の結晶であったとしても、難解なアルゴリズムを実装したものであっても、それがユーザにとって使い易く、それを使用することでユーザにメリットを与えられるものでなければ意味がない。そのために、両プロジェクトとも、ユーザの視点でソフトウェアがどう使われるのかを分析し、それを実現するための機能を仕上げていく方針とした。

 また、ユーザへのインタビューや勉強会、意見交換会を開催して具体的な要望や潜在ニーズを引き出し、開発項目にフィードバックする活動も行った。これらを通じて得られた意見は、開発者の視点だけでは得られない、いずれも貴重なものであった。こうした活動は今後も継続されていくべきであろう。ソフトウェアは一度作ったら終わりというものではなく、完成後もユーザからの様々な意見や時代の変化に合わせて継続的に改善させていくことで、真に「良いソフトウェア」として進化していくものと考えるからである。

 過去2年半を振り返りながら、DARTS や UMS で目指したテーマや実際に取り組んだこと、そして得られた成果や残された課題についてまとめてきた。私はこの 9月末で PLAIN センターのソフトウェア開発担当を離れることになるが、多くの方の協力のもと、これらのプロジェクトに携わってこれたことを大変嬉しく思う。

 成功や失敗、様々な経験を経て思うことは、ソフトウェア開発とはとても人間くさい仕事であるということだ。書き方を覚えればプログラムを書くことはできるが、それだけでは十分ではない。多くの人と関わり合いながら、様々な意見や要望をまとめあげ、それらを具体化できなければ、真に「良いソフトウェア」は作れない。この 2年半に実現してきたことも、決して自分一人のものではなく、多くの方との議論を経て生まれたアイディアの結晶である。こうしたアイディアをソフトウェアとして具体化することが、私たちエンジニアの使命であり、その使命を果たすための努力をこれからも続けていきたいと思う。

 最後に、この 2年半の間、PLAIN センターのスタッフの皆様をはじめとする多くの方々に大変お世話になった。これまで重ねてきた議論の数々、頂いた言葉のひとつひとつは、どれもかけがえのないものであり、私自身を成長させてくれる糧となった。この場を借りて深く感謝を申し上げたい。

 ありがとうございました。

このページの先頭へ



情報通信技術を宇宙科学にどう活用するか (番外編)
ペタスケールコンピュータをどう利用するか (その1) へ

宇宙研計算機、ネットワークに関するお知らせ へ


( 548kb/ 4pages)

Next Issue
Previous Issue
Backnumber
Author Index
Mail to PLAINnewsPLAINnews HOME