お仕事ではなくて趣味である 且つ 初心者的な状況 なのだとして想定して回答します.
開発計画の確立:自作プログラムを開発する際の機能の洗い出しを行い、計画的に開発を進めたい。
最初から必要な事柄を全て事細かに洗い出そうとかしなくても良いと思います.
(最初から全貌が見えていないからこそ困っているのでしょうから,無理な話です)
最初は 明らかにわかっているような 大まかな事柄だけの TODO リストでも作ればいいです.
ものすごーくざっくりしていて良いです.
で,以降は,実際に作業をしていると「ああ,これも必要だなぁ」とかいうのが出てくるので,その段階でそれを項目として TODO に追加していってください.
- TODO リストは入れ子状にでもすると見やすいでしょう.項目をどんどん細分化なりしていけば良いです.
- テキストファイルで十分です.
最も編集しやすく,スピーディに閲覧でき,データの持ち運び方法も自明です.ファイルを小分けにしたり逆に統合したりするのに困ることもありません.
ソースコードと一緒にリポジトリの管理物に加えても良いでしょう.
- 記述フォーマットとかに過度に拘らないようにしましょう.【「自分が」見てわかること】だけが目的の物です.
markdown みたいな形で書いておくと「何かのソフトに食わせると より見やすい表示が得られる」という利点があったりしますが,Optional な話です.
以下は,すごろくみたいなのを作りかけている状況での TODOリストのようなもの のイメージです.
* タイトル画面
* ※未定:プレイヤーの人数をここで決定? →とりあえず現在は仮実装として定数にしている.
* ゲームプレイ
* 盤面とコマの表示
* (仮)とりあえず十分小さい盤面なら表示できている.
* ※課題:盤面が大きい場合はスクロール処理が必要そう.
* さいころをふる処理
* [Done] 乱数で 1~6 を決める
* さいころを振るアニメーションをつける
* 指定した歩数だけ進む処理
* [Done] 指定された歩数分だけ座標データを更新
* 進んでいくのをアニメーション表示する
* 止まったマス次第で何かが起こる
* (仮) とりあえず「振り出しに戻る」だけを簡易的に実装
* ゴール判定
* [Done] 手番を次の人に回す処理
* ゲーム終了後(誰かがゴールした後)の状態
* その他
* アプリケーションにアイコンをつける
* コマや盤面の絵をちゃんと描いたものに差し替える
* (要らないかも?)盤面データを外部ファイルから読込む
とりあえず中核であろう ゲームプレイ
の部分から作っていっている状況をイメージしました.
以下のような状況です.どうでしょう? 上記の TODO(のようなもの) の例から想像つくでしょうか?
- タイトル画面とか無いので,起動するといきなりゲームが開始される.
- さいころを振ってマスを移動していく,という基礎の部分はできていそう.
- ただしアニメーション表示関係が無さそうなので,「一瞬で」出目が決定されたり,コマが移動先にワープしたりしている感じ.
- ゴール判定が無いので,コマをどんどん進めていくとどこかで問題がおきるかも?
タイトル画面
や ゲーム終了後
については,考えること自体を保留しています.すなわち「そういうのがいずれ必要だろう.中身は知らんけど」という状態ですが,ゲームプレイ
の部分を作っていくことには何の支障もありません.
「未定」は立派な進捗状態のひとつです.「未定」だということが示されていることに意味があるでしょう.きっと.
(「曖昧になっている部分をちゃんと考えること」自体も TODO 項目の1つなのだ,と捉えてはどうでしょう)
進捗管理の工夫:数日間作業を中断してもスムーズに再開できる方法を確立したい。
上記の TODO のようなもの に加えて「コミットログに中断状況を分かるように書く」くらいでどうにかなると思います.
※世の中にはコミットログの書き方に一家言お持ちの方々がおられる様子ですが,その人たちのために書くわけじゃないので「コミットログとはこうあるべき」みたいな話は考えなくてよいです.自分のための記録なのですから,自分の記憶の助けになる文章を好きなだけ書きましょう.
あとは,コード内に「ここの処理がまだない」みたいなコメントを書いておくとかしていれば,そんなに迷子にならないのではないでしょうか.
失敗の記録と活用:試行錯誤の過程を記録し、同じミスを繰り返さないようにしたい。
これはもう,開発日記でも書くとかすればどうでしょう.
「こんなことしてたら こんなことになっちゃいましたw で,仕方ないからこうしておいたけども,どうのこうの…」みたいなやつ.
※補足:「リポジトリ」とか「コミットログ」とかいうのは,バージョン管理ソフトの用語です.