PR

メインフレーム開発とWeb開発の相違点

 RetroTubeの開発を振り返ってみると,同じアプリケーションであっても普段の作り方とはずいぶん違うな,と感じています。普段のメインフレーム開発業務は,「ウォータフォール型」という昔ながらの開発手法で進めています。ウォータフォール型での開発は,(1)何を作るのか(ユーザーが何を要求しているのか)について詳細に検討,(2)どのように実装するのかについて詳細に設計,(3)実際に作る,(4)テストする,(5)開発を完了させ,ユーザーにリリースする――という手順で進みます。

 これに対し,RetroTubeの開発では「アジャイル」という開発手法に近いやり方で進めていたようです。(1)とりあえず動くものを作ってみる,(2)なぜそのような動きをするのかを調べたり理解したりする,(3)そのうち自分が何を作ろうとしていたのか(ユーザーが何を要求しているか)がわかってくる,(4)ユーザーにリリースするが,開発完了という考え方はなく,常にユーザーからのフィードバックを受けながら改良を続ける――という流れを取ります。意識してこのような手法を選択したわけではなく,いつの間にか自然とそのようなやり方で進めていました。

 ウォータフォールの開発手法が身についている筆者からすると,「永遠のベータ・バージョン」なんてヌルい仕事をしているようにしか思えませんでした。中途半端な状態でリリースしておいて,何か問題が発生した際に言い訳ができるようにしておくという意味に解釈できてしまうからです。しかし実際は,そういう意味ではありませんでした。常に進歩と改善を要求される厳しい世界のようです。

メインフレーム開発とWeb開発の共通点

 一方で,メインフレームでの開発とあまり変わらないと感じる部分もありました。開発手法だけでなく,開発言語や開発環境も違うのですが,10年におよぶメインフレーム開発の経験を生かせる場面は,かなり多かったように思います。

 例えば,バッチ処理とオンライン処理の切り分けや,バッチ処理の高速化など,システムの構造を設計する部分は,経験を生かすことができました。さらに,もっと単純で基本的なこと,例えばプログラミングの作法に至るようなことについても,普段の日常業務と,実はあまり変わりがありません。

 やはり,古いものと新しいものは根底の部分ではつながっているのではないか,と思うようになりました。つまらないと思っていたメインフレームの開発が,実は自分に大きな力を与えていたことにも改めて気づきました。

 ちょうど,Ruby開発者のまつもとゆきひろさんが,あるインタビューでとても印象的な言葉を残されているので,ここで紹介させてください。

「コンピュータはものすごい速さで進歩しているイメージがありますが,その発展を支えているプログラムの基礎的な構造・アイディアは,実は30年前からあまり進化していません。今の時代の新しい言語も,20年以上前にほぼ確立されていた基礎の上に成り立っていることがほとんど。だから,これからプログラムについて勉強したいと思っている人は,プログラムの基礎的な理論を身につけることが,一見遠回りに見えて,もの凄く大事なんじゃないでしょうか」