SSブログ

テスト駆動開発の経験(6) [プログラマー現役続行]

4年ほど前に「テスト駆動開発の経験」と題して記事を書いています。
1978年に大学でプログラミングを始めてから、(「テスト駆動開発の経験(1)」に書いてあるように)2003年まで、私自身はテスト駆動開発を経験したことがありませんでした。

1990年代までのソフトウェア業界では、自動実行するテストを書いて資産として残していく習慣はありませんでした。手作業によるテストと目視確認というのが普通に行われていたのがソフトウェアのテストでした。テストコードが書かれたとしても、テストコードを手作業で実行し、目視確認が終わったら捨てるということが行われていました。実際、同じようなことを、Martin Fowler、Robert Martin、Joshua Blochが、それぞれ『リファクタリング』、『Clean Code』、『Coders at Work プログラミングの技をめぐる探求』の中で述べています。

テスト駆動開発は、それ以前のソフトウェア開発とはやり方が異なっていたために、地道に意識した努力を行っていく必要がありました。主なものを列挙すると以下の通りです。
  • 「テストファースト」で先にテストコードを書く習慣。そのためには、事前にAPIをきちんと設計する習慣
  • 不具合が発生した場合に、必ず再現テストを書いてから修正する習慣
  • CIが失敗していたら、その調査に最優先で取り組む習慣
2003年に始めたテスト駆動開発は、対象が(コピー、プリンター、FAXなどが搭載されている)デジタル複合機のコントローラソフトウェアであり、処理が非常に複雑なソフトウェアでした。私の経験から、デジタル複合機で最も複雑な実装は、コピーやプリントを行っているときの「割り込み」機能です。そして、「割り込み」は今日ではおそらく誰も使わない機能です。

メルペイ社でbackendエンジニアとして行っているソフトウェア開発は、もちろんテスト駆動開発で行っています。私自身、それ以外の手法は考えられません。今から考えると、1990年代まで、手作業でテストを行っていたことが信じられない感じです。

コメント(0) 

総閲覧数が累計で700万を超えました [総閲覧数]

スクリーンショット 2019-01-18 6.09.41.png
総閲覧数が700万を超えました。600万から700万は13か月でした。ブログを始めたのが2004年12月13日からですので、ほぼ14年が経過したことになります。

コメント(1) 

『プログラマー現役続行』から11年 [プログラマー現役続行]

プログラマー現役続行 (技評SE新書)

プログラマー現役続行 (技評SE新書)

  • 作者: 柴田 芳樹
  • 出版社/メーカー: 技術評論社
  • 発売日: 2007/09
  • メディア: 新書

技術評論社の雑誌に書いた複数の記事をもとに、加筆・修正し、再構成して書籍にまとめて出版したのが2007年9月です。私がまだ47歳のときです。当時は富士ゼロックス情報システムで、開発部の部長をしながら同時に毎日C++でマルチスレッドプログラミングを行っていました。

「現役続行に必要な七つの力」として次の項目を挙げて解説しています。
  1. 論理思考力
  2. 読みやすいコードを書く力
  3. 継続学習力
  4. コンピュータサイエンスの基礎力
  5. 朝型力
  6. コミュニケーション力
  7. 英語力
現在は59歳で、今年の11月には60歳になります。1978年4月に九州工業大学情報工学科へ入学して、初めてコンピュータに触れ、Fortranでプログラミングを学んでから40年の歳月が流れました。

今日、上記の7つの力に追加するとしたら、「健康力」かもしれません。つまり、健康であることです。この歳になってくると、体の色々なところに問題が発生します。私自身も2018年は、体がガタガタという状態でした。痛風、両肩同時の五十肩、それに腰部脊柱管狭窄症と大変な一年でした。まだ、体はもとに戻っている訳ではありませんが、かなりよくなってはいます。

2017年8月にリコーを退職してからは、日々の仕事は自分でプログラミングを行うソフトウェア開発が中心となっています。メルペイでも、あるマイクロサービスの開発をGo言語で毎日行っています。ただ、『プログラマー現役続行』を書いた頃と比べると、かなり規則正しい生活を送っています。その頃は次のような生活を送っていました。
  • 残業や休日出勤してのプログラミング(開発部の部長でしたが、自分でもかなりプログラミングしていました)。
  • 週に数回の飲み会(とにかく部下とよく飲みに行っていました)
今は、全く違って
  • 残業せずに勤務時間内にできるだけ高い生産性を意識しながらプログラミングしています
  • 仕事の後の飲み会は不参加です
通勤時間が長いため7時30分頃に出社して、16時過ぎに退社しているのですが、それでも朝、家を出てから帰宅するまでに約13時間が経過しています。したがって、残業することはほとんどありません。仕事の後の飲み会は、だいたい19時か19時30分から開始なので、出席していたら、帰宅は翌日の時間になってしまうため、原則不参加です。金曜日に行っている技術教育(Go言語研修『Effective Java 第3版』研修)の後の懇親会や横浜Go読書会の後の懇親会は参加するので、全く飲んでいない訳ではありません。

今年はこの生活パターンを送りながら、仕事でプログラミングしながら健康で60歳を迎えられればと思っています。ちなみに、定年は65歳です。

コメント(0)