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

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

タグ : SE, SI, TDD, XP, YAGNI, ひがやすを, コーディング, スキルアップ, スペシャリスト, スーパーギーク, テスト駆動開発, プログラマー, プログラミング, マーティン・ファウラー, リファクタリング, 和田卓人, 業界有名人 公開

 
プロフィール

株式会社電通国際情報サービス シニア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回【シャイ克服編】『ガラスの仮面』ごっこで恋も仕事も充実!




人気のタグ
業界有名人 スタートアップ 開発 SE 転職 エンジニア プログラマー Web スキルアップ ソーシャル アプリ シリコンバレー キャリア プログラミング Android 起業 えふしん スマートフォン アプリ開発 SIer 技術者 UI btrax Webサービス クラウド Apple スペシャリスト CTO Twitter Brandon K. Hill ギーク 英語 村上福之 Facebook Google デザイン IoT SNS ツイキャス 世良耕太 モイめし IT 30代 採用 赤松洋介 コーディング 20代 UX 勉強会 プロジェクトマネジメント Ruby ITイベント Webエンジニア 中島聡 ビッグデータ 法林浩之 ウエアラブル iOS 五十嵐悠紀 LINE ドワンゴ ひがやすを ロボット 受託開発 モノづくり IT業界 コミュニケーション イノベーション ハードウエア MAKERS tips ゲーム 女性 ソーシャルゲーム Webアプリ SI インフラ iPhone 女性技術者 高須正和 マイクロソフト 研究者 UI/UX トヨタ 自動車 ノウハウ チームラボ 息抜き システム ソニー プラットフォーム Java メイカームーブメント オープンソース 和田卓人 エンジン グローバル 開発者 教育 イベント サイバーエージェント ソフトウェア 女子会 コミュニティ メーカー 家入一真 スーパーギーク 増井雄一郎 GitHub 人工知能 IPA 40代 日産 テスト駆動開発 ソフトウエア 音楽 TDD ニュース モバイル PHP TechLION

タグ一覧を見る