CLOSE

45年の歴史から振り返る、ソフトウェア開発とキャリアの変遷(全3記事)

「コンピューターの基礎は若い時に学んでいてほしい」 ソフトウェア開発組織が持つべきカルチャーとは

日本CTO協会が主催の「Developer eXperience Day 2023」は、“開発者体験” をテーマに、その知見・経験の共有とそれに関わる方々のコミュニケーションを目的としたカンファレンスです。ここで登壇したのは、株式会社カウシェの柴田芳樹氏。45年の歴史から振り返ったソフトウェア開発とキャリアの変遷について発表しました。全3回。3回目は、柴田氏が影響を受けた出来事と、技術教育への取り組みについて。

米国駐在・Javaの登場・日本オラクルの社長の言葉…柴田氏が影響を受けた出来事

柴田芳樹氏:影響を受けた出来事について、ちょっと簡単に話をしていきます。

まず、初めてアメリカに駐在する時の送別会で、駐在経験のある先輩から、アメリカに行った時は「与えられた開発タスクをこなすと、さらに難易度の高い開発タスクが与えられるから注意しろ」と言われたんですね。

最初はピンと来なかったんですけど、実際にアメリカに駐在してみたら、プロジェクトマネージャーは、できないエンジニアには仕事をアサインしないんですよね。プロジェクトマネージャーの役割はプロジェクトを遂行することであって、できないエンジニアを育てることではないというところで(笑)、日本とはぜんぜん違うなという印象を受けた記憶があります。

あとは、PARCの人たちは、とにかく超優秀な人たちということと、それまでは、C、C++を覚えたらもうこれでしばらく安泰かなと思っていたらJavaが登場しました。

日本オラクルに転職したのですが、それまでの私はどちらかというと、「できないプログラマーやエンジニアには、ソフトウェアを書かせるな」という感じが非常に強いエンジニアでした。

ところが、当時の佐野社長(佐野力氏)が中途採用で採用された人たちを集めて、いろいろな講話をする中で、「将来の会社を支えるのは今の新人、だから新人を育てる」と言われたんですね。みなさんは中途採用なので、即戦力としてがんばってくださいということですね。

その言葉を聞いて、確かに5年後、10年後の会社を支えるのは、自分たちではなくて若い人たちだなと、私自身はそこでけっこう考え方が変わった記憶があります。

あとは、『Effective Java』を読んだ時はけっこうショックでしたね。自分がなんにも知らないんだなというのと、あとはテスト駆動開発。1980年代、1990年代と違って、2000年以降はほぼテスト駆動開発ということで、それが当たり前になったというのは非常に大きいかなと思います。

本でいうともう1つ、『Software Craftsmanship』という本があるのですが、こちらは2回目の米国駐在に挑戦しようと思うきっかけを与えてくれた本です。あとは、それほどの衝撃ではありませんが、Goの登場は、今から考えるとけっこう影響を受けたなと思います。

Java・Goにおける技術教育をやっている

だんだん時間がなくなってきたので、技術教育の話をしていきたいと思います。(スライドを示して)ここにあるように、2000年からいろいろな技術教育をやってきています。

大きく2つやっていて、まずJavaですね。Javaのほぼ1年の研修コースを26期までやっていて、その後にJava8だけの研修コースを4期ほどやっています。さらに、リコー退職後は、『Effective Java 第3版』だけという研修コースもやってきており、そちらは第6期までやっている次第です。

研修といっても、事前に予習してもらって、質問表に記入してもらって、練習問題を全部解いてくるというものですね。

(スライドを示して)テキストはここにあるように、『プログラミング言語Java』『Effective Java』、Java8に関しては、『Java SE 8 実践プログラミング』。ここにはありませんが、私が書いた本を全部読んできてくださいという研修ですね。練習問題も全部解きます。

もう1つ行っている研修は、Goです。これも先ほどのJavaとまったく同じような方式の研修で、『プログラミング言語Go』を読んでいって、練習問題が130問以上ありますが、それを全部解くというものです。

こういうかたちで研修をしてきたのですが、どちらの研修も重要な点は、1つの言語をきちんと学習させるということです。特にバイブル的な書籍を読ませる。

さらに特徴的なのは、プライベートな時間に予習を行うということです。Javaの研修だと、場合によっては土日のどちらかは1年間ずっと潰れます。基本的にはプライベートで行って、研修当日だけ業務扱いです。研修は基本的には質問に対するQ&Aですが、けっこう話が脱線して、コンピューターサイエンスの基礎的な事柄を教えることも多かったです。

研修の最後には成果発表会をやってきました。初期の頃は写真を撮っていなかったのですが、途中から集合写真を撮るようになって、(スライドを示して)こういったかたちでJava研修は総勢200名以上の修了生がいます。

この中に実は、明日話をされる古川陽介さんもいますし、『Go言語Webアプリケーション開発』の著者である清水さん(清水陽一郎氏)も、実は2つ研修を受けられています。

Go言語研修もこういうかたちで受講生がいます。先ほどの清水さんと古川さんとt_wadaさんも研修の修了生です。コロナが始まる前は年に1回みんなで集まって技術発表をして、その後懇親会をするというのをやっていました。

2000年から現在までで20冊の技術書を翻訳

では、技術書の翻訳ということで、2000年から行っている技術書の翻訳についてお話をいたします。

技術書の翻訳は2000年から現在まで20冊ほどやっています。基本的に出版社から翻訳を打診される場合と、自分から打診する場合に分かれています。

技術書の翻訳そのものはやはりマラソンで、毎日1時間か2時間コンスタントに続けないと終わりません。疑問点や原著の間違いは著者に問い合わせたりします。本によっては、半年から10ヶ月ほどかかります。

翻訳もしているのですが、多くの書籍は作品作りから組版まで全部私がやっています。そこがちょっとほかの翻訳者とは違うかもしれません。

翻訳を通して原著者と質問をけっこうやり取りするので、その過程でいろいろな間違いを指摘するのですが、「じゃあ、次の本を書く時に原稿レビューをしてくれ」と依頼をされるものもあったりします。

(スライドの)右側にある丸がついている本は、英語の原稿の草稿レビューをした本ですね。四角になっているのは、日本語版が完成する頃に、「ちょっと日本語版の読者向けに、“よせて”を書いてください」と言って依頼して書いてもらった本です。

(スライドを示して)これは左が『プログラミング言語Go』の著者のアラン・ドノバンで、右が有名なブライアン・カーニハンですね。本の日本語版の出版にあたって、日本の読者向けにメッセージと写真を送ってもらったものです。私自身もアメリカへ出張した時、あるいは著者の人たちが日本に来た時に会っています。

右側に本のしおりがありますが、これは『Effective Java 第3版』が出版された時に、本のしおりにジョシュア・ブロックにサインを書いてもらって、50枚ほど送ってもらったものです。送ってもらったそのしおりを先ほどのOG・OB懇親会の参加者にプレゼントしました。

現在、21冊目が8月8日に発売予定です。タイトルが変わるかもしれませんし、まだカバーデザインは決まっていません。

ソフトウェア開発組織が持つべきカルチャーとは?

ということで、もう時間がかなり押してきたのですが、最後にソフトウェア開発組織が持つべきカルチャーということでお話をいたします。

このテーマに関しては私自身、ブログにいろいろなものを書いています。その内容は主に富士ゼロックスグループとリコーグループでの経験を基に書いているので、時間がある時に読んでいただければと思います。

すべてを説明する時間はないので、2つほど簡単に話をします。

組織としては、継続した学習習慣をエンジニアに持ってもらう必要があるということがまず1つですね。

次が、コンピューターの基礎をできれば早い段階で教えてほしい。どういうことかというと、若い人が将来どのようなソフトウェア開発に従事しても困らないようにという視点を持って、最初に基礎的な教育を行っておく必要があるということです。

私自身はそういう視点で、富士ゼロックス、あるいはリコーで活動してきましたが、そういう視点で最初にコンピューターの基礎を教えるというのは重要だと思っています。

コンピューターの基礎と言ってもいろいろありますが、最低限はコンピューターの基本原理ですね。CPUの基本構造、メモリ管理等々。オペレーティングシステムがどういうふうに作られているのか、データ構造とアルゴリズムといったものです。こういったものを最初に教えてもらう必要があります。

というのは、まつもとゆきひろさんも書いていますように、基本的な原理原則はそんなに変わらないものなので、できるだけ若い時に学んでいてほしいというのがあります。

ソフトウェアの開発を楽しむ上では健康がすべて

こういうかたちで、45年間をかなり駆け足で(笑)、振り返ってきました。ここ最近の5年間とそれ以前で違うこととしては、実はちょっと(スライドの)右下に出ましたが、週4日勤務をしているということです。基本的には月曜から木曜まで働いていて、金土日は3連休という働き方をしています。技術教育を個人的にやっているとありますが、それは基本的に金曜日に副業としてやっています。

もう時間がかなり押してきました。いろいろな話をしましたが、最後に、やはり健康がすべてです。

私自身は2020年6月20日に急性心筋梗塞で救急車で病院に運ばれてカテーテル治療を受けて、一命は取り留めました。私は幸い症状が非常に軽かったのですが、それでも心筋の一部が壊死しているという状態は、もう一生治りません。

ソフトウェアの開発を楽しむのも非常に重要ですが、やはり健康がすべてということで、健康には気を遣っていただきたいというのがあります。

ということで、かなり駆け足で話をしたんですが、1点だけ。(コメントを見て)「翻訳の依頼など、機会を得るために意識していることはありますか?」ということで、依頼が来るために意識したことはあまりないですね。

翻訳がちょっと途切れた時に、なんかいい本はないかなと思って、いい本を見つけたら、出版社に「これどうですか?」と声をかけるというのがパターンです。実際、今度出す21冊目の本も私から出版社に「これどうですか?」と言って持ちかけたものです。

ということでですね、時間も過ぎましたので、今日はこれで終わりにしたいと思います。みなさん、ご清聴ありがとうございました。

続きを読むには会員登録
(無料)が必要です。

会員登録していただくと、すべての記事が制限なく閲覧でき、
著者フォローや記事の保存機能など、便利な機能がご利用いただけます。

無料会員登録

会員の方はこちら

関連タグ:

この記事のスピーカー

同じログの記事

コミュニティ情報

Brand Topics

Brand Topics

  • 今までとこれからで、エンジニアに求められる「スキル」の違い AI時代のエンジニアの未来と生存戦略のカギとは

人気の記事

新着イベント

ログミーBusinessに
記事掲載しませんか?

イベント・インタビュー・対談 etc.

“編集しない編集”で、
スピーカーの「意図をそのまま」お届け!