エンジニアリング歴45年の柴田芳樹氏

柴田芳樹氏:みなさん、こんにちは、柴田です。今日は、「45年の歴史から振り返る、ソフトウェア開発とキャリアの変遷」ということで話をいたします。

今日お話しする内容は、まず簡単な自己紹介ですね。あと5つほどテーマに分かれています。

45年間で経験してきた主なソフトウェア開発、影響を受けた出来事、技術教育と技術書の翻訳。最後に、ソフトウェア開発組織が持つべきカルチャーをちょっと手短に話したいと思います。

私は1959年11月生まれで、現在63歳です。九州工業大学情報工学科に入学して、修士課程を修了して、その後、富士ゼロックス(現:富士フイルムビジネスイノベーション)に入社しています。7回転職をして、現在8社目の株式会社カウシェにいます。

この会社の一覧だけでは、ちょっとどれだけの期間だったかがなかなかわかりにくいので、もう1つ表を用意してみました。

1978年に18歳で九州工業大学に入学して、後半の最後の3年間で「HOLENET」と呼ばれるものを開発しました。学部の4年生と院の2年間というのは後で説明します。

その後、富士ゼロックスに入社しました。富士ゼロックスは非常に長かったのですが、基本的には開発者として、いちエンジニアとしてずっと過ごして、途中、米国ゼロックスにも駐在しています。

富士ゼロックスを1996年に退社して、日本オラクルに入社して、そこではOracle Applicationsの人事・給与システムの開発のマネージャーをやりました。開発マネージャーといっても、実際には開発のリーダー、マネージャーかつ協力会社との交渉役みたいな一人三役的なことをやっていました。

日本オラクルを退職後はジャストシステムに入社して、後半は、非常に小規模なチームでしたが、Javaでワードプロセッサを開発するプロジェクトのリーダーをやっていました。

1998年にジャストシステムを退職して、富士ゼロックス情報システム(現:富士フイルムシステムズ株式会社)に入社しました。富士ゼロックスの子会社ですね。そこからは、開発者というよりも、(スライドに)「コンサルティング」と書いてありますが、基本的には技術教育や設計のレビューなど。コードのレビューを中心として活動してきました。

途中、2002年の終わりから2003年に米国ゼロックスにもう1度駐在したのですが、そこは意外と短期間で終わりました。また日本に帰国して、後で説明しますが、今度はあるプロジェクトで、開発者兼、開発部門の部長兼、コンサルティングみたいな、一人三役的な活動をずっと続けていました。

2009年に富士ゼロックス情報システムを退職して、リコーに入社しました。(スライドに)「コンサルティング」と書いてありますが、最初のほうは基本的に設計のレビューをやったり、あるいはリコーで初めて「Hudson」、後の「Jenkins」を使って、初めてCI環境を導入したりしました。

途中、「マネージャー」というのが2年ほどありますが、これはまた別のプロジェクトで開発のリーダーをやりながらマネジメントをやったということで、ここも後で説明いたします。

リコーを2017年に退職して、今度はブロックチェーンの会社であるソラミツ、その後、メルカリの子会社、メルペイ。現在はカウシェというところで、ここ5年ほどはWebサービスのバックエンドの開発者として活動しています。

こういった開発者、あるいはマネージャーとしての活動以外に、2000年頃から技術教育をずっとやってきています。リコーまでは社内向けの教育をやっていました。リコー退職後は個人で技術教育をやっています。さらにもう1つ、2000年から技術書の翻訳をずっとやってきています。

九州工業大学時代は「HOLENET」の開発に従事

では最初に、主なソフトウェア開発ということで話をしていきます。

1978年に九州工業大学に入学しました。今は飯塚キャンパスと戸畑キャンパスがありますが、当時は戸畑にしかキャンパスがなく、かつ、学部がない大学でした。つまり、九州工業大学情報工学科という、もういきなり学科というかたちで情報工学科へ入学しました。6

単科大学でしたので、1年生から専門科目の授業がある代わりに、教養科目は4年かかって取ればいいというところがあって、1年生で初めてコンピューターに触れて、プログラミング、コンピューターの構成、データ構造、アルゴリズムなど基礎的なことを学んでいきました。

4年生になると研究室に入って、今度は「HOLENET(HDLC Oriented Experimental Local Network)」と呼ばれるシステムの開発を研究しました。HOLENETは(スライドを示して)ここにあるように、CCP、「Communication Control Processor」と呼ばれる通信ボードと、「ホスト」と呼ばれるものがワンセットになってループ状に接続してネットワークを構成したものです。

実は、このCCPは全部イチから作り、かつ通信プログラムも全部イチから作るというのを、大学4年生の時にやりました。

システムの概要は、先ほど簡単に説明しましたが、当時のCPUは、まだZ-80ですね。つまり8bitマイクロプロセッサなので、ホスト側はZ-80でした。Z-80用のオペレーティングシステムは、CP/Mが当時はけっこう主流だったのですが、CP/Mのさらに上位システムとして、マルチタスクのMP/Mというものを使っていました。

通信ボードも同じようにCPUがZ-80で、通信用のコントローラ、DMAコントローラ、割り込みコントローラといったものが搭載されているんですけど。今から考えると信じられないぐらいのメモリー容量で、ROMが2KBですね。RAMが64KBと書いてあります。実際には8bit CPUで、66KBにはできないので、RAMの2KBのアドレスは殺しているシステムとなっていました。

先ほど言いましたように、このCCPのボードの組み立てですね。ボードといっても基板が2枚あって、1枚がプリント基板で、1枚は当時ラッピングで作るという……ラッピングと言われてもなんのことやらわからない人も多いと思いますが、物理的に自分で線をつないでいくという方法ですね。

それで、CCPボードを組み立てて、組み立てただけでは当然動かないので、ハードウェアをオシロスコープ1つだけでデバッグして、ある程度動くようになったら、今度は通信ソフトをZ-80のアセンブリ言語で書くということを行っていました。

大学4年の時にだいたいこのシステムは完成して、修士の1年、2年の時には、学生向けの実験システムとして、学部の3年生に通信ソフトのプログラムをZ-80で書いてもらうという実験の指導やレポートの評価をやっていました。

先ほどのCCPは、簡単に言うと(スライドを示して)こういう構成になっていて、ROMが2KBでRAMが62KBですね。各種のコントローラが搭載されているということで、これをまたハードウェアから作りました。当時は昼夜が逆転していて、夜になったら大学に行ってこのボードを一生懸命作って徹夜して、朝下宿に帰るということをやっていました。

富士ゼロックスでは「Fuji Xerox 6060 Workstation」開発に従事

その後、大学院の修士課程を修了して、1984年に富士ゼロックスに入社しました。

入社してちょっとびっくりしたのは、先ほどのHOLENETを開発していた頃、大学で使っている端末は、24×80のいわゆるキャラクター端末で、文字だけを出せる端末が主流だったんですよね。

富士ゼロックスに入社してみたら、Starワークステーションというのがありました。そこでは、ビットマップディスプレイ、マルチウィンドウ、Ethernet、ファイルサーバー、レーザープリンターを使ったプリントシステムなど、もう大学とはぜんぜん違う、未来に来たような環境が整っていました。

私自身はハードウェアも含めてStarを開発している部門に配属されたのですが、Starを開発するチームではなくて、当時富士ゼロックスは、J-Starがあるにもかかわらず独自のワークステーションを開発するというプロジェクトを始めていました。

そのチームに配属されてほぼ2年後に商品化されたのが、「Fuji Xerox 6060 Workstation」というものです。このCPUは、モトローラ68000、メモリは2MBですね。ハードディスクが10MBということで、OSはUNIXのクローンである「Idris」のソースコードを購入して改造して使っていました。

Ethernet、マルチウィンドウ、マウス、ビットマップディスプレイといったものをサポートするということで、ワークステーションの基板およびOSより上のソフトウェアを全部イチから開発しました。ちょっと見にくいですが、カタログにあるように、マルチウィンドウ、ビットマップディスプレイをサポートして、ハードディスク搭載というワークステーションを開発しました。

このワークステーションの開発の中にXNS、Xerox Network Systemsと呼ばれるプロトコル体系があって、私は基本的にそれの設計・実装を担当していました。

最初はEthernetのドライバから始まって、上位のアプリケーションレイヤーですね。今で言えば、TCP/IPに相当するところ。あるいはさらにその上のアプリケーション層までをC言語で開発するというものですね。同時に、自分たちの開発を助けるために、各種ツールも作っていました。

商品としては、売り出されてはいませんが、もう1つ、IBMの3270端末エミュレータという、6060 Workstationで動くものも作りました。基本的に社内のオンラインシステムに使うために開発したものです。

1984年に入社して、6060 Workstationは1986年に発売されたので、こういったかたちでわりと短期間に開発しました。その後、後継機ではありませんが、1161 AI Workstationといったものも開発したのですが、残念ながら6060 Workstationの後継機は開発しないということになりました。

当時、全国では6,000台程度は売れたんじゃないかなと思いますが、やはりStarと呼ばれるワークステーションが先にあったために、6060そのものはこの1台で終わってしまいました。

米国ではワードプロセッサの移植作業を担当

一方で、当時Starのワークステーションというのは、ゼロックス固有のハードウェア上で動いており、その上で独自のプログラミング言語を使って動作していました。

1988年に、ゼロックスは独自のハードウェアで開発するのをやめて、汎用品というか独自のハードウェアで動かすStarのワークステーションをSunワークステーション上に移植するというプロジェクトを始めました。富士ゼロックスもそれに参画するかたちで、私もそちらに移っていきました。

それで商品化されたのは、「Xerox Globalview」と呼ばれるものです。Starのワークステーションのソフトウェアを移植しているもので、「Mesa」と呼ばれる言語で、基本的にはマルチスレッドプログラミングができるような環境です。

日米で200名程度のエンジニアが従事しました。日本からは当時、ほぼ同年代の若手のエンジニアが20人ほどカリフォルニアのエル・セグンド、ロサンゼルス国際空港のすぐ南、サンノゼの近くのサニーベールに駐在員として派遣されて、私もその1人としてエル・セグンドで駐在員として働き始めました。

エル・セグンドでは、「ViewPoint Document Editor」と呼ばれる、いわゆるワードプロセッサの移植作業を主に担当していました。(エンジニアは)けっこうな人数がいたのですが、移植するだけではなく、当時Sunワークステーション上で全部ビルド環境が構築されていたので、そのビルドシステムの構築やビルドを担当していました。

さらに、当時はコンパイルが遅かったので、複数のSunワークステーションを集めて分散コンパイルするツールを作ったり、移植のためにMesa用のプリプロセッサも開発したりしていました。

(次回へつづく)