2013年06月02日

ユーザーに優しい設計書を書く方法

只今、「大規模プロジェクトをまとめる方法」に続くレポート第2弾を作成してます。
今回のテーマは「ユーザーに優しい設計書を書く方法」です。多分タイトルだけではあまりピンとこないと思いますので、ざっと概要をご説明しますと、顧客(エンドユーザー)からシステム開発を依頼されてまず行うのは要件定義ですが、要件的は顧客の要望を聞くのが目的ですので、基本的に顧客⇒開発者の一方通行の資料になります。
そのあとに、外部設計(基本設計とも言う)を行うのですが、外部設計では要件定義をもとに、システム化する際に必要な機能、条件、制限事項等をまとめて顧客に定義して、顧客からそのフィートバックを受けてさらに修正していくという顧客と開発者が双方向でやり取りする資料になります。
今回のレポートのテーマにしている「ユーザーに優しい設計書を書く方法」では、この外部設計に重点を置いて書いています。
自分は、仕事で他人が書いた設計書を数多く見てきていますが、設計書というものはシステム開発をやっているプロが見ても基本的に分かりにくいものです。完全に理解するには2度3度と読み返して、大量の参照資料をあちこち見て回る必要があります。
これを顧客に渡して本当に理解できるのでしょうか?

答えは考えるまでもなく"NO"です。

設計書は分かりにくいものなのだから、顧客に理解してもらえなくてもいいと思っているかもしれませんが、それは間違いです。
ユーザーに優しい設計書を書くことで、より多くのフィードバックを受けることができて、誤解や間違いを減らし、顧客から高い満足度を得ることができます。
また、顧客に仕様を理解してもらうことで、システムの都合上どうしても発生しまう制限事項などもスムーズに了承してもらえるようになります。

自分は、このユーザーに優しい設計書を書くことをあまり意識していなかったために痛い目に合った経験があります。
それは、長い期間をかけて開発をしてきたシステムが、ユーザーテストの段階になって、大量の仕様の不具合を指摘され、結局外部設計からやり直し、顧客に多大な迷惑をかけてしまったということです。
実は、外部設計書は全て顧客とレビューして仕様の確認をしたはずなのですが、顧客に完全には理解してもらえていなくて、外部設計書を作り直して再度確認していくと誤解や間違いだらけででした。

その経験を踏まえ、ユーザーに優しい設計書を書く事の重要性と、どのように設計書を書けばユーザーに誤解なく理解してもらえるかを学びました。
早くレポートを仕上げてまずは自社向けに公開したいのですが、深夜まで残業して、休日出勤もしている中、業務時間外にコツコツと作っているのでそろそろ限界を感じています。
みんには、このレポートを役立てて自分のようなドジを踏まないようにしてほしいと願っています。



あと、最近ご無沙汰している「Master Document」ですが、こちらは一向に進んでいません。
設計から開発まで、一貫して管理できる総合パッケージツールとして現在誠意開発中でありますが、やりたいことが盛りだくさんで、なにから手を付けていいやら...
とりあえず今は、コアとなるドキュメント共有ツールを作成しています。このツールを使って各設計書間や、工程間のドキュメントを統合管理して常に最新のデータを参照できるようにします。
設計書は、仕様変更や、不具合などで、常に変化します。その変更を放置しておくとリカバリに多大な工数が必要になってしまいます。
そこで、このドキュメント共有ツールで常に同期をとって、変更をすぐに取り込めるようにするのが狙いです。
「Master Document」は、このような設計の支援ツールと、設計書のテンプレート、ならびに、プログラムの自動生成機能を掛け合わせた統合パッケージとして開発しています。
完成時期は多分5年後ぐらい...です。



とりあえず、ロゴだけは立派なものが出来ています。わーい(嬉しい顔)
posted by j.shiozaki at 19:08| Comment(0) | TrackBack(0) | マスタードキュメント

2013年04月21日

大規模プロジェクトをまとめる方法

今、仕事で200人を超える開発者が集まって大規模なシステム開発を行っています。規模が大きいとちょっとしたことでも大きな問題になりなかなか作業がはかどりません。
今までこんな大きなプロジェクトのかかわったことがなかったのでいい経験になります。
そこで、今後のために大規模プロジェクトにおける問題点と対策についてレポートをまとめることにしました。書きたいネタが沢山ありすぎてまとめるのにちょっと苦労しています。
あと、現在取り組んでいる MasterDocument とも深く関係しているので完成したら MastarDocument とからめてホームページにアップするつもりです。



大規模プロジェクトにおいて自分がウィークポイントと考える「統一化」「オフショア開発」「テスト」「タスク管理」の4つの観点を中心にまとめています。


統一化を考える上で必要な要素をまとめた図です。小規模な開発では設計書だけで閉じれることも大規模になると設計者がたくさんいるのでさまざまな連携が必要になります。


今月中に完成させたいと思っていますが、仕事も忙しいので大変です。
posted by j.shiozaki at 11:17| Comment(1) | TrackBack(0) | マスタードキュメント

2012年09月23日

マスタードキュメント 第2回 画面レイアウト

マスタードキュメント第2回 は画面レイアウトについて説明します。

私の場合はアプリケーションを設計するにはまず画面レイアウトから始めます。場合によってはデータベースから設計することもありますが、ほとんどの場合画面レイアウトとデータベースは並行して設計します。
ユーザーにアプリケーションの説明を行う時にも視覚的にわかって説明しやすい画面レイアウトがメインになるので画面レイアウトには手を抜けません。

そんな画面レイアウトですが、当然アプリケーションがまだできていない状態で画面を設計するので、実際作成されたアプリケーションに近い画面レイアウトを作成するには処理を実装していない「張りぼて」を作成する必要があります。しかしいくら処理を実装していない「張りぼて」といってもそれなりと工数が必要です。「張りぼて」をプログラム工程で使えるように構造化まで考えて作ったりすると画面設計どころではなくなってしまいます。

そこで「マスタードキュメント」では、実際に画面を作成したのと同等のクオリティを持った画面レイアウトを作成する手法を提供しています。
使用するツールは Excel で、画面レイアウトで使用するオブジェクトを全て図形オブジェクト化してコピー&ペーストして作成します。
基本は機能に合わせて図形オブジェクトをコピー&ペーストして配置して行くだけなので、図形オブジェクトのレイアウト方法や、機能の割り当てを規約化して明確化しておけば設計者による差異を抑えてクオリティの高い画面レイアウトを作成することが可能になります。



このようにして完成した画面レイアウトを基本設計書に張り付けて必要な項目をまとめて行きます。


posted by j.shiozaki at 17:58| Comment(0) | TrackBack(0) | マスタードキュメント

2012年09月17日

マスタードキュメント 第1回「マスタードキュメント」とはなに?

これから私が考案して行こうとしている「マスタードキュメント」についてブログで数回に渡って説明して行きたいと思います。



第1回「マスタードキュメント」とはなに?

「マスタードキュメント」とは、システム開発において「基本設計」⇒「詳細設計」⇒「製造」⇒「テスト」とウォーターフォール・モデルによって消化されていく各工程において、必ず発生する戻り作業を効率的に行うために各工程から直接リンクする統括的なドキュメントを「マスタードキュメント」と言います。

<マスタードキュメントを利用する利点>
1.全ての工程で必要な項目を1つの文書で管理することで文書の統一が図れる
2.マスタードキュメントでバージョン管理することによりフィードバック作業の効率的に行える。
3.XML文書化する事により、プログラムへ容易に取り込むことが可能。
4.設計書のフォーマットに依存しない汎用性の高さ
5.エクセルを使用することによりマスタードキュメントの拡張性を確保

具体的な例をあげると、製造工程において設計書のバグを発見したとします。通常は「類似バグの調査」⇒「詳細設計書の修正」⇒「基本設計書の修正」となるのですが、「類似バグの調査」においては全ての設計書を開いて非効率的な作業をひたすら繰り返すといったことをよくやっていると思いますが、「マスタードキュメント」を使用すると「マスタードキュメントの修正」⇒「類似バグの特定」⇒「詳細設計書の修正」⇒「基本設計書の修正」となります。「マスタードキュメント」で統括的に管理することにより、発生したバグの類似点を即座に特定することが可能となり無駄な調査作業が不要になります。



「マスタードキュメント」はエクセルで作成しています。エクセルで作成することで項目単位でまとめ安く、マクロを利用した自動化も可能です。
今はまだやっと定義書がまとまった段階でやらなければいけいないことが山積みですが良いものに仕上げていきたいと思います。

posted by j.shiozaki at 18:21| Comment(0) | TrackBack(0) | マスタードキュメント