今後の予定こんにちは、ともです。週末の1日を友人と個人開発の日として開発をしています。アジャイル開発を取り入れながら作業しており、2019/10/20から2020/01/26まで1スプリントとして開発を行いました。どのような作業をしているかについて書きたいと思います。作りたい物を決める所持している本の最新巻は何か管理するアプリを作成しています。本屋さんで本を買うときに持っている本を買ってしまうことはありませんか?そのようなことあるよね、という話になって所持している本を管理するアプリを作成することにしました。この開発で成し遂げたいことは何か話し合った所、「スキルアップする」ことを目標においたため、自分たちが欲しいと思うアプリ(ニーズは度外視)にしました。雰囲気アジャイルで作るアジャイル開発に興味があって、アジャイル開発のScrumのようにスプリント毎に分けて作業しました。動く物を作ることを最優先にしようと心がけてコードを常にアップデートする変化を受け入れるプランニングポーカーで見積もるスプリントレトロスペクティブで振り返るなどをやってみました。実際には動く物最優先という訳ではなく、ウォータフォールのように設計してから実装になってしまいましたが。個人開発は「自由に興味があることに挑戦する場所」として位置付けてやっています。(笑)GitHubでイシューを洗い出すGitHubにIssueを書き出しました。イシューの書き出し方は下記です。機能を作成リファクタリング成果物を作成する度に、チーム(2人)でコードレビューを行います。画面遷移図を作成するCacooで画面遷移図を作成します。画面遷移を作成し、チームで認識合わせをしていきます。その際に、URLも一緒決めておきます。画面遷移図を作成することにより、下記の2つを行うことができます。気づかなかったことに気づくことができるチームで認識を合わせることができるユーザが使いやすいように出来る限り画面遷移せずにしたいよね、この場合はどうする?など議論が活発化します。テーブル定義を作成するテーブルにどのようなカラムを持たせるか、外部キー制約はどうするかについて話し合います。スプリント1で作成する機能以外に今後を見据えて定義しています。ユーザ名は「UNIQUE」にするか?ログインIDは「名前」でするか、「メールアドレス」ですか?ユーザの退会は論理削除?物理削除?論理削除なら、どのカラムでする?友人は会社でDBを扱っているため彼のアドバイスはとても助かりました。ワイヤーフレームを作成するプロのコーダーさんに言わせれば雑すぎるものですが、画面に対する認識合わせのためにワイヤーフレームを作成します。本来はマージン等を決めておく必要がありますが、その知識がないため簡単なラフ画としました。今後はワイヤーも綺麗に作りたいです。チームのHTMLのコーディング力がまだ低いため、実装しやすさをまずは重視しています。私たちはまずリリース・運用の経験を積みたいので、少し手を抜いてしまったかもしれません。私たちはIssueを上記のように書くようにしています。(まだ不十分かもしれませんが)目的(なぜその機能を作成するのか)機能(何を作成するのか)完了条件(イシューをCloseする条件)を書くようにしています。機能についてはもっと細かく書いてもいいですが、まずは実装してみて、コードレビュー時におかしな実装であれば取り除くようにしています。Labelを作るIssueにつけるラベルはこのようになりました。Issueを出していったら自然と上記のようになりました。今後、また整理するかもしれません。マイルストーンを作るマイルストーンを上記のように設定しました。1スプリント・1マイルストーンとしています。スプリント1ではユーザ管理はせず、1ユーザだけを想定した開発を行いました。HTMLの作成→機能の作成HTMLや機能の作成のブランチを切って、各人で作業を始めます。HTMLや機能の作成後は必ずIssueの完了条件を確認します。全てのIssueに対してコードレビューはしています。レビュー→コーディング→レビュー・・・のような作業の流れになります。(大体一度のレビューで終わりますが)プランニングポーカー1スプリントが終わった段階で、プランニングポーカをしてIssueごとに重みを付けました。本来は初めにやるものなんでしょうけど、最終日にやってみることにしました。プランニングポーカーには次のサイトを利用しています。今後の予定スプリント2で作成した物をリリースする予定です。作業はスプリント1でやった手順と同様の手順ですね。(スプリント2では、プランニングポーカーはIssue洗い出し後にします)今回のスプリントでTeamビルディングGitHubGolang(開発しているアプリのサーバサイドの言語)について少し詳しく慣れました。今後は、デプロイに向けてAWSの学習を行っていきます。今年中にスマホアプリ版でもリリースする予定なので少しずつスキルアップしていきたいです。会社での経験を個人開発にも生かし、個人開発の経験を仕事にも生かしていきたいです。se-tomoとものブログ【Java】インタフェースのstaticメソッドとdefaultメソッド【働き方改革におすすめ】万能タスク管理ツール「Hignull(ヒグヌル)...見習いエンジニアともSIerでSEとして働いています。勉強したことを記事にまとめます。