こんにちは、キノトロープアカデミーです。
「キノトロープアカデミー」は、Web業界のトップランナーである株式会社キノトロープの社員が講師を務めるオンラインアカデミーです。リモートワーク時代に不可欠な「個のスキル」を高め、職人のような「匠」を目指す人を増やしたい。そんな願いを込め、基礎から経営判断、業務フローまで、一生モノのナレッジを惜しみなく公開していきます。
<中級編 第14回>
システム開発のバージョン管理とGit
についてお伝えします。
担当は高橋です。
システム開発におけるバージョン管理は、作業期間や作業時間を最小化するために必須のプロセスであり、複数人での共同作業や複雑な開発状況を管理する際に大きな威力を発揮します。
もし専用のシステムを使わずに複数人で同じファイルを編集すると、いつ誰がどのような理由でファイルを修正したのかを後から追いかけることができなくなり、上司からの急な仕様変更や過去の状態への差し戻し要求に柔軟に対応できなくなります。
さらに、複数人で同時に1つのファイルを触ることで、他人が修正した最新のコードを誤って上書きして消し去ってしまうなど、不具合が再発するデグレが起きやすくなるという致命的な問題も発生します。
現代の主流であるギットをはじめとしたバージョン管理システムを導入すれば、システムが変更内容を自動的に記録するため、いつ誰がどこを何のために変更したのかがいつでも明確に把握できるようになります。
これにより、自前でファイル名を変えてバックアップを残すような煩雑な作業から解放され、過去の状態にいつでも安全に戻せるため、複数人での並行作業が劇的にスムーズになり、開発者が安心して作業に集中できる環境が整います。
システム開発で重要となる、バージョン管理と、バージョン管理システムであるGitについて3回にわたってお伝えします。
この記事では、システム開発の初心者の方や、バージョン管理について聞いたことはある、または少しだけ利用したことはあるが、しっかりとは理解できていない人向けとなります。
”システム開発のバージョン管理とGit”をテーマに、
今日お伝えしたいことは3つあります。
システム開発において『バージョン管理』を行うことは言うまでもなく重要で必須です。また、バージョン管理システム、いまであれば主にGitを利用している場合が多いかと思いますが、バージョン管理システムを利用しないことは無いでしょう。
では、なぜ重要で必要なことなのか。それは、「作業期間、作業時間を最小化するために必要」だからです。
これは時間を無駄にしない、同時並行を可能にするなどバージョン管理システムを利用することでのメリットから生まれてきます。
バージョン管理システムを利用したことのない人、一人だけで試してみている人にとっては逆に手間がかかって面倒と思われる場合があるかもしれません。
しかしながら、バージョン管理は複数人での作業や複数の状態・状況の管理で威力を発揮してきます。
また、利用することでシステム開発する人の心の安定も保たれるものになると思います。
複数人で同じファイルを扱ったことはあるでしょうか。ここではとあるプロジェクトを進める場合の例でご説明します。
まずは、バージョン管理システム利用無く、一人での作業を行う場合です。
上司:「社内共有サーバにHTMLファイルを配置したから、このファイルを修正して機能を実装してください。」
自分:「了解しました。この規模だと、2日くらい掛かりそうです。」
その後、時は流れ・・・退勤時間になったので保存して閉じる。
~~~~~~~~~~~~~~~~~~~翌日~~~~~~~~~~~~~~~~~~~
上司:「昨日依頼した、あの修正やっぱり無しで!」
自分:「えっ!?そんなぁ~~」
~~~~~~~~~~~~~~~~~~~半年後~~~~~~~~~~~~~~~~~~
上司:「半年前にやって貰った、あの修正やっぱり必要みたい・・・今すぐ適用して貰える?」
自分:「・・・」
例の場合は、そもそとのプロジェクト管理状態の問題もあるとは思いまずが、予定が変更となったり以前の状態に戻したいとなったりすることは発生するものです。
次に複数での作業をする場合についてです。
上司:「自分さん、Bさんと一緒にこのページの機能を作ってください~」
自分:「この部分を修正してっと・・・」
Bさん:「あれ、ここのコード要らないかも。消しちゃえ!」
自分:「あれれー!さっき修正した所、全部消えてる・・・」
Bさん:「もしかしてさっき修正した場所、自分さんが修正していた・・・?」
Bさん:「いらないと思って消しちゃった・・・」
チーム、複数人で1つのことをするのは難しいことが多々発生します。2つの例での問題点は下記のようなものです。
問題点1:いつ誰がどんな理由で手を加えたのか追えない
問題点2:複数人で1つのファイルを触るとデグレが起きやすい
※デグレ(degrade)とは
悪い意味で戻る。不具合を直した後、再び不具合が発生する事のこと
これらの問題を解決するために、バージョン管理システムという物があります。
バージョン管理システムを使うと、
・いつ
・誰が
・どこを
・何のために
変更したかがわかります。
バージョン管理システムを使うことで、
・安心してファイルの変更が行える
・自前でのファイル変更に関する情報を残さなくていい
(これはシステムを使わなくてもファイル名を変えて保存することで
バージョン管理自体は可能ですが、大変です)
・複数人で作業するときラク
という点があります。
これが、バージョン管理システムで出来ることです。
最後までご覧いただきありがとうございました。

の3点についての内容でした。





