間違いだらけの業務システム開発(開発篇その1)
自動プログラミングは有効である
通常、業務システムの開発というと最終的には、プログラマーを配置してプログラム仕様書に従ってせっせとコードを書くことが行われます。このシリーズ初めの方でも、「開発プロジェクトではコードを書く」というのが間違っていると指摘していて、コードを書かないようにすることが重要だと言いました。
ところが、一方でプログラミングを自動化すればコードを書いてもいいのではないかという議論があります。というか、コードを書くという前提でその生産性をあげるために何とか自動化したいという思いがあり、現にそういうツールも出てきています。
これは正しい方向でしょうか。それを考える時に、いつ、どこの部分でコードを書くのかをみてみましょう。今の開発プロジェクトだと要件定義して仕様におとして、最後にプログラミングをします。詳細な機能レベルも記述したりします。
こうした、細かな機能レベルのものは予めコードを書いてモジュール化、部品化しておいたらどうなるでしょうか。そして、プロジェクトに入ったらそれらの部品を組み上げることにしたら、そこではコードを書かないですむことになります。
もし、こうしたことができたら、プログラムの自動生成というのはどういうことになるのでしょうか。自動化の意味がなくなるのです。なぜなら、自動化をする必要性は同じようなコードを繰り返し書くからで、言い換えると、パターン化できるから自動化が可能になるわけです。だとしたら、パターン化できるのならそれらを部品化してしまえばいいことになる。
そうなると、その部品を作るのにコードを書くことになります。ここはプログラミングしなくてはいけません。ところが、このプログラミングは一回でいいのです。ですから、ここはじっくりとスーパープログラマーにきれいなコードを書いてもらおうじゃありませんか。
いまのアプリケーションのコードを覗いてみたらいいと思いますが、ほとんどが個人の癖の入ったきたない、あとで読めないしろものではないでしょうか。たとえ、自動化したところで、自動化のアルゴリズムは汎用性を持たすために質はそう高くないと思われるので、同じような話ではないかと思います。
結局、スキルの高いプログラマーにシンプルできれいなコードで部品を作ってもらい、それを要求に従って組み上げることでアプリケーションを構築するのが、開発効率、そして保守性も向上させることができるのです。ということでプログラミングの自動化を指向するのは間違っていると思うのですがいかがでしょうか。



重要な具体的アプローチが足りない
うすら寒い良書
![それでも恋するバルセロナ [DVD]](http://ecx.images-amazon.com/images/I/51ZihlB9KjL._SL160_.jpg)


倉庫にしまったもの
![私の中のあなた [DVD]](http://ecx.images-amazon.com/images/I/51V2d6rh1NL._SL160_.jpg)

本書自体が残念![さまよう刃 [DVD]](http://ecx.images-amazon.com/images/I/51VJvPz8t7L._SL160_.jpg)
![愛を読むひと (完全無修正版) 〔初回限定:美麗スリーブケース付〕 [DVD]](http://ecx.images-amazon.com/images/I/41hmIayU5VL._SL160_.jpg)
