すぐにお金が欲しいあなたへ!簡単に1万円以上稼ぐ具体的な方法14選

転職活動が有利になる現場主義のプログラミングをチーム開発で習得!【DMM WEBCAMP受講体験談⑥】

MEMO

この記事は実際にDMM WEBCAMPを体験された小島さんに体験中に書いていただきました。


DMM WEBCAMPの2ヶ月目はチーム開発。

1ヶ月目は自分の成長記録として毎週書いてたんですが、アプリケーションのことばっかり考えていたらあっという間に2ヶ月目が過ぎてしまいました…。

 

本当なら1週間ごとを振り返りながら記録していきたいところなのですが、

  • チーム開発とはなにか
  • DMM WEBCAMPではチーム開発をどのように進めるのか
  • チーム開発をやってみた率直な感想

をざっくりとまとめたいと思います。

 

チーム開発はこれまでのプログラミング学習とは違う大変さはあったのですが、その分楽しさも倍増しました。

スキル習得から転職まで徹底サポート

無料カウンセリングを受ける

【2019年版】プログラミングスクールおすすめ17選を徹底比較

実際の業務に近いチーム開発で実践スキルを付ける

チーム開発とは、複数人が共同で成果物を作り上げること

実際の開発現場でも、基本的にはチームで一つのものを作っていくことになるので、それを前もって体験しておけば転職後もすぐに適応できます。

まずは2ヶ月目の頭にチーム開発のキックオフがあり、同期のメンバーで顔を合わせます。

チーム開発で体験する3つのこと

チーム開発は

  1. チームのメンバーと協業すること
  2. コミュニケーションを取り合いながら進める方法
  3. 決められた要件に対し、可能な範囲で完成させること

この3点を体験していきます。

キックオフでこの説明を聞いたときは、まぁそりゃそうだよね。としか思わなかったんですが、実際にやればやるほど、本当の意味で面白さや難しさを体感することとなりました。

依頼者の要件を定義しECサイトを作成する

キックオフで早速この1ヶ月で作成するアプリケーションの要件が提示されます。

今回作成するのは、ECサイト。

Amazonや楽天のような、ネット上でお買い物ができるサイトを実際につくり、目指すは実際のWeb上にアップすること。

 

ユーザ側の機能としては

  1. 販売商品の一覧ページと詳細情報ページの2つをつくる
  2. ユーザは会員登録、ログイン、退会ができる
  3. ユーザはマイページからユーザ情報の編集、購入履歴の閲覧ができる

など、合計11個の要件が提示されました。

 

また、管理者側の機能としては、

  1. 管理者用メールアドレスとパスワードでログインできる
  2. 商品の新規追加、編集、削除ができる
  3. ユーザの購入履歴が表示できる

など、合計6つの要件。

 

これらを網羅した、ECサイトを作成することが今月の目標。

このあと、チームで相談してどのようなサイトを作るか決めていきます。

チーム開発の流れ

チーム開発は、計画、要件定義、設計、実装、テストという流れで行います。

 

そして1ヶ月後には作成したアプリケーションの発表会があり、成果や学んだことを他の受講生やメンター達に共有します。

開発の流れについて、自分の感想メモも添えながら説明していきますね!

①計画&要件定義:1ヶ月の制作計画/全体像を把握する

まずは、完成までのタスクの洗い出しと、スケジューリング。

WBSといって「どのようなタスクを誰がいつまでにやるのか?」というシートを作成します。

 

この工程は、1日でほぼ終わったのですが、このとき作ったWBSは後々どんどん修正が必要になり、最終的には全く違うものになっていきました笑

はじめから完璧な計画を立てるのは無謀ってことですね..。

 

でも、慣れてくるほど計画の精度も上がってきて、実現可能で達成しやすい計画が立てられるようになるそうです。

この辺は現場経験を積んでくしかありません。

②設計:設計書を作成しながらタスクリストを詳細化

建物を建てるとき、料理をつくるときにも、事前に設計図やレシピを用意しますよね。

それと同様に、アプリケーション開発をする際には、事前に設計書を作成します。

 

設計をする上では

  1. 機能一覧:サイトに必要な機能の洗い出し
  2. 画面設計:必要な画面の作成
  3. データベース設計:サイトに必要なデータをもとに扱うデータの持ち方を決める
  4. アプリケーション設計:URL設計とアプリケーション内部設計

という流れに沿っていきます。

 

特に時間がかかったのは、画面設計と、データベース設計。

画面設計は、機能一覧をもとにワイヤフレームと画面遷移図を作成していくのですが、意外と苦労するんです。

普段使っているサイトも、意外と画面数多いんだ…作るものたくさんあるな…と痛感しました。

 

データベース設計は、データの流れに矛盾がないかを考えるのが大変でした。

チームで話していると「あれ?このデータ必要じゃない?」といったことがぽんぽん出てきて、まとめていくのが難しかったです。

 

私のチームが、すべての設計を終えるのにかかった時間はなんと約2週間。

与えられた課題をこなしていた時は「何をつくるのか」を決めるのにこんなに時間を要するとは思っていませんでした。

「発表会まであと2週間しかない!?」と、めちゃくちゃ焦ります…。

③実装:誰が見てもわかるコードを書く

設計書ができたら後半の2週間で、いよいよ実装です。

 

実装で重要なのは、ソース内、コミットコメント(どんなコードなのかの説明)をわかりやすく書くということ。

「プロジェクトメンバーは変わる可能性がある」という前提で、誰が見てもわかるように書いていかなければなりません。

また実装中に仕様変更が発生した場合は、必ず設計書を修正する必要があります。

 

私は、個人で学習しているときは自分さえ分かればいいや、という感じで説明書き等をきちんと書いてこなかったので、チーム開発では、このままではまずい!と思ってかなり意識して書いていくよう心がけました。

また、最初の設計書の通りに進まない部分がどうしても出てきてしまい、設計の難しさも実感することに…。

ポートフォリオとは?

ポートフォリオは転職面談時に相手の企業に見せる実績データなどの資料です。

「どこまでの技術があるのか?」

「どんなクリエイティブを作れるのか?」

などを伝えられるので、面接を有利に進めるためには必要不可欠な資料です。

④テスト:ユーザー・業務フローに滞りがないかチェック

一通り実装が済んだら、実際にユーザーとして会員登録したりログインしたりと、使ってみます。

おかしいところがないかを試してみて、不具合があれば修正し、再度確認。

 

今回のチーム開発ではテスト仕様書などはつくりませんが、実務では丁寧に行っていく必要があるフェーズです。

丁寧に作ったつもりでも、導線がおかしかったり、見づらさがあったりと、テスト段階で様々な不具合が見つかりました。

発表会の日が迫っていたので、かなり焦りながら修正していくことに…。

DMM WEBCAMPでのチーム開発の様子

DMM WEBCAMPのチーム開発は、チームメンバーが主体となって動いていくこととなります。

もちろん、困った時にはメンターに相談をすることができますが、基本的にはチームメンバー内で進め方を相談し実行していかなければなりません。

 

ここまでチーム開発の流れについて書いていきましたが、DMM WEBCAMPでの実際の様子についても触れておきます!

週に一回振り返りミーティングを行う

DMM WEBCAMPでは週に一回の振り返りミーティングを行います。

初回のみ全チーム合同で振り返りをし、その後はチーム別での実施。

 

「KPT」という手法を用いて振り返りをしたのですが、これが面白かったです!

KPTというのは、K=Keep、P=Problem、T=Tryの略。

  1. よかったこと=続けていくこと(Keep)
  2. 課題=うまくいかなかったこと(Problem)
  3. 施策=次に実施すること(Try)

という3つの枠で物事を整理していくフレームワークなんですね。

 

今回チーム開発を通して一番思ったのが、この「振り返り」が非常に重要だということ。

これは実際の現場でも同じだと思うのですが、現状を把握し、できていること、できていないことを意識することで、次どうすればいいのかを考えることができます。

目標さえ決まっていればどのような場面でも使えるフレームワークだなと感じました。

 

DMM WEBCAMPでは付箋を使用して振り返る!

チームのみんながそれぞれ感じたことを個人でまず付箋に書いたのち、読み上げながらそれぞれ張り出して共有。

自分自身が振り返り、そして他のメンバー共有することで、他の人の考えもわかり、整理しながら次に向かっていくことができました!

1ヶ月の終わりには、チーム開発発表会で成果を発表

発表会は、チーム開発をはじめた1ヶ月後に開催されます。

持ち時間15分の中で、メンバー紹介や役割分担、制作物の動作デモとアピールポイント、チーム開発を通して学びを得たことについて発表。

その後質疑応答でフィードバックや質問を受けて終了です。

 

人の前に立って話すというのも久しぶりだったので、少し緊張しましたが、チームメンバーでこれまで頑張ってきたことをまとめ発表できるのは、とても良い機会でした。

 

 

受講生同士にはない、実務的なアドバイスをもらうことができて非常に参考になりました。

また、他のチームが開発したものも改めて見て、こういう機能いいなぁとか、見やすいサイトだなぁ、と気づくこともたくさん。

これらは翌月のポートフォリオ作成の際に活かしていきたいと思いました!

 

MEMO
当日は、DMM WEBCAMPを運営しているインフラトップという会社の、現役エンジニアの方もいらっしゃり、それぞれのチームに鋭い質問やアドバイスも。

チーム開発の感想:エンジニアに必要なのは技術だけではない。コミュニケーション能力も必要

チーム開発では、最初の1ヶ月で学んだスキルだけでなく、完成物をイメージしながら設計する力、新しいスキルを自ら調べ習得する力、他者と協同する力と、様々な力をつけることができました。

これは、DMM WEBCAMPに入ったからこそできた経験だったな〜とあらためて実感。

独学では、同じくらいの習熟度の人同士でチーム開発をするというのはまず難しいですからね。

 

それでは、チーム開発を終えてみて感じたこと、学んだことを書いていきます!

依頼者の要望に対してしっかりとヒアリングして進めるべき

今回自分たちを含めて4つのチームが同じ要件をもとにECサイトを作りました。

にもかかわらず、出来上がったサイトはそれぞれ全くの別物。

 

依頼者の要望は共通していても、それに向かう切り口はいくらでもある。

これは一人で黙々と開発していても味わえないことなので、チーム開発を体験したからこそわかる面白さでした!

 

将来エンジニアになったとき、狭い視野ではなく、多角的な視点でとらえてサイト設計をしたり、プログラミングしていく力は必要不可欠だと思うので、今回得た学びは大切にしたいです。

プログラミングは設計・計画命!コードを書くのとは違う現場主義の難しさを学べた

コードを書くのも大変だったけど、それ以上に計画や設計って難しいんだな〜というのも体験できました。

 

チーム内で、

「こういう機能をつけようよ!」

という話になると

「そうは言ってもどうすればいいんだろう?無理じゃない?」

とつまづいてしまう。このケースはとても多かったです。

 

また、単純に「このくらいの時間でこれだけのコードが書けるだろう」と思っても必ずといっていいほど遅れが出てしまっていました。

現実的に計画を立てるのはかなり難しいです。

 

単純なプログラミング技術だけなら独学でも学べるかもですが、DMM WEBCAMPでチーム開発の経験ができたのは転職を考えるとかなり大きかったです!

チームメンバーの性質を活かしながら開発すべき

個人での学習は自分のペースで良かったけれど、チーム開発となるとそうはいきません。

特に自分が予定どおりに終わっていないと他の人の作業もストップしてしまうので、それが一番しんどかったです。

 

チーム開発で難しかったところは

  • 作業を分担しても負担が偏ってしまう
  • 意見がぶつかったときのすり合わせ
  • 進捗管理は何度しても足りない

といったところです。

 

特に、チーム開発では、自分の担当が予定通りに終わらないと他の人の作業も止めてしまうので、それが申し訳なく一番しんどかったかもしれません。

 

逆にチーム開発で楽しかったところは

  • みんなで相談しながら一つのものを作るのは楽しい
  • それぞれ得意なスキルを生かして役割分担できる
  • 性格もそれぞれだから技術面以外でも役割分担
  • 自分にはない発想を持っているメンバーがいる

といったところでしょうか。

 

コミュニケーションを取りながら円滑に進められるほど、成果物のクオリティも高いものになるなと身を持って感じました!

DMM WEBCAMP、3ヶ月目は1,2ヶ月目の集大成!

そんなこんなで2ヶ月があっという間に過ぎていき、DMM WEBCAMPでのプログラミング学習は残すところポートフォリオ制作のみとなりました。

本当に早い…!!!

 

1ヶ月目の学習では

  • プログラミングの本質を理解すると成長も早い
  • プログラミングには失敗やエラーはつきもの
  • 覚えることも大事だけど、それ以上に自分で調べて解決する力も大事

ということを学んできました。

 

そして2ヶ月目は

  • 周りと力を合わせると、1+1+1+1=4以上の力になる
  • うまく進めていくためには、コミュニケーションを疎かにしてはいけない
  • 時間がかかってもわかりやすいコードを書くことが結果的に近道になる

といったチーム開発ならではの気づきも多かったです。

 

DMM WEBCAMPの優しいメンターさん方、そしてチームや同期のみなさんのおかげで、プログラミング技術のみならず、エンジニアとして、そして人としても一回り大きくなれた気がします!

来月からいよいよポートフォリオ作成に突入!さらなる進化をとげられるようがんばります!

スキル習得から転職まで徹底サポート

無料カウンセリングを受ける

【2019年版】プログラミングスクールおすすめ17選を徹底比較