●→→→○
いつも仕事で書いているプログラムと違って、今未踏で書いているプログラムは、比較的ローレベルな記述をやっています。
メモリのアライメント(配列の先頭を16バイト単位であわせる)とか、高速化のための処理の間引き、メモリコピーの回避、分岐の除去とか。。
そんなのを考えてやらないといけないので、SIer的な言葉で説明すると、
「基本設計から実装までの距離が長い」
ということになろうかと思います。
基本設計というのは、「こういうものを作ります」という文章で、ユーザ側(のシステム担当者)と、開発者の双方が理解できることを前提とした文章です。
で、とくにSIerで使うツール(プログラミング言語や、DB管理システム)は、この基本設計から実装(コーディング)までの距離をなるべく短くするために設計されている。といっても過言ではないでしょう。
画面をデザインするためのツールが用意されていて、それでテキストボックスとかボタンとかを適当に並べる。
で、配置したボタンをダブルクリックするとボタンに対応した処理を行うコードが自動挿入されて、プログラマはその中身を書くだけ。
で、よく使う処理は大方ライブラリが用意されていて、その上っ面の仕様さえ理解していれば必要な機能を満たしたプログラムは書けてしまいます。
ぶっちゃけSIer(おっと、あまり一般化しないで今の現場といっておこう、、)では、基本設計書さえできてれば、詳細設計みたいな工程はすっ飛ばして、いきなりコーディングを始めて、1ヶ月そこらで仕上げてしまえることが実に多いものです。
時間をかけるのは基本設計まで落とし込むところ。ユーザ側での意見調整や、具体的な要件の不明点の洗い出し、システム化する上で問題となる点の洗い出し、スケジュール作成と管理、などなど会議と資料作成の繰り返し、これがメインの仕事となるわけです。
で、今作っているソフトは、基本設計はもちろん必要ですが、なにぶん全ての決定権を持っているのが自分自身ですから、もめることなど何もなく、システム化が難しいものは、サクっと先送りできますし(重要な部分はもちろん力をいれますがね、、)ちょっと悩むことはあっても意見が割れたりすることもない。
いわゆるSIer的なコストというのは限りなく小さいといえます。
で、そのかわりSIerで詳細設計と呼ばれている部分の比率が大きくなります。
詳細設計は「どう作るか」を決める作業で、これを記載した詳細設計書は、開発リーダーがプログラマに指示を出したり外部の開発会社(主に海外)に外だしするときに必要となる文章です。
で、詳細設計書なんて自分で各分には要らないや
と思っていたのですが、なんか、やっぱり無いとつらい。
というか、今の開発は普通だったら詳細設計のレベルだと思われる部分(関数仕様や、クラス仕様、はもとよりアルゴリズムなんかも)が基本設計で、
ノートや紙に書きなぐりでやっているのは、そのアルゴリズムを「高速」に実行できるように、みたいなところです。
ある処理の準備をするためのクラスで、さらに下請けのクラスを追加して使うみたいなことを日常茶飯事でやっております。(当然全て自分で設計と実装を行います。)
でも大分慣れてきたと思う(思いたい)ので、がんばってやっていくです。
| 固定リンク
この記事へのコメントは終了しました。
コメント