はじめに
ソフトウェアデザイン2024年10月号を読んだ感想です。
著者の伊藤淳一さんが働いている株式会社ソニックガーデンでは、納品のない受託開発という事業をやっています。タイトルに目が惹かれたのと、ドキュメントを作らない理由が興味深かったので皆さんに共有できれば、と思い書いています。
伊藤淳一さんが書かれたRubyの技術書「プロを目指す人のためのRuby入門」もわかりやすくてすごくお世話になったのでぜひ読んでみてください!
納品のない受託開発って?
多くの人がイメージする一般的な受託開発と異なり、継続的に週単位での打ち合わせと開発・リリースや運用保守を行う開発プロセスのことで、詳しくはソニックガーデンのコーポレートサイトを見ると良いかと思います。
なぜドキュメントを作らないのか
いくつか理由があり、その中でも一番の理由はドキュメントよりもコードを正としているからということでした。シンプルにかっこいい理由ですね。また、他にもプロダクトの設計・開発・運用・保守を同じチームで行うため引き継ぎが発生しない、開発ドキュメントを最初に作らず毎週お客さんが必要な機能を柔軟かつ迅速に開発するソニックガーデンのビジネスモデルが「コードがドキュメント」という開発スタイルを可能にしているとのことでした。もっと具体的にどのようなことをすればドキュメントから解放されるか、というのも記事に書いてありました↓
「コードがドキュメント」を地で行くには
以下の他にも書いてありましたが、個人的に印象に残った理由は
- 開発者全員がコードを読み書きできる
- 当然、仕様や設計だけでなくコードを書ける・読めるプログラマーのみの環境であることが必要とのことでした。
- きれいなコードが書ける
- 開発スピードが早くても他の人が読めないコードでは、ドキュメントとして意味をなさないということでした。確かに...。
- ソニックガーデンでは「コードレビューで学ぶ Ruby on Rails」でも綺麗なRailsのコードを書くための書籍を出版していて、個人的に劇的にコードの可読性を上げてくれた一冊だったので読んでみて欲しいです。
- 採用と育成に時間をかける
- 現場に参加するハードルを下げず、スキルの高い開発者だけを集めてチームを作れば「コードがドキュメント」を地でいくスタイルが実現できるとのこと。そりゃあそうだと思いつつソニックガーデンでは本当に採用に時間をかけて優秀なプログラマーのみ採用したり、育成を通して習熟してから現場入りさせたりとそのための取り組みがされているとのこと。最近では徒弟制度を採用して育成の方式を再発明しているとのこと。
ソニックガーデンの徒弟制度
ドキュメントを書く場合もあること
- README
- ER図
- 外部向けのAPIドキュメント
など、どうしても必要なドキュメントは作成することもある、とのことでした。本当に必要最低限のドキュメントで開発を行っているんですね!
最後に
他にもコードをタスク管理ツールとgitを使って補足情報を残すやり方など非常に勉強になりました。自分も記事の内容を参考に最低限のドキュメントで開発をしていけるように成長していきたいと思いました。スキルの高いプログラマーになるとコードだけで意思疎通できるのか、と学習のモチベーションになりました。