2013年10月15日火曜日

プログラムの基本的な作成方法(外部設計編)

週末に他の部署のNewFace君達に聞いてみたらがっくりだったので
プログラム(システム)の基本的な作成方法を記載しておく。

システムとはっ!






たとえ、技術的なことを記述しても所詮は最近のプログラム言語なんて
対話型の言語なんで、文章と同じように章立てして目次を書き、ソレに肉付けしていく方法です。



では話ばかりしていても実践にはなりませんので
友人にエクセルマクロの依頼を受けましたのでこんなVBAとともに送りたいと思います。


■依頼編
友人N:「やぎごん!エクセル得意?」
やぎごん:「んー。グラフとかは得意くないよ」

友人N:「なんか、指定された文字を一気に変換するエクセルシート作ってくんない?」
やぎごん:「ええよ」

↑こんな感じです。

システムの最初なんてだいたい口頭で話を聞きます。
それを折衝 (せっしょう)といいます。

新人のうちはやらないと思いますが、やりたいことを最初から紙に書く(設計書におこす)のはほとんどやりません。会議などでも議題はあってもそこからドンドン膨らませますよね?
私は割りとこの作業が好きです。

ココでのポイントは「できないこと」「やれるけど難しいこと」「できること」を分けることです。

「できないこと」はどうがんばっても出来ないのであきらめてもらうしかないことです。
>プログラムを掛けない人に書けといっても難しいですよね?無理ではないかもしれませんがあまり実現性を感じません。ただし、最初からあきらめてしまうのもいけないのでだいたいは「考えさせてください」とか「かえって上司と相談します」とかで逃げておくのが常套手段です(苦笑)


では「やれるけど難しいこと」はなんでしょうか?
ココでいうと「グラフなどの取り扱い」です。
苦手とか時間がかかるとか、はやりたいことの優先順位(プライオリティ)を聞いてからにしましょう。
コスト面や期限面で見合わない場合はココを切り捨てます。

最後に「出来ること」は、
気持ちよく答えましょう。ただし無理は禁物です。
最近話題のブラック企業などの温床になっているのは日本人の「断れない体質」にもあると思います。
時間や技術面など不安材料があったら上司や同僚などにきちんと相談することが大切です。

ちょっと前に「ほうれんそう(報告・連絡・相談)」は無用であるという記事を読みましたが、
そういう人はたいてい、報告が長い・・・

ので報告は簡潔にするのがお約束です。



では具体的に外部設計に入ります。



■外部設計編
やぎごん:「んじゃさ、具体的にどんなん?」
友人N:「あるセルの中に含まれている文字列を違う文字列に置換して別のセルに表示してほすぃ」


東京都を新宿区って代える感じ?






とこのエクセルを送ってみると

友人N:「あ、こんな感じこんな感じw」
やぎごん:「ちなみにこの変換したい文字列って1つだけ?」
友人N:「んにゃ」(否定の意)
やぎごん:「んじゃ何個位よ?」
友人N:「わかんない。何個かは固定にしないとだめ?」
やぎごん:「いや、別にそういう風に作れなくもないと思う」

というやり取りがあった。

ここでのやり取りは
内部的な変数に格納しておいて変換する
という考えが働いたのです。

↑ここはプログラムを知っている人じゃないと聞けないポイントかもしれませんね。
なのでプログラムを書いたり出来る設計者は後々のやり取りも最小限にとどめられるので個人的にはすべての設計者はプログラマ経験者である必要がある!と個人的には思います。

このやり取りの後にさらにこんなエクセルを送付してみました。









↑コレはあくまで例なのでわかりやすい県庁所在地変換ツールにしてあります。

で、これを別のシートに

という内容を貼り付けて送ったところ

とこのエクセルを送ってみると

やぎごん:「こんな感じ?」
友人N:「そうそう。」
やぎごん:「変換前の文字タマを入れるシートと変換前・後のシートって分かれててもいい?」
友人N:「ええよ。」
やぎごん:「Nよ!変換先のシートの行もフレキシブルなのかい?」
友人N:「そそ。できる?」
やぎごん:「うぃ。むっしゅ~www」
友人N:「めるすぅい~」

という承諾のやり取りが・・・。

これで外部設計が完了です。

要約すると

■やりたいこと
・変換前&変換後を入れる一覧があって、ソレを読み込んで一括返還するシートがほしい

■詳細内容
・変換前&変換後の文字の数がフレキシブル
・変換する文字列の数もフレキシブル
・文字ダマをいれるシートと変換する文字列が入っているシートは別

これが外部設計になります。

こういった内容は「対話」の中で生まれることがほとんどです。
ゆえに設計者にコミュニケーションスキルが求められるのです。

ただ単に相手と話していても設計が決まることも少ないのである程度こちらから選択肢として
提供する必要もあります。

以上で今日のお題はおしまいです。

内部設計~プログラムについてはまた別の機会に話をしたいと思います。

0 件のコメント:

コメントを投稿