こんにちは。佐藤です。
今回はチーム開発に向けた環境作りに関してお話したいと思います。
SAKURUGも9期に入り、社内での開発もついにチーム化のフェーズに入りました。
今はデザイナー兼フロントエンドの方と一緒に作業を進めています。
チーム開発のために導入したもの
今までは私一人での開発も多かったのでソースコード管理とタスク管理が課題でした。
また、Git操作も一人の時では使わないコマンドがたくさんあるのでそこのキャッチアップの課題もありましたが
弊社のカルチャーである「スピード」の概念のもとでとりあえずやってみよう、でスタートしてます。
さて、本題の導入したツールですが主に2つです。
タスク管理:Backlog ソースコード管理:Gitlab
定番どころですね。
検討したものとしては下記です。
タスク管理:Trello、Chatwork ソースコード管理:Github、Backlog Git用:SourceTree
また、既に導入しているツールをあげます。
チャットツール:Skype ※前はChatworkでした
資料系/メール:G-SUITE
背景など
さて、順を追って背景などお話します。
タスク管理ですが、非エンジニアのモノもプロジェクトにいることが肝になります。
解決したい課題は重要な2つを含んで5つあります。
・(重要)誰がどのタスクにとりかかているか分かること
・(重要)人にタスクを振ることができること
・タスクの期限設定ができること
・ファイルの受け渡しが可能なこと
・初めての人でも使いやすいこと
・途中参画のメンバーがプロジェクトの全体像を見えること
弊社の体制では様々な業務を兼任して行っているものが多く
タスク管理もプロジェクト毎に行われています。
また、非エンジニアの方が社内比率が多いため
操作がシンプルで直感的なものが求められました。
11月より白浜支社もオープンしますので
今後の拡張性も考慮したいところです。
Trelloはカード形式でタスクが表示されて
数本の縦のグリッドでステータスを表現するというツールです。
タスクの進捗を見たいときには、途中参加のメンツでも把握しやすいというメリットがあるのではないでしょうか。
こちらはBacklogでも同様の機能があったこと、
私自身がTrello使用経験がなく、Backlogの使用経験があったことでBacklogを優先する結果となりました。
全体導入の際には合理的な理由をつけることに時間をかけますが、
即導入したいタイミングでは属人的な理由になることもあるのだな、と自己の体験がで学びになりました。
上記に上げた課題のうち、途中参画のメンバーが全体像を見ることは
Backlogでは向いていないので今回は切り捨てて別手段で代替えすることにしました。
そもそも全員が全体像を把握していなくてよいですよね、ということに気づいたことも理由です。
導入してよかったことは、
管理者とメンバーのタスクの受け渡しだけでなく
エンジニアと非エンジニア間でのタスクの受け渡しがとてもスムーズになったことが大きいです。
サービスの全容が見えない中で開発をすすめているので
流し込むテキストやサービス設計の部分で非エンジニアからの素材回収が多いのですが
プロジェクトの進捗に合わせて優先度を見える化してタスクの担当者を変更するだけで渡せることが便利です。
相手も自分のタスクのみを表示して、優先順位や期限の近いものを機械的に処理できるので
「どこからとりかかればよいのか?」という無駄な時間が省けます。
皆がみんなチームで何かを作り出す経験に乏しいメンバー構成で進めているので
チーム開発の基礎の基礎でも身に染みてメリットを感じられます。
次に、ソースコード管理です。
デプロイを考えるとBacklogはないと思い、
最初からGithub対Gitlabの検討でした。
少し前までGithubはプライベートリポジトリの無料枠が少ないことがネックだったのですが
どうやら今では無制限のようで余計に悩ませるなぁということもありました。
最終的には中期的に考えて
CI/CDの導入やWikiの管理などグループウェアとしての機能なども豊富にあるGitlabを選択しました。
どのツールも便利すぎるのですが、
全てを全て有料版に移行することになるのはコスト面で厳しいと感じています。
一つのツールにまとめることができるのは大きなメリットです。
特に今のメンバーの場合は、複数のプロジェクトを抱えているのでどこに何があるのかが明確であることが求められます。
ちなみにSourceTreeは私自身のキャッチアップ問題で断念しました。
デザイナーさんはコマンド操作に慣れていないと思い、できればGUIで行きたいと思ったのですが
私がSourceTreeを使用した経験がなかったため
デザイナーさんがハマっている(クローンできません~とか)ときに即座に解決できなかったことが大きいです。
また、エディタはVSCodeを使用しているのでGUIのGit操作も十分な機能があったことも理由の一つです。
残っている課題
・Gitの運用(ブランチの管理やコミットコメントのある程度標準化)
・コード内のコメント挿入
・チーム内で技術のキャッチアップ、技術力向上
・工数管理
・テスト設計
・ドキュメントの整理
・チーム内Wikiの管理
・環境の準備の手順書作成(特にWindowsでもMacでも再現できること)
などなど、、、
もっとメンバー増えて、フラットに助け合えるチームを作れたらいいなと思ってます。
今回はここまでで失礼します。
読んでいただきありがとうございます。