チーム開発を導入するにあたって悩むこと

チーム開発を導入するにあたって悩むことは多いですよね。いろいろな技術があって使うと便利そうなのですが、うまく活用されるかどうかは、構成メンバーの技術力や心構えに依存するところも大きいので、ただ技術をもちこんだり、ツールを採用するだけではうまくいかないからでしょう。

WEB+DB PRESSはよく読んでいるのですが、下記の書籍はいろいろと情報が整理されていて勉強になります。

最初にケーススタディでチームで開発をする際に発生する課題についての説明があり、それらの課題を解決するためのツールやメソッドをバージョン管理、チケット管理、継続的インテグレーション、継続的デリバリー、リグレッションテストという章に分けて解説がされています。大体の内容は知っているので知識の整理と補完になるということで読んでみています。

それで、この書籍を読むとチーム開発に必要なツールを現場に導入して、すぐに利用ができるようになるかというと、なかなかそうはいきません。ツールもいろいろあるので、どれを採用するか決めないといけませんし、過去の資産もありますから、それらとどのように連携させるかも含めて検討が必要になります。GitHubがものすごく推されているのですが、Gitは導入できてもGitHubはなかなか導入できない現場も多いでしょう。また、各開発者の環境を統一する方法についてはカバーされていません。最近だとDocker、Vagrant、Chefといったツールが話題にあがってきているので、そのあたりも含めて導入をしたいということもあるでしょう。その場合は、下記も読んでみたほうがいいでしょう。

チーム開発の環境を自前でいろいろと整備しようと考えると、仮想マシン環境はVirtualBox、KVM、VMwareのどれにしようか、バージョン管理とチケット管理はGit、SubversionとTrac、ALMinium、GitBucket、GitLabのどういった組み合わせにしようか、といったことを決めて構築が必要になりますが、ここの手間がそこそこかかるので、なかなかやりきれないところがあります。一度環境を構築できると、あとはそれを利用するだけなので高速開発ができるようになるはずなのですが、なかなか安定稼働させるまでには長い道のりが必要です。

手元でひと通りの環境を用意してみようと思っているのですが、お試しの環境はできても、本格的な稼働まではできないことが多いです。そこそこの手間がやはりかかるからというのと、個人ではそこまで用意すると大掛かりになるからだということなのだと理解しています。そういう意味からすると、既存のサービスを利用すると割りきってしまった方が楽なのかもしれません。仮想マシン環境などはすぐに用意できるのですが、開発環境というのはまだまだ環境構築が簡単にはいかないというイメージが強いです。ツールもパッケージ管理での導入が難しいことも多く、バージョンアップへの追随も少し大変です…

基本的に、何かを開発したいときは、その開発をしたいのであって、開発環境の構築にはあまり時間をかけたくないというのがあるので、なかなか整備が進まないというところがあります。部屋の掃除とか、仕事場の確保とか、そういうのはある程度重要なのですが、成果物に直結するかどうかは微妙なのと同じですね。30万円/月の仕事場を借りていたら60万円/月の価値あるソフトウェアを開発できるようになるかといったらありませんから。

そうはいっても、毎回手作業でたくさんのことをやらないと仕事にならない、というのでは話にならないので、導入できるところから導入して、効率よく安定した開発ができるようにしたいものですね。ツール類はどんどん導入がしやすくなっていますし、利用しやすくもなっています。ある閾値を超えたところで、一気に採用ができるようになるはずですから、それができるように、普段から情報収集と試用というのをしておきたいものです。

同じタグの記事: ALMinium
同じタグの記事: Chef
同じタグの記事: Docker
同じタグの記事: Git
同じタグの記事: GitBucket
同じタグの記事: Gitlab
同じタグの記事: Jenkins
同じタグの記事: Trac
同じタグの記事: Vagrant
同じカテゴリの記事: Book
関連書籍: Git
関連書籍: Jenkins