チーム開発ではルール作りが大事だと感じた話

f:id:ryoutaku_jo:20190111171404p:plain


【結論】
・チーム開発は、チーム間のコミュニケーションの質が、
 プロダクトの質に直結する
・開発に着手する前に、ルール作りを綿密に行い、
 コミュニケーション不足による認識の不一致を防ぐ

【目次】

【本題】

最終課題の発表会を見学してきた

現在、通っているスクール(TECH::EXPERT)では、
同期とチームを組んで、4週間でメルカリのクローンサイトを
作成するという課題が課せられています。
(同時並行で、自身のポートフォリオも作成)

私の期は、2週間後くらいから始まるので、
まだ詳細は知らないですが、
本日、先輩方の最終課題の発表会が開催されていたので、
そちらに参加してきました。

そこでの話が非常に興味深かったので、
今回ブログにまとめることにしました。


チーム開発において気を付けるべきはコミュニケーション

今回は、1チーム4名で、3チームの方が発表をされていました。
それぞれ、レベルもバラバラですので、技術的な部分で
悩まれた箇所は、様々だったのですが、チームで開発する上で、
悩まれたところには、共通点がありました。


それは、チームメンバーとのコミュニケーションです。
もう少し詳しく言うと、
メンバー間の認識の不一致によって起こる問題です。

そう思うきっかけとなったエピソードを、幾つが紹介します。

コミュニケーション不足で発生する事象

・スタイルが被ってしまう
他メンバーが作成したスタイルシートと同じクラス名を
知らずに付けてしまい、ビューが崩れてしまった。

・DRYを守れていない
Don't Repeat Your Self:繰り返しを避けるという
プログラミングの原則です。
各々が別々のビューの作成を担う事で、
他のビューにも頻繁に使うパーツを、
共通のscssで定義するといった事が出来ていなかった。

・一人で長時間悩んでしまった
相談したら直ぐに解決したことに、時間を費やし過ぎてしまった。
 
・有益な情報を共有できていない
ある機能を実装させたい時に、自分が知っている手段より、
他のメンバーが知っている手段の方がスマートだった。

・コードの可読性が悪い
自分が作成したコードでは無いので、
その変数が何を取得しているかなど、分かりづらい。

などなど・・・


これらにより、余計に作業時間が掛かり、
進捗に悪影響を与えてしまっています。

コミュニケーションの問題を解決するのはルール作り

こういった問題は、コミュニケーションを密に取る事で
防げる部分もありますが、最も効果的な対策は、
事前にルール作りを行っておく事だと考えています。


例えば、下記のような内容です。

CSS設計の段階で、共通化できるパーツが、
 それはパーツ用のscssで定義するように

CSS命名規則をBENに統一する

・遵守するスタイルガイドを決める

・30分悩んで解決しなければ、メンバーに即相談

・新しい知見を取り入れたら、メンバーに共有


これらのルールは、
実際の開発過程で発生するあらゆる状況を想定して、
抜け漏れが無いように規定し、メンバーが全員が、
それを守ることの重要性を理解した上で運用していく事が、
チーム開発では不可欠だと感じました。



興味深かった技術的な話

それ以外にも、技術的に工夫されたところも
発表もあり、その中で気になったものをピックアップします。

・実際の開発現場では、GitHubDesktopは使わず、
 gitコマンドで管理しているケースが多い
・バブリングはjavascriptを使う上で、重要な概念
・「gon」でコントローラーから簡単にjsへ変数を渡せる
・envファイルで環境変数を設定
・gemを配置する開発環境に注意する
・each展開したものを擬似クラスで区別
・検索条件フォームは、form_forで作ると楽 ←(これが一番、気になった)
qiita.com




総括

やはり実際の現場に入って、まず気を付けることは、
その現場のルールをきちんと理解する事だと考えています。

現場のルールを理解していなければ、
既に活躍されている方の
生産性を落としてしまいます。

なので、このチーム開発を通して、
チームでのコミュニケーション方法を
きちんと学んで、現場に出たいと感じた一日でした。


以上、技術の話は、今のレベルでは聞いても分からないところが
多々ありましたが、スクールを卒業する時点で、
あのレベル以上に達していたいという良い目標になりました。

《今日の学習進捗》

アプリ作成の中で、理解不足だと感じた
HTML・CSSをprogateで復習中

学習開始からの期間 :36日
今日までの合計時間:346h
今日までに到達すべき目標時間:329h
目標との解離:+17h
「10,000時間」まで、

残り・・・「9654時間!」