完全に実力不足な理系大学生からの成長ブログ

プログラミング能力皆無、でも頑張ります。

知らない言語でアジャイル開発のサイクルにかき混ぜられた

お久しぶりです。
よりです。

本記事は下記のアドベントカレンダーに記事になります。
それにしても4回目ですか。(記事書くのは3回目)
すごい。

adventar.org

ほぼ一年ぶりの更新となりますが、
今回はアジャイル開発についての記事を書きます。

ていうかアジャイル開発って何?
っていう人のために僕の認識でアジャイル開発をさらっと書いてから、
自分の話をして行きたいと思います。

アジャイル開発とは

大まかな説明

さぁ、知識がクソほどしかない僕の説明なので3行でいうと?
みたいな感じでいいっすかね?笑

アジャイル開発とは

  1. 迅速かつ適応的に
  2. ソフトウェア開発を行える
  3. 軽量的な開発手法

つまりは「早く柔軟に」ソフトウェアを作っちゃおう!
みたいな感じです。

ウォーターフォールアジャイル

IT系の人ならわかると思いますけど、
アジャイルってウォーターフォールと比較されがちですよね。
一応ウォーターフォールとの大きな違いについてざっくりと説明しておきます。

ウォーターフォールとは

ウォーターフォールの開発は以下の流れに沿って順番に開発のフェーズが進んで行きます。
要件定義 → 設計 → 実装 → テスト → リリース

このような流れにすることで、
最初に話し合って決めた要件通りにきっちりかっちりとシステムが作られて行くわけです。
もちろん要件定義・設計のフェーズで話し合った内容をドキュメントにまとめて、
その通りに実装が進められます。(ドキュメントが証拠見たいな感じになる)
そしてテストのフェーズでドキュメント通りの機能や画面ができているかを確認します。
この時ドキュメント通りでない場合は不具合として報告されるって感じですね。

僕が体験したアジャイル

アジャイル開発ってやり方が決まってるわけではないので僕が体験した
アジャイル開発についてここに記載したいと思います。

まず、要件定義や設計の段階でそこまで詳細にドキュメントを作成しませんでした。
もちろん必要なものは作りますが、最低限といった感じです。
クラスがどんなフィールドやメソッドを持っているかとか、細かくドキュメントには起こしません。
こんなクラスがある、そのクラスの責務は?くらいの粒度ですかね。

実装をして画面やら操作感を作って見てから一度ユーザーに見てもらいます。
触ってもらってユーザーと話し合いながらこうしようああしようと意見を出して
いいものは取り入れていくといった感じでした。

打ち合わせを1週間に1回程度することでユーザーと認識をすり合わせながらシステムが
作り上げられていきます。

ウォーターフォールアジャイルの違い

さっきから書いてますけど僕が最も違うと感じているのは柔軟性です。
一度決まったものを決まった通りに作るのではなく、
お客様の要望を汲み取りながら、開発を進めていく。

スクラム

スクラムってのは僕が体験したアジャイル開発の手法です。
どんなものかというと、

  1. 優先順位ごとに機能を作る
  2. 期間をスプリントという単位で区切り、スプリントごとに計画を立てる
  3. プロジェクト内では毎日ミーティングを行い、メンバー同士で状況を共有

スクラム手法はチームでのコミュニケーションを最重要とします。
毎日チームで課題確認しますし、近くに座って開発するのでわからないことはすぐに共有、解決することができます。

実際にやって思ったこと

javaで業務システムを開発しました。
次にRuby on Railsを使って業務システムを作りました。

業務システムしか作ってないじゃん!!



まぁそうなんですよねー笑
でもスクラム形式の開発は楽しかったです。
チームで円滑にコミュニケーション取れてれば、
開発者同士仲良くなりますし。
お客様と話しながら作るので、
できてから「こんなはずじゃない・・・」て思われることもないです。

こんな開発形態で今後もシステム作りたいですねー

最後めっちゃ雑になりましたが、
箱根旅行中なので許してください笑

最後に

最近お酒飲むの大好きなので飲みに誘ってね!!