プログラミング エンジニア TECH CAMP(テックキャンプ) プログラミングスクール プログラミングスクール体験記

【テックキャンプ 】チーム開発のアピールポイント〜TECH CAMP 体験記〜

TECH CAMP60日

どうも、てぃかしです。テックキャンプ (旧テックエキスパート)の60日後の経過報告です。(当時は「テックエキスパート」という名称でした。)

今回の記事では、テックキャンプ(TECH CAMP)のチーム開発で得られる知識や技術、チーム開発の流れなどについて解説します。

チーム開発の経験があると、エンジニア転職時にアピールができます。

また、実務に入れば、チーム開発になるので、チーム開発がどのようなものなのかは知っておくべきです。

チーム開発に入るまでの学習については下記の記事をご参考ください。

前回の記事はこちら

TECH CAMP チーム開発
【テックキャンプ】チーム開発へ! ポートフォリオ・個人アプリは何作った?

どうも、てぃかしです。テックキャンプ (旧テックエキスパート)の50日後の経過報告です。(当時は「テックエキスパート」という名称でした。) いよいよチーム開発がスタートします。 チームの決まり方やチー ...

続きを見る

------------------------------

〜当サイト限定!最大2万円分お得!〜

紹介コード【m0t2ki】を入力して、TECH CAMP エンジニア転職 or デザイナー 転職を受講される方は、1万円OFF。無料カウンセリング当日のお申し込みの場合は、さらに1万円OFFとなります。「TECH CAMP プログラミング教養」を受講される方は受講料が5%OFFとなります。

テックキャンプ エンジニア転職はこちら

テックキャンプ デザイナー転職はこちら

テックキャンプ プログラミング教養はこちら

紹介コード:m0t2ki
※紹介コードの 0(ゼロ)の入力間違いにご注意ください。o(オー)ではなく、0(ゼロ)です。コピーして貼り付け推奨。

------------------------------

今回は、60日で学んだこと、特にチーム開発について書いていきます。

この記事を読めば、初心者の方でもチーム開発がどんな感じで進められるのかを理解することができます。

今回の内容は下記の通りです。

チーム開発で得られるもの

チーム開発を経験することで、今後の仕事に活かすことができ、就職、転職を考えている人は、その経験はアピールポイントの一つになります。

テックキャンプのチーム開発の目的は3つあります。

①ポートフォリオを作成するため

ポートフォリオは制作物を他人に見せることができるツールですが、それは就職でも、フリーランス活動でも技術力を示すものとなります。

②チーム開発の経験を積むため

一人の時は好き勝手に開発をして、Githubも好き勝手使っていましたが、チーム開発では使い方を間違えれば、チームに迷惑がかかります。

組織で開発をする人は必須の経験だと言えます。

③困難に立ち向かう経験をするため

当たり前のことですが、いざわからない問題が出てくると逃げ出したくなります。

それを乗り越えると、自分ってやればできるじゃんという自信に繋がって、次、そういう逃げ出したくなるような問題が出てきても大丈夫だと思えます。

また、困難が立ちはだかった時にチームのメンバーとコミュニケーションを取って、乗り越えることも仕事では求められるので、実務に入る前からその練習をしておくと良いでしょう。

エンジニアの良い質問の仕方

良い質問

チーム開発をする際、質問の仕方は気をつけましょう。

メンターに質問するときもそうですが、チームの誰かに質問、相談するときは、自分が今直面している問題をわかりやすく言語化して、伝えなければいけません。

ただ、「エラーが出た、見て」と言われても、今どういう状況かをヒアリングする必要があります。

具体的にどのように質問するかは、フォーマットに文章にまとめてから相手に質問すると良いです。

例えば、下記のようにまとめて質問をするようにすると良いでしょう。

■解決したいこと

エラー文や、今起こっているトラブルを端的に書く

■自力で調べた内容

検索エンジンを用いた際の検索ワードについてや読んだ記事のリンクを書く

■仮説と検証作業の結果

検索して得た情報から立てた仮説と、その検証作業による結果を書く

自分の状況を説明して、自力でどんなことをしたかを伝えればいいです。このフォーマットはどの仕事でも通用するものだと思います。

チームの時間は自分の時間でもあります。下手な質問で時間を無駄にしないように時間を大切に使いましょう。

アジャイル開発とは

アジャイル開発は、一度にまとめてでは無く、少しずつ確認をはさみながら開発を進めていくことが特徴です。

利用者の反応や、関係者からの継続的なレビューを得ながら、計画を調整しつつ進めていきます。

今回は、4週間を1週間ごとの期間に区切って、ミーティング、レビュー、反省などを行なっていきます。

アジャイル開発におけるその期間、周期のことを「スプリント」といって、

スプリントごとのミーティングを、「スプリント計画ミーティング」と呼びます。

スプリント計画ミーティングの目的は、具体的にどれくらい時間がかかるかを見積もったり、作業は何をもって完了とするかを合意することです。

スプリントごとのレビューを「スプリントレビュー」と呼びます。

スプリント計画ミーティングで決めたカードの「完了の定義」を確認します。今回はプロダクトオーナである、メンターにレビューしてもらいます。

そのレビューの後に、反省や施策の共有する場を、「スプリントレトロスペクティブ」 と呼びます。

ウォーターフォール開発とは

今回のテックキャンプでのチーム開発では行いませんが、アジャイル開発に対して、ウォーターフォール開発という開発手法があります。

初めに決めた要件を、ある期限までに完了する手法です。

アジャイル開発とウォーターフォール開発のメリット、デメリットをまとめると下記のようになります。

アジャイル ウォーターフォール
メリット 修正が簡単で仕様変更に柔軟に対応可能 開発計画がシンプルかつ、進捗の管理がしやすい
デメリット 進捗が把握しにくい 仕様変更に対応しにくい

チーム開発における「スクラム」

スクラム

続いて、チーム開発を語る上で外せない、スクラムについて話します。

スクラムは、チーム開発を進めるための手法の1つです。

リーダー・マネージャー主体ではなく、チームメンバー全員が主体性をもって、プロダクト完成に向けた責任を持つことが特徴です。

スクラムの流れ

スクラムの流れは大まかには下記の(1)〜(7)の流れとなります。

(1)アプリケーションの要件を決定

依頼者からヒアリングをして、どのようなアプリケーションを作成するのか決める。アジャイル開発においても大枠の要件定義は必須。

(2)開発の意図を、開発する人々が完全に把握する

何を達成するためにそのプロダクトを作るのかを把握する。目的と矛盾する機能や優先順位付けは排除することが求められるため、開発メンバー全員がこれを理解していることが重要。

(3)実装すべき作業を洗い出す

完成までに行うべき作業を洗いだすリスト化しておく

(4)作業の量を見積もる

上記作業のそれぞれにおける作業量を見積もる

(5)スプリントごとに実装する

スプリントの期間を設定し、スプリント開始時にスプリント計画ミーティングを行う

(6)スプリントの成果を発表する

スプリント計画で定めた実装が計画通りに終えられたかどうかチェックをする

(7)振り返りを行う

次の期間でより早く進めるための対策を立てる

以上です。

スクラムの役割

そして、スクラムにはこんな役割があり、今回はスクラムマスターを1人決めて、進めていきます。

  • プロダクトオーナー:プロダクトバックログの管理責任者
  • スクラムマスター:スクラムの調整役
  • 開発チームメンバー:実際に開発に携わる

ちなみ、スクラムマスターを経験させていただきました。

このスクラムで、毎日、スプリントでやると決めた範囲が本当に終わるかを精査する場を設けます。

これを「デイリースクラム」と呼びます。

モダンなIT企業で多用される便利ツール

続いて、チーム開発を円滑に進める上で便利なツールについて話します。

Slack

slack

Slack(スラック)は、便利なチームコミュニケーションツールです。

Slackを用いてコミュニケーションを図る企業も多いです。

今回は、チーム開発におけるコミュニケーションやGitHubの通知を受け取るためにチャンネルを作成しました。

Trello

trello

Trello(トレロ)とはタスク管理ツールです。

掲示板のような「ボード」と呼ばれるものの中に「リスト」という単位で各タスクを収納することができ、各タスクはリスト間を簡単に移動させることができます。

アジャイル開発のタスクの管理をすることも可能です。

実際に画面を見てみましょう。

Trelloのボードにあるカードには例えば、こんなことを記載します。

トレロ

trelloの準備ができたら、

メンバー間でアプリの雛形を共有します。具体的には下記のようなことをします。

  • 代表者一名がrails new(※)をして新規アプリケーションを立ち上げ
  • アプリケーションをGitの管理下に置いて、それをメンバーがコピーする

あとは先に書いた、アジャイル開発、スクラムの方法に乗っ取って開発を進めていきますが、その過程でコードレビューをする場面が出てきます。

※ rails new・・・railsプロジェクトを作成する時に使うコマンド

コードレビュー

最終課題では、

チーム内で相互にコードレビューを行う

→メンターにコードレビューを依頼する

の流れでレビューを行っていきます。

コードレビューとは、コードの誤りを検出・修正したり、コードの質を上げるためにソースコードの検査を行う作業のことです。

レビューと聞くと少し面倒と思う人もいるかもしれませんが、他人が書いたコードを読むのも勉強のうちだと思います。

コードレビューをする機会があればぜひ積極的に取り組むのが良いと思います。

実際にどういう流れでコードレビューをしていくかというと、こんな感じです。

  1. 依頼する人は、プルリクエストを作成する
  2. 依頼する人は、チャットなどでレビュアーに依頼を出す
  3. 依頼された人はレビューをする
  4. 依頼した人は、レビューに基づき修正を行う
  5. チーム内で合意がとれたら、依頼した人がマージをする

プルリクエストとは簡単に書くと、Githubで開発者のローカルでの変更を他の開発者に通知することです。

マージは、ものすごく簡単に書くと、追記や編集した内容をみんなが参照している大元のプログラムに更新することです。

コード解析ツール

あと、コードレビューを助けてくれる自動ツールもあります。

どんなツールがあるか、ちょっと紹介すると、

Rubocop(ルボコップ)はRubyの(静的)コード解析ツールです。

RuboCop

「インデントが揃っていない」 「無駄な改行・スペースがある」などの指摘をRubyStyleGuideに基づいて行ってくれます。

EslintはJavascriptの静的コード解析ツールです。

Eslint

Javascriptで書かれたコードを解析し、明らかなバグ・不適切なコーディングスタイルを指摘してくれます。

Siderはコードレビューツールを一括で導入できるサービスです。

Sider

Ruby、Javascript、Python、Goなど幅広い言語に対応しています。

SiderはGithubのリポジトリ毎に導入することができ、プルリクエストが作成されると自動でコードレビューを行ってくれます。

次回予告〜卒業後の進路について〜

次回で、チーム開発が終了し、学習が完了します。テックキャンプのサポートは続きますが、卒業後、どういった進路に進むかを決めなければいけません。

どんな進路があるのか?

次回の記事で書いていきます。

今回はここまで。次回は70日後の経過報告です。お楽しみに!

TECH CAMPの次の記事はこちら

テックキャンプ卒業
【テックキャンプ10週間】プログラミングスクール卒業後の進路〜エンジニア転職・フリーランス活動準備

どうも、てぃかしです。テックキャンプ (TECH CAMP)の70日後の経過報告です。(当時は「テックエキスパート」という名称でしたが、修正しています。) 前回の記事はこちら ------------ ...

続きを見る

動画でご覧になりたい方は、ぜひYouTubeの方もチェックしてください。

------------------------------

〜当サイト限定!最大2万円分お得!〜

紹介コード【m0t2ki】を入力して、TECH CAMP エンジニア転職 or デザイナー 転職を受講される方は、1万円OFF。無料カウンセリング当日のお申し込みの場合は、さらに1万円OFFとなります。「TECH CAMP プログラミング教養」を受講される方は受講料が5%OFFとなります。

テックキャンプ エンジニア転職はこちら

テックキャンプ デザイナー転職はこちら

テックキャンプ プログラミング教養はこちら

紹介コード:m0t2ki
※紹介コードの 0(ゼロ)の入力間違いにご注意ください。o(オー)ではありません。コピーして貼り付け推奨。


TECH CAMPの次の記事はこちら

テックキャンプ卒業
【テックキャンプ10週間】プログラミングスクール卒業後の進路〜エンジニア転職・フリーランス活動準備

どうも、てぃかしです。テックキャンプ (TECH CAMP)の70日後の経過報告です。(当時は「テックエキスパート」という名称でしたが、修正しています。) 前回の記事はこちら ------------ ...

続きを見る

※本記事の内容は2019年11月中旬にYouTubeで公開した内容を基に書いています。

YouTubeでも役立つ情報を配信しています!

ボタンをクリックしてチャンネル登録お願いします!

-プログラミング, エンジニア, TECH CAMP(テックキャンプ), プログラミングスクール, プログラミングスクール体験記
-, , , , , , , , ,

© 2021 てぃかしのブログ Powered by AFFINGER5