株式会社電通国際情報サービス シニアITプロフェッショナル
比嘉康雄(ひが やすを)氏
国産OSS『Seasar』シリーズの開発などを主導してきた、アルファギークの一人。電通国際情報サービスに勤めるかたわら、さまざまな技術カンファレンス、コミュニティーに招かれて講演活動も行っている。個人ブログ『ひがやすをblog』で、SI業界や各種エンジニアへの提言も行っている
腕一本で新しいものを生み出すプログラマーという仕事。
これほど面白い仕事はないという人がいる一方で、時にデスマ地獄のような負のスパイラルに巻き込まれてしまうことも…。
プログラマー人生をより良いものにしていくには何が必要か?
スーパーPG二人が語り尽くす!
株式会社電通国際情報サービス シニアITプロフェッショナル
比嘉康雄(ひが やすを)氏
国産OSS『Seasar』シリーズの開発などを主導してきた、アルファギークの一人。電通国際情報サービスに勤めるかたわら、さまざまな技術カンファレンス、コミュニティーに招かれて講演活動も行っている。個人ブログ『ひがやすをblog』で、SI業界や各種エンジニアへの提言も行っている
タワーズ・クエスト株式会社 プログラマー 兼 取締役社長
和田卓人氏
テスト駆動開発(以下、TDD)の普及役として知られる。学生時代、オブジェクト指向分析/設計に傾倒。その後、ソフトウエアパターンやXP(eXtreme Programing)を実践する人たちと出会い、TDDの誕生を知る。現在は講演活動やハンズオンイベントを開催しながらTDDの普及運動を行う
ひが はい。ただ、話す内容は前回の続きになりますけど。
ひが そうじゃなくて、前回の「恋愛編」でもお話ししたXP(エクストリーム・プログラミング)やYAGNI(ヤグニ)との出合いで、仕事のやり方も大きく変わった、という意味です。
和田 良かった。ちょっと焦りました(笑)。
ひが 今お話ししたように、スキルが上がったというよりも、仕事のやり方が変わったという言い方が正しいですね。前回もお話ししたように、就職してからの僕は、私生活なんかどうでもよくなるくらい仕事に没頭していた。じゃあ、仕事はすごく順調だったのかといえば、案外そうじゃなかった。
和田 そうなんですか。
ひが 例えば、今書いているコードは良いコードなのだろうか?、ダメなコードを書いているつもりはないけど、良いコードを書いているという実感も持てない、そんな不安な気持ちをいつも持っていました。
和田 すごくよく分かります。
ひが それが、XPの考え方を知ったことで、悩まなくなったんだよね。
和田 僕も、プログラマーとして変わるきっかけになったのは、XPやテスト自動化の発想に触れたころからです。それまでは、今思えば頭でっかちな設計をしていたと思います。あれこれ事前に考えて、万全を期したつもりでいざコーディングしてみたら、すぐにバグが発生してガッカリ……みたいなことを繰り返していました。
ひが そういうプログラマーって、実はたくさんいるよね。理想主義的というか。ただ、和田さんは(マーティン・)ファウラーを知って変わった。そうだよね?
和田 ええ。著書『アナリシスパターン』などを執筆して、オブジェクト指向設計の大家だったファウラー自身が、XPと出合ってからけっこう考え方を変えましたからね。僕もその影響はすごく受けています。
ひが プログラマーにとってのスキルアップって、良いコードが書けるようになることだと思うんですね。でも、「良いコード=完ぺきなコード」だと考えると負けなんですよ。完ぺきなコードなんてどこにも存在しない。青い鳥を探しているようなものです。
ひが そもそも良いコードか悪いコードかで悩むこと自体がナンセンス。必要最小限の機能が満たされていて、テストされているコードならそれで十分。間違いが見つかればすぐに修正できるようになっていれば良い。完ぺきなコードを求める必要なんかないんです。
和田 確かにそうですね。わたしも以前は「世の中には『完ぺきなコード』があるはずだ」と信じていましたが、そんなものはないのかもと思ったことが、一皮むけるきっかけだった気がします。
ひが プログラマーになりたてのころって、動くコードは書けるけど、さっきも話したようにそれが「良いコード」かどうかの判断軸がなくってあれこれ考えたり、勉強したりするじゃない。でも、YAGNIの思想に触れて、書くコードの良しあしで悩まなくなってからは、まずはやってみようと発想転換できるようになった。
和田 その発想転換は大事ですよね。
ひが 僕は悩んで立ち止まっちゃうこと自体が、「負けている」って思っちゃうタイプだからね。自分の強みは、YAGNIに導かれた圧倒的な行動力。行動したことで得たラッキーがたくさんある。『Seasar』のようなオープンソースプロジェクトをやることになったのも、そのうちの一つです。
和田 発想転換という意味では、わたしの場合、リファクタリングを知ったことも大きな転機になりました。バージョン管理やテストコードがあれば、後からコードをいじっても良いんだ! と。それまで持っていた「コーディングは一発で成功しなければならない」という強迫観念から脱することができました。
ひが これはプログラマーに限った話じゃないかもしれないけど、正解を求めるためにあれこれアクションしてみた結果、「正解はない」と知ることこそが一番のスキルアップなんだよね。
ひが そういうことだと思います。行動しなければ何も変わらないから。
和田 悩んだり、「答えを探してるんです」と言うものの、行動できていないというパターンの人って案外多い気がします。例えば、プログラミングの最新知識を学ぶために勉強会という場があるのに、「もっと知識がないと勉強会に参加しづらい」と二の足を踏んでしまうような。
ひが うん、それってナンセンスだよね。
和田 エンジニアである以上、誰もがインプットをしていると思うんですよ。いろんな形で。でも、仕入れた情報のうち、どれが自分の悩みを解決してくれるかは、アウトプットしてみないと分かりません。社外のプログラマーと「こうしたら良いんじゃないか」と議論したり、具体的にコードで書き始めてしまったり。そうやってアウトプットすることで、目の前が開けていくと思うんです。
NEW!
NEW!
タグ