2019年12月23日どうも、てぃかしです。テックエキスパートの60日後の経過報告です。------------------------------〜最大2万円OFF!&無料相談キャンペーン〜てぃかしの紹介でTECH::EXPERTを受講される方で、無料カウンセリング前にご連絡いただいた場合、受講料が1万円OFFとなります。無料カウンセリング当日のお申し込みの場合は、さらに1万円OFFとなり、合計2万円OFFとなります。TECH::CAMPを受講される方は受講料が5%OFFとなります。詳細は本記事の最後に記載しています。------------------------------今回は、60日で学んだこと、特にチーム開発について書いていきます。この記事を読めば、初心者の方でもチーム開発がどんな感じで進められるのかを理解することができます。※本記事の内容は2019年11月中旬にYouTubeで公開した内容とほぼ同じです。今回の内容は下記の通りです。次回予告〜卒業後の進路について〜チーム開発で得られるものチーム開発を経験することで、今後の仕事に活かすことができ、就職、転職を考えている人は、その経験はアピールポイントの一つになります。テックエキスパートのチーム開発の目的は3つあります。1ポートフォリオを作成するためポートフォリオは制作物を他人に見せることができるツールですが、それは就職でも、フリーランス活動でも技術力を示すものとなります。2チーム開発の経験を積むため一人の時は好き勝手に開発をして、Githubも好き勝手使ってましたが、チーム開発では使い方を間違えれば、チームに迷惑がかかります。組織で開発をする人は必須の経験だと言えます。3困難に立ち向かう経験をするため当たり前のことですが、いざわからない問題が出てくると逃げ出したくなります。それを乗り越えると、自分ってやればできるじゃんという自信に繋がって、次、そういう逃げ出したくなるような問題が出てきても今回も大丈夫だと思えます。質問の仕方も気をつけなければいけません。メンターに質問するときもそうですが、チームの誰かに質問、相談するときは、自分が今直面している問題をわかりやすく言語化して、伝えなければいけません。「エラーが出た、見て」と言われても、今どういう状況かをヒアリングする必要があります。具体的にどのように質問するかは、フォーマットに文章にまとめてから相手に質問すると良いです。検索して得た情報から立てた仮説と、その検証作業による結果を書く自分の状況を説明して、自力でどんなことをしたかを伝えればいいです。このフォーマットはどの仕事でも通用するものだと思います。チームの時間は自分の時間でもあります。下手な質問で時間を無駄にしないように時間は大切に使いましょう。アジャイル開発アジャイル開発というのは、一度にまとめてでは無く、少しずつ確認をはさみながら開発を進めていくことが特徴です。利用者の反応や、関係者からの継続的なレビューを得ながら、計画を調整しつつ進めていきます。今回は、4週間を1週間ごとの期間に区切って、ミーティング、レビュー、反省などを行なっていきます。アジャイル開発におけるその期間、周期のことを「スプリント」といって、スプリントごとのミーティングを、スプリント計画ミーティングといって、具体的にどれくらい時間がかかるかを見積もったり、作業は何をもって完了とするかを合意することが目的です。スプリントごとのレビューをスプリントレビューといって、スプリント計画ミーティングで決めたカードの「完了の定義」を確認します。今回はプロダクトオーナである、メンターにレビューしてもらいます。今回のテックエキスパートでのチーム開発では行いませんが、アジャイル開発に対して、ウォーターフォール開発というのもあります。初めに決めた要件を、ある期限までに完了するという手法です。アジャイル開発とウォーターフォール開発のメリット、デメリットをまとめるとこんな感じです。仕様変更に対応しにくいスクラム続いて、チーム開発を語る上で外せない、スクラムについて話します。スクラムは、チーム開発を進めるための手法の1つです。リーダー・マネージャー主体ではなく、チームメンバー全員が主体性をもって、プロダクト完成に向けた責任を持つことが特徴です。スクラムの流れスクラムの流れは大まかにこんな感じです。依頼者からヒアリングをして、どのようなアプリケーションを作成するのか決める。アジャイル開発においても大枠の要件定義は必須。(2)開発の意図を、開発する人々が完全に把握する何を達成するためにそのプロダクトを作るのかを把握する。目的と矛盾する機能や優先順位付けは排除することが求められるため、開発メンバー全員がこれを理解していることが重要。(3)実装すべき作業を洗い出す完成までに行うべき作業を洗いだすリスト化しておく(4)作業の量を見積もる上記作業のそれぞれにおける作業量を見積もる(5)スプリントごとに実装するスプリントの期間を設定し、スプリント開始時にスプリント計画ミーティングを行う(6)スプリントの成果を発表するスプリント計画で定めた実装が計画通りに終えられたかどうかチェックをする(7)振り返りを行う次の期間でより早く進めるための対策を立てる以上です。スクラムの役割そして、スクラムにはこんな役割があり、今回はスクラムマスターを1人決めて、進めていきます。ちなみに一応、経験させていただきました。開発チームメンバー:実際に開発に携わるこのスクラムで、毎日、スプリントでやると決めた範囲が本当に終わるかを精査する場を設けます。これを「デイリースクラム」と呼びます。モダンなIT企業で多用される便利ツール続いて、チーム開発を円滑に進める上で便利なツールについて話します。Slack便利なチームコミュニケーションツールです。このSlackを用いてコミュニケーションを図る企業も多いです。今回は、チーム開発におけるコミュニケーションやGitHubの通知を受け取るためにチャンネルを作成します。TrelloTrelloとはタスク管理ツールです。掲示板のような「ボード」と呼ばれるものの中に「リスト」という単位で各タスクを収納することができ、各タスクはリスト間を簡単に移動させることができます。アジャイル開発のタスクの管理をすることが可能です。実際に画面を見てみましょう。Trelloのボードにあるカードには例えば、こんなことを記載します。trelloの準備ができたら、メンバー間でアプリの雛形を共有します。具体的には下記のようなことをします。new(※)をして新規アプリケーションを立ち上げアプリケーションをGitの管理下に置いて、それをメンバーがコピーするあとは先に書いた、アジャイル開発、スクラムの方法に乗っ取って開発を進めていきますが、その過程でコードレビューをする場面が出てきます。最終課題では、チーム内で相互にコードレビューを行う→メンターにコードレビューを依頼するの流れでレビューを行っていきます。コードレビューとは、コードの誤りを検出・修正したり、コードの質を上げるためにソースコードの検査を行う作業のことです。レビューと聞くと少し面倒と思う人もいるかもしれませんが、他人が書いたコードを読むのも勉強のうちだと思います。コードレビューをする機会があればぜひ積極的に取り組むのが良いと思います。実際にどういう流れでコードレビューをしていくかというと、こんな感じです。依頼する人は、プルリクエストを作成する依頼する人は、チャットなどでレビュアーに依頼を出す依頼された人はレビューをする依頼した人は、レビューに基づき修正を行うチーム内で合意がとれたら、依頼した人がマージをするプルリクエストとは簡単に書くと、Githubで開発者のローカルでの変更を他の開発者に通知することです。マージは、ものすごく簡単に書くと、追記や編集した内容をみんなが参照している大元のプログラムに更新することです。コード解析ツールあと、コードレビューを助けてくれる自動ツールもあります。どんなツールがあるか、ちょっと紹介すると、Rubocop(ルボコップ)はRubyの(静的)コード解析ツールです。「無駄な改行・スペースがある」などの指摘をRubyStyleGuideに基づいて行ってくれます。EslintはJavascriptの静的コード解析ツールです。Javascriptで書かれたコードを解析し、明らかなバグ・不適切なコーディングスタイルを指摘してくれます。Siderはコードレビューツールを一括で導入できるサービスです。Ruby、Javascript、Python、Goなど幅広い言語に対応しています。SiderはGithubのリポジトリ毎に導入することができ、プルリクエストが作成されると自動でコードレビューを行ってくれます。次回予告〜卒業後の進路について〜次回で、チーム開発が終了し、学習が完了します。テックエキスパートのサポートは続きますが、卒業後、どういった進路に進むかを決めなければいけません。どんな進路があるのか?次回の記事で書いていきます。次回は70日後の経過報告です。お楽しみに!動画でご覧になりたい方は、ぜひYouTubeの方もチェックしてください。〜最大2万円OFF!&無料相談キャンペーン〜てぃかしの紹介でTECH::EXPERTを受講される方で、無料カウンセリング前にご連絡いただいた場合、受講料が1万円OFFとなります。無料カウンセリング当日のお申し込みの場合は、さらに1万円OFFとなり、合計2万円OFFとなります。TECH::CAMPを受講される方は受講料が5%OFFとなります。私の紹介で受講決定された方限定で受講最初(2週間)悩むことがあれば、LINE@で相談乗ります。TECH::EXPERT、TECH::CAMPのどちらかを受講をお考えの方は下記のいずれかの連絡先に、「受講コース」、「フルネーム」、「受講地域」をご連絡ください。LINEでのご連絡は下記をタップしてください。(@も入れて検索してください)TwitterのDMでもOKです。https://twitter.com/engineer_sakaiお申込み後にご連絡頂いた場合、割引が適用できない場合があります。無料カウンセリングお申込み前にご連絡ください。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。体験談〜どうも、てぃかしです。テックエキスパートの50日後の経過報告です。体験談〜どうも、てぃかしです。プログラミングスクール「TECH::EXPERT」受講10日後の経過報告をしていきます。【退職】脱サラしたての生の声(気持ち)をお届けします〜プログラマに俺はなる〜どうも、てぃかしです。今回の記事はサラリーマンや脱サラを考えてる人の参考になればと思い、書いています。いうことで、脱サラをしてみたいと思います。フリーランス案件獲得でやることのリストてぃかしです。これから他の会社にエンジニアとして転職する人、これからフリーランスエンジニアになる人に向けた記事です。AFFINGER5.。