概要
妻子持ちの凡人プログラマが限られた時間で行う趣味の開発について
ターゲット
仕事も大事だけど家庭も大事にしたい。でも趣味の開発もしたいソフトウェア開発者さん。
元々実力が高い方はすでに実践済の内容であると思われるため、あまり参考にならないと思います。
ライブラリの作成などに関して、不慣れで、試行錯誤している段階の方向けです。
この記事をまとめる動機
業務外の限られた時間で大小さまざまなソフトウェアを作りたい。
仕事も家庭もあるので、趣味の開発のためにまとまった時間が確保できるとは限らない。
そのため、特に大きめのソフトウェアを作る機会が少なくなりがち。
現状の問題点
大きなソフトウェアを作る際に、個別の機能を別々の小さなタスクにして、
地道に開発することもできますが、開発が長引いたり間が空いたりすると
- 成果物に対する熱が冷める
- 全体の設計思想が頭から離れる
などの問題が発生してしまいます。
小さな部品を使った開発
小さいライブラリ
小さなライブラリは少ない時間で作成できる。
小さな単一責務のライブラリは流用しやすい。
大きなソフトウェア
大きなソフトウェアをゼロから作るのは時間の確保が難しい。
しかし、大きなソフトウェアが小さなライブラリの
組み合わせからなるのであれば、少ない時間で各部品を作り、
少ない時間で組み立てることが可能になる。
まとめ
いざまとめてみると、当たり前の内容ですし、
Web の情報や書籍などでも言い尽くされてきたものだと思います。
ただ、実際にそれを適切に実行できる設計力を持った人がどのくらいいるか?
小さな部品がどんどん増えると、
組み合わせで解決できる可能性が高まり、
新たなものを生み出すコストもどんどん減ります。
優秀なエンジニアの方々の成果物を見ると、
「こんなすごいものをたったの 1 日で作ったの?」
みたいな場面に出くわすことがあると思いますが、
中身を除くと既存ライブラリ(多くの自作ライブラリを含む)の
組み合わせで実装されていたりとか
当たり前のことを当たり前に書いただけですが、
実際に自分ができているかというと、そうでもないわけです。
梃、利用します。
外部資料
Strategic Choice はお気に入りのブログです。 主に有名書籍の内容をとても分かりやすくまとめてあります。