エンジニアtype - エンジニアのシゴト人生を考えるWebマガジン
  • TOP
  • キーパーソン
  • 旬ネタ
  • コラボ
  • ノウハウ
  • 女子部
  • 人生論
  • 転職Topics

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

2011/10/11公開

 


プロフィール

株式会社電通国際情報サービス シニアITプロフェッショナル
比嘉康雄(ひが やすを)氏

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

プロフィール

タワーズ・クエスト株式会社 プログラマー 兼 取締役社長
和田卓人氏

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


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

 

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

 

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

 

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

 

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

 

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

 

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

 

和田 そうなんですか。

 

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

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

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

 

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

 

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

 

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

 

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

 

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

 

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

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

 

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

 

―― なるほど。

 

「完ぺきなコードなんてない」と熱く語るひが氏に、強く同調する和田氏。2人の言う「完ぺきなコード」とは?

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

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

 

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

 

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

 

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

 

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

 

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

和田氏はプログラムを覚え始めの学生時代、「最初に書くコードで失敗は許されない」と考えていた

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

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

 

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

 

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

 

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

 

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

 

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

 

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

(スキル向上編 2/2に続く)

1  | 

>> 【スキル向上編 2/2】 "孤独な作業"じゃ腕前は磨けない

 

 

<過去のひがやすを×和田卓人対談はコチラ>

第1回【恋愛編】 技術屋の「公平さ」は恋の敵!?

第3回【ダイエット編】歩く習慣が、体もコードも軽くする!!

第4回【シャイ克服編】『ガラスの仮面』ごっこで恋も仕事も充実!


  • この記事についてつぶやく
  • はてなブックマークに登録

 

この記事を読んだ人へのオススメ記事




RANKING
  • WEEKLY



    • 年収診断テスト
    • エンジニアの転職@type
    • 転職は@type
    • typeの人材紹介
    • typeのIT派遣