2018年08月

システムをやられている方は、仕様書と聞くと何の仕様書だよって思うと思いますが、
大体、開発者が接点を持ち始めるのは、外部設計、基本設計とかその辺になると思います。

私の場合、概要設計を書いたら、外部設計に少し手を出します。
全体のインプットとアウトプットは何か…
オンラインで入力して、何を出すのが正解なのかを作って、その中身の過程を考えます。
どういう過程を踏めば、このインプットからアウトプットが出せるのか。。

今は設計書に関して、全体的に細かく、レビューで袋叩きに合い修正する。
これは、本来正しい姿なのですが、一昔前は仕様書はメモ書き、帳票レイアウトは出力項目だけ、
そんなのは当たり前でした。

なので、開発者の知識も経験値も必要でしたし、開発者の細かい気遣いや、これおかしいな?っと思ったら、サッと聞いて直しておいたり、自ら調べて「直しておきましたー」くらい能動的に動く必要がありました。

ただ、今は現在はどうでしょう?
能動的にそこまで気遣う開発者ってどれだけいるのでしょうか…

自分:これおかしいよね?
A君:何がですか?
自分:ほら、ここってこうなるのが正しくない?
A君:仕様書通りに作ったので大丈夫です。それなら仕様書を作った人に聞いてください。
自分:ほいだら、これってこうなるの正しいと思う(違う例を出して)
A君:違うと思います。
自分:それじゃ、戻るけどこのケースは?
A君:違いますね。でも、仕様書通りなので、間違ってないです。

っという、アホな会話がいくつも出てきます。
最後に違いますねと言いながら、間違ってないですってどういう事?と普通の人が聞いててもおかしな会話です。

仕様書も人間が作っていて、レビューで叩かれますが万能ではないです。
開発者もそこに気付いて、あれ?っと思ったらそのまま作らずにエスカレーションしてもらいたいものです。

気付かなかったら、途中で気付いた人の言葉を素直に聞いてエスカレーションをすべきだと、開発者に対して思います。
そのまま進んだら、大事故を起こして責任追及の場に出され辛い思いをするのは自分です。

しかし、大事故を起こさずに変な状態がどんどん出来てしまうケースもあります。
仕様書を見てもプログラムを見ても正しい…
けど、目に触れる人が見るとおかしい状態です。

これを正々堂々と「こういう仕様です!」っと言い切るバカがどれほど多いことか。

とある制度で、証券業協会と全国の証券会社に言いたい一つの制度があります。
お客様の目にも触れています。
でも、誤ったことをしているのですが、誰も気付かずそのままのものがあります。
恐らく、誰に聞いても「そういう制度です」という回答が来ると思います。

これは、金融庁と協会とそのワーキンググループがバカなのですが、何故その回りの証券会社が一言申し上げないのか不思議です。

そのスモール版が常に起きている。
仕様書も万能ではないですし、開発者も全てを知って万能ではない。
ただ、仕様書を書く側も、プログラムを作る側も気を遣うことを忘れてはいけないと思います。
それが全くないプロジェクトは、破綻してしまいます。

設計者もプログラマーも、お互いを尊重し合う姿勢が必ず必要であり、その姿勢を推進する中間のPMO的な存在も不可欠だと思います。
これから、そんなプロジェクトに関わることがあれば、まず姿勢から正す動きをしなければなりませんね。。

2020年に小学校でのプログラミング教育義務化は、皆さんご承知かと思います。
恐らく、夏休みの自由研究的な延長線になるかと思いますが…

皆さんがコンピュータに興味を持ち、テクニカルな部分が切磋琢磨され技術の底上げされることは、とても良いことだと思っています。

しかし、危険なことが一つ二つ出て来るのでは?っと危惧しています。
それは、設計書が書けない、読めないという事態が起こりうるということです。
例えば、設計書に「---,--9」と書かれていて、-1000を代入したとします。
すると表示は、「 -1,000」と前に半角スペースが一つ入り、-1,000と表示されます。

これが、「ZZZ,ZZ9」ならば「  1,000」となり、「¥¥¥,¥¥9」ならば「  ¥1,000」となります。

これだけで、ここには整数しか入らないという事が分かります。
しかし、そういう基本を教えるのか?っという疑問が残ります。
っというか、こういう設計書を作っても、マイナスが入るべきじゃないところにマイナスが容赦なく入ってくるので、ひっちゃかめっちゃかです。

それと、コンピューターってどうやって動いてるか基本的な事を知ってる人が少ないです。
CPU、メモリー、ハードディスク…
この3つがどう協力し合って動いているのか、、、
新人の頃は、コンピューターの5大要素は何だ?なんてよく言われていましたが、言える人って今の人たちはいるのかな?っと思います。

私はかれこれ10年くらいプログラムは組んでいないですし、そもそも今の新しい言語は分かりません。
COBOLという大型の汎用機で使われていた言語で、今ではオープンCOBOLなんいうのがありますが、全く組んでません。
4年くらい前に動くんだけどバグってるというのを調査したくらいです。

私は小さい頃からクルマが好きでした。
何でクルマが動くんだろう?っと4歳くらいで、ピストンがクランクシャフトとコンロッドを通じで上下運動して、そこにガソリンが入り、スパークプラグで点火した爆発をエネルギーにしているのは知っていました。

図鑑を見て、漢字が読めないので両親に読めない…っと言い聞きながら理解した記憶があります。

なので、何で動いてるんだろう?っというところから、学校教育では教えてもらいたいです。
そうすると、CPU、メモリーに負荷の掛けないプログラム作りをするようになると思います。

今はそういう勉強をしていないので、難しく行数の多いプログラムが多いです。
コンピューターも人間と同じで、短い文だと理解が早い(メモリーをそこまで使わない)ので、やはり処理スピードが早いです。

なので、なるべく簡単にコンパクトにプログラミングすることも覚えてもらいたいです。

昔は、ハードの資源がないので、1本で多機能なプログラムが好まれてました。
そして、インプット/アウトプットが早くなり、1本1機能で作るように変化しました。
その頃、30分掛かってたプログラムをちゃんとキレイに作り直したら5分で終わったなんてこともありました。

そこからオブジェクト指向というJAVAとかC言語が出てきて、部品部品で作成する。
同じ部品なら、一つ作れば使い回しというように進化してます。

プログラムは進化していますが、基本は何一つ変わっていません。
どの言語もコンパイルという文法チェックをすれば、コンピューターが理解するアセンブラという言語に置き換わり、そこから私たちが理解不能なコンピュータ言語に置き換わる…

そういう基本も何一つ変わっていないので、小学校の義務教育化だけではなく、全体的にそういう基本から教えて頂きたいなと思います。

↑このページのトップヘ