今、バリバリにプログラム組めるようにめちゃくちゃ勉強しています!
とりあえず、仕事を受けるためにも、まずはプログラミングの勉強ですよね!
上記を思われている方向けのアドバイスになります。
確かにプログラミングで仕事していくためには、プログラミング言語や環境など技術的な知識が必要になります。
ただし、上記以外にもほぼ必ずと言っていいほど知っておいたほうがいいものがありまして、それがソース管理ツール、バグ管理ツールになります。
システム開発に携わると基本的にこれらのツールを使用していることが多いため、完璧に使い方を知らないにしても、存在を知っているか知らないかでは結構変わってきます。
本記事では、ツールの使い方というよりかはそれらツールがどういったものなのか、どういった目的で使用するものなのかを書いていきます。
仕事受ける際の面談とかでこれらの経験があるかどうかも聞かれたりしますので、まったく知らない状態よりかは経験がなくてもどういったものかだけでも押さえておきましょう。
プログラミングだけが仕事でない
以前の記事でも少し触れましたが、プログラマーの仕事としてはプログラミングだけが仕事ではありません。
渡された仕様書を理解する力や分からないところを確認するコミュニケーション能力や、企業によりますが試験を行うためのチェックリストを作ったりもします。
上記以外にも、システム開発を行うと以下の管理を行う必要が出てきます。
・バグ(不具合)の管理
上記はシステム開発を行うと必ずと言っていいほど出てきます。
1人で開発するのであれば、必要ないのかもしれませんが、基本的にチームで開発することがほとんどです。
まず、どういったことをしているかを順に説明していきます。
ソース管理
簡単に言うと作成したプログラムのファイル管理です。
チームで開発する際は、複数名が同時にコーディングを行っていきます。
プログラマーがコーディングする流れとしては、各々が自身のローカルPCで作業し、コーディングが終わったらそれをサーバにあげるといったことを繰り返していきます。
最終的に各々が作成したソースがサーバに集約されて完成していくイメージです。
ソースの集約だけでよければ、ファイルサーバで良いのですが、
ファイルサーバで複数名がソースを触り始めると以下の問題が発生してきます。
・誰かと修正対象がかぶった
・誰かが自分のソースを上書きしてしまった
・間違った修正してしまって、ひとつ前の状態に戻したいができない
(または時間がかかる)
思いつく限り挙げてみましたが、ソース管理を行っていないと何かと残念なことが起こります…
そうならないためにソース管理ツールを使用することによって上記の問題を解消させています。
どのツールを使用するかによってできることが変わりますが、どれも主に以下のことは行っています。
・サーバに上げるたびに変更点が履歴として残る
・誰がどういった修正したか確認ができる
・履歴として残したポイントにいつでも戻すことができる
・サーバに上げるときに自分の変更箇所が確認できる
②競合(同じ個所の修正)の検知
・サーバに上げる際に対象が既に誰かによって更新されていたら更新できない
以上です。
人数が多くなれば多くなるほど、上記の管理が重要になってきます。
お互いがお互いのソースを潰しあわないためにも、ソース管理はどこの企業でも行っています。
バグ管理
続いてバグ管理です。
試験を実施すると不具合が出てきます。これらの管理を行います。
もし、バグ管理をしないと以下のようなことが起こります。
・不具合の内容を忘れてしまう
・不具合対応の責任の所在があいまいになる
・不具合対応の進捗状況が分からなくなる
他にもありそうですが、とりあえず思いつくものを挙げてみました。
メンバーの人数によっては、Excelで管理することもあります。
ただ、ツールを使用すると以下のことができるようになります。
・チケットという単位で不具合を発行でき、担当者への割り当てが容易
・バグごとに掲示板のような形でやり取りが可能
・バグごとに優先度の設定ができる
・自身のメールアドレスを登録するとメール通知が可能
他にもいろいろ可能ですが、概ね上記のような形で管理ができます。
プログラミング初心者向けに知っておいたほうが良いツール
上記説明した管理で使用するツールを記載していきます。
いろいろツールはありますが、有名どころを紹介していきます。
ツール自体の使い方については、初心者向けに解説している分かりやすいサイトを外部リンクで張っておきますので、興味があればそちらをご確認頂けたらと思います。
ソース管理ツール
Git
ほぼほぼGitを使用していることが多いです。
面談とかでもGitの経験があるかどうかを確認したりします。
Gitの知識があるかないかではじめの立ち上げが楽になるからです。
初心者向けに以下のサイトが分かりやすく解説しているので外部リンクを張っておきます。
実際に使用してみないとイメージを掴みにくいところもありますが、どういったことができるかなど、大まかな知識だけでも身に着けるといいかと思います。
SVN
Gitのほうが機能が多いので、あまりSVNを使用しているところは少ないですが、たまにドキュメント系の管理などでも使用することもあります。
こちらも分かりやすいサイトのリンクを張っておきます。
バグ管理ツール
こちらもよく使用するツールをご紹介します。
バグ管理だけでなく、タスク管理とかでも使用したりするので、簡単にどういったものかを知っておくだけでも、仕事する際に役立つかと思っています。
Redmine
ほとんどの会社が使用しているイメージです。
バグ管理以外でもタスク管理として使用することもあります。
ツールというよりかは、WEBアプリのような形で環境構築する必要があります。
以下、外部リンクを張っておきます。
実際の仕事でダウンロードやインストールすることは少ないと思いますので、チケットの登録の仕方やこのツールをどのように運用していくものなのかを知っておくといいと思います。
Mantis
使用しているところは少ないかもしれませんが、バグ管理ツールとしてよく耳にするので紹介しておきます。
基本的には、Redmineと同様にチケットを登録してやり取りするツールです。
以下、外部リンクを張っておきます。
まとめ
システム開発を円滑に進めるために、上記のようなツールをよく使用しています。
プログラミングの仕事を行う際は、実際にプログラミングだけでなく、上記ツールの使い方を知っておく必要があります。
基本的には、案件に携わったタイミングで使い方を教わる形にはなりますが、初めて聞くツールをいきなり教わるよりかは、せめてどういったものなのかを知っておくと理解しやすくなります。
どのツールを使用するかは、会社やプロジェクトごとに変わったりしますが、今回ご紹介した以外のツールであったとしても、使用目的は同じはずです。
独学で完璧に使い方をマスターできれば、それに越したことはないですが、実際に使用して慣れていないと難しいかもしれません。
なので、今は本記事の内容程度だけでも知っておいて頂けたらと思います。
コメント