キャリアVol.21

[連載:ひがやすを×和田卓人] プログラマー人生を楽しむために知るべき97のこと【スキル向上編 1/2】 「完ぺきなコード」を求めるな

【連載:ひがやすを×和田卓人】プログラマー人生を楽しむために知るべき97のこと【スキル向上編 1/2】 「完ぺきなコード」を求めるな

【連載:ひがやすを×和田卓人】プログラマー人生を楽しむために知るべき97のこと【スキル向上編 1/2】 「完ぺきなコード」を求めるな

株式会社電通国際情報サービス シニアITプロフェッショナル 比嘉康雄(ひが やすを)氏国産OSS『Seasar』シリーズの開発などを主導してきた、アルファギークの一人。電通国際情報サービスに勤めるかたわら、さまざまな技術カンファレンス、コミュニティーに招かれて講演活動も行っている。個人ブログ『ひがやすをblog』で、SI業界や各種エンジニアへの提言も行っている

タワーズ・クエスト株式会社 プログラマー 兼 取締役社長 和田卓人氏テスト駆動開発(以下、TDD)の普及役として知られる。学生時代、オブジェクト指向分析/設計に傾倒。その後、ソフトウエアパターンやXP(eXtreme Programing)を実践する人たちと出会い、TDDの誕生を知る。現在は講演活動やハンズオンイベントを開催しながらTDDの普及運動を行う

―― 本日もお集まりいただきありがとうございます。さて、「プログラマー人生を楽しむために知るべきこと」第2回のテーマは、前回の予告どおり「スキル向上編」でよろしいですか?

ひが はい。ただ、話す内容は前回の続きになりますけど。

―― えっ、また恋愛の話ですか?

ひが そうじゃなくて、前回の「恋愛編」でもお話ししたXP(エクストリーム・プログラミング)やYAGNI(ヤグニ)との出合いで、仕事のやり方も大きく変わった、という意味です。

和田 良かった。ちょっと焦りました(笑)。

―― 分かりました。ではまず、ひがさんはXPを知ってどうスキルアップしていったのかを聞かせてください。

ひが 今お話ししたように、スキルが上がったというよりも、仕事のやり方が変わったという言い方が正しいですね。前回もお話ししたように、就職してからの僕は、私生活なんかどうでもよくなるくらい仕事に没頭していた。じゃあ、仕事はすごく順調だったのかといえば、案外そうじゃなかった。

和田 そうなんですか。

今でこそ名を知られる存在のひが氏も、就職時は不安に苛まれていたという。その不安とは…
今でこそ名を知られる存在のひが氏も、就職時は不安に苛まれていたという。その不安とは…

ひが 例えば、今書いているコードは良いコードなのだろうか?、ダメなコードを書いているつもりはないけど、良いコードを書いているという実感も持てない、そんな不安な気持ちをいつも持っていました。

和田 すごくよく分かります。

ひが それが、XPの考え方を知ったことで、悩まなくなったんだよね。

和田 僕も、プログラマーとして変わるきっかけになったのは、XPやテスト自動化の発想に触れたころからです。それまでは、今思えば頭でっかちな設計をしていたと思います。あれこれ事前に考えて、万全を期したつもりでいざコーディングしてみたら、すぐにバグが発生してガッカリ……みたいなことを繰り返していました。

ひが そういうプログラマーって、実はたくさんいるよね。理想主義的というか。ただ、和田さんは(マーティン・)ファウラーを知って変わった。そうだよね?

和田 ええ。著書『アナリシスパターン』などを執筆して、オブジェクト指向設計の大家だったファウラー自身が、XPと出合ってからけっこう考え方を変えましたからね。僕もその影響はすごく受けています。

書くコードの良しあしより、間違いを修正する技術が大事

―― 途中で口を挟んですみません、今回のテーマは「スキル向上」なので、仕事のやり方が変わることで、どうスキルが上がっていくのかを伺いたいのですが……。

ひが プログラマーにとってのスキルアップって、良いコードが書けるようになることだと思うんですね。でも、「良いコード=完ぺきなコード」だと考えると負けなんですよ。完ぺきなコードなんてどこにも存在しない。青い鳥を探しているようなものです。

―― なるほど。

「完ぺきなコードを求める必要なんてない」と熱く語るひが氏に、強く同調する和田氏。そのココロとは?
「完ぺきなコードを求める必要なんてない」と熱く語るひが氏に、強く同調する和田氏。そのココロとは?

ひが そもそも良いコードか悪いコードかで悩むこと自体がナンセンス。必要最小限の機能が満たされていて、テストされているコードならそれで十分。間違いが見つかればすぐに修正できるようになっていれば良い。完ぺきなコードを求める必要なんかないんです。

和田 確かにそうですね。わたしも以前は「世の中には『完ぺきなコード』があるはずだ」と信じていましたが、そんなものはないのかもと思ったことが、一皮むけるきっかけだった気がします。

ひが プログラマーになりたてのころって、動くコードは書けるけど、さっきも話したようにそれが「良いコード」かどうかの判断軸がなくってあれこれ考えたり、勉強したりするじゃない。でも、YAGNIの思想に触れて、書くコードの良しあしで悩まなくなってからは、まずはやってみようと発想転換できるようになった。

和田 その発想転換は大事ですよね。

ひが 僕は悩んで立ち止まっちゃうこと自体が、「負けている」って思っちゃうタイプだからね。自分の強みは、YAGNIに導かれた圧倒的な行動力。行動したことで得たラッキーがたくさんある。『Seasar』のようなオープンソースプロジェクトをやることになったのも、そのうちの一つです。

アウトプットすることだけがエンジニアを鍛える

和田氏は学生時代、「最初に書くコードで失敗は許されない」と考えていたというが…
和田氏は学生時代、「最初に書くコードで失敗は許されない」と考えていたというが…

和田 発想転換という意味では、わたしの場合、リファクタリングを知ったことも大きな転機になりました。バージョン管理やテストコードがあれば、後からコードをいじっても良いんだ! と。それまで持っていた「コーディングは一発で成功しなければならない」という強迫観念から脱することができました。

ひが これはプログラマーに限った話じゃないかもしれないけど、正解を求めるためにあれこれアクションしてみた結果、「正解はない」と知ることこそが一番のスキルアップなんだよね。

―― それを知った上で実践をしていくからこそ、プログラマーとしての腕前が磨かれていくわけですね。

ひが そういうことだと思います。行動しなければ何も変わらないから。

和田 悩んだり、「答えを探してるんです」と言うものの、行動できていないというパターンの人って案外多い気がします。例えば、プログラミングの最新知識を学ぶために勉強会という場があるのに、「もっと知識がないと勉強会に参加しづらい」と二の足を踏んでしまうような。

ひが うん、それってナンセンスだよね。

和田 エンジニアである以上、誰もがインプットをしていると思うんですよ。いろんな形で。でも、仕入れた情報のうち、どれが自分の悩みを解決してくれるかは、アウトプットしてみないと分かりません。社外のプログラマーと「こうしたら良いんじゃないか」と議論したり、具体的にコードで書き始めてしまったり。そうやってアウトプットすることで、目の前が開けていくと思うんです。

  1. 1
  2. 2
この記事が気に入ったらいいね!しよう

エンジニアtypeの最新情報をお届けします

RELATED POSTS関連記事

JOB BOARD編集部おすすめ求人

この記事に関連する求人・キャリア特集


記事検索

サイトマップ



株式会社富士通エフサス【ポジションマッチ登録】 オープンポジション

株式会社ローソンエンタテインメント データ解析・運用/業務未経験OK/人…

森永乳業株式会社 システム開発(web・オープン系・新規技術)◆ITを活…

株式会社コロプラ【ポジションマッチ登録】 オープンポジション

株式会社日進サイエンティア PM候補/設立以来、無借金経営/想定年収600…

旭化成株式会社 プラントエンジニア職

アクサス株式会社 システムインテグレーション事業部 エンジニアリンググ…

ゼネラルエンジニアリング株式会社【(株)マイナビの100%子会社】 モノ…

ソニーエンジニアリング株式会社 [電気設計] ~回路設計/デジタル回路、ア…

株式会社ZMP エレキエンジニア◆ロボット製品に携わる◆平均残業20時間…

SIerって本当にヤバいの? ひろゆきが語る、業界ごと沈まな...

4年後の「Badシナリオ」から考える、2020年代も重宝され...

シリコンバレーで働いて気付いた「技術力向上」だけに固執するエ...

英文メールでよく見る「略語」の意味は? 海外エンジニアに聞い...

「視点を変えればエンジニアのキャリアは激変する」LIFULL...

エンジニア転職フェア開催 IT&モノづくりエンジニアを求める優良企業が大集結!