プログラミング初心者の方が、独学やプログラミングスクールで学習し、ある程度出来るようになった後、実際の開発現場で学習したことが通用するのかどうか、不安だという方がいると思います。
僕は不安となる原因の1つが、実際の開発現場ではどのような感じで作業を進めていくのかイメージできないからだと考えています。
そこで本記事では、現場での開発の流れを解説し、プログラミングを学習するだけでは知識不足となる開発現場で使うツールについて紹介します。現場で使うツールについても事前に知っておくことで、就職が有利になったり、入社後のスキル不足を避けることができると思います。
現場で使用されるツールは様々ですが、20年ほどエンジニアとして様々な案件を経験し、2020年において、一般的であると思われるツールを紹介します。
プログラミング初心者が入社後に行う開発の流れ
多くの開発現場では、チームで開発作業を実施します。入社するとチームに配属され、チームのリーダーからタスクを与えられ、作業を実施していくことになります。
入社直後からプログラミングまでの一連の作業は、以下のような流れになります。
①環境のセットアップ
開発が始められるように、PC内の環境をセットアップします。
必要なツール等の指示があると思いますので、順番にインストールしたり、設定したりします。
チームメンバーがたくさんいる場合は、手順書が用意されていたり、自動化されているなど、あまり手間がかからないように工夫していることが多いです。
②案件の説明
担当する案件について、チームメンバーから説明があります。
どんなシステムやサービスを作るのか、案件のゴールは何か、担当する領域はどこか、などしっかり確認しましょう。
この段階ではわからないことが当たり前なので、疑問に感じることは、すべて質問したほうが良いです。
③担当部分の仕様理解
説明が終わると、ある領域を担当分野として割り当てられます。
通常、プログラミングを行う前に設計が必要となりますが、初心者に割り当てる部分はすでに設計済みであることが多く、プログラミングするためのインプットとなる情報がまとめられたドキュメントなどがチームメンバーが共有されます。
それらを確認し、疑問点がある場合は、プログラミングを始める前に必ず確認します。
④プログラミング
何を作るのかが理解できたら、プログラミングを実施していきます。
これまでに学習したことを活用し、ソースコードを書き上げます。
同じ結果が得られるソースコードでも、様々な書き方があり、開発現場にはそれぞれ特有のお作法(ソースコードの癖のようなもの)があります。一人で学習する際は意識することはありませんが、こうしたお作法は出来る限り、その現場に合わせたほうが、後々のために良いとされています。
⑤テスト
自分でプログラミングしたソースコードを自分でテストします。
開発現場によってテスト方法は様々ですが、多くの場合は、ユニットテスト(自動テスト)と呼ばれる、ソースコードをテストするためのテストコードのプログラミングを行います。
⑥ソースコード管理ツールへ保存
テストが完了し、作成したソースコードに問題ないことが確認できたら、ソースコード管理ツールへ保存します。
ソースコード管理ツールは、現場や案件によって異なりますが、必ず自分が作成したソースコードと管理ツール(リポジトリ)との差分を確認し、余計なソースコードが保存対象になっていないことや、作成したソースコードの保存忘れがないことを確認します。
⑦CIツールの実行・結果確認
現場や案件にもよりますが、CIツールと呼ばれる自動テストツールを導入している場合があります。
CIツールは、自分が作成したソースコードと、既存のソースコードやチームメンバーが作成したソースコードと合わせてテストを行い、それぞれのソースコードの整合性がとれているかや、チームのお作法に沿った書き方になっているかなどをチェックします。
問題があるとメールやチャットツールなどで知らせてくれますので、通知があった場合は、問題部分を修正して、再度ソースコード管理ツールへ保存します。
⑧タスクを完了し、次のタスクを確認して③に戻る
これで一連のタスクが完了となります。
現場や案件によっては、プロジェクト管理ツールを導入し、誰がどのタスクを実行しているのかが分かるようにしています。その場合は、タスクを終了状態にして、次のタスクに取り掛かります。
開発全体では、やるべき作業はもっとたくさんあるのですが、初心者がまず行うべき作業としては、上記ができれば問題なく仕事ができると言って良いと思います。
プログラミング初心者が学習すべきツール
上記で紹介した開発の流れでは、プログラミングは作業の一部であって、それ以外に様々なツールを用いて行う作業があります。下記では、現場に入る前に学習しておいたほうが良いツールについて紹介します。もちろん現場で学習していくものもありますので、完璧に学習しないと現場に入れない、ということではありませんのでご安心ください。
テストツール(テストフレームワーク)
ユニットテストを行うためのツールをフレームワークと呼んだりしますが、言語やテスト対象によって様々な種類があります。
現場や案件によって、使うものは様々ですが、多くのものはテスト対象となるソースコードから得られる結果が期待値通りであるかを検証します。
自分がプログラミングしたソースコードがテストしにくいソースコードである場合には、テストがしやすいソースコードとなるようにリファクタリング(改善)を行っていきます。
テストがしやすいプログラミングが出来るかどうかも、重要なテクニックの1つです。
ソースコード管理ツール
多くの現場や案件では、Githubというツールを利用していることが多いです。それ以外にもSubversionやMercurialといったツールがあります。
いずれのツールもソースコードのバージョンを管理するもので、修正前の古いバージョンを確認できたり、修正後の差分を確認できたりするなど、機能はほぼ同じになります。
ソースコードの保存以外にも様々な機能があるため、特に利用されていることの多い、Github(Git)の使い方に慣れておくことをおすすめします。
CIツール
CIとは、Continuous Integrationの略称で、ざっくり説明すると、継続的にテストを実行して問題がある部分を早く発見しましょう、という考え方で、それをサポートするツールをCIツールと呼んでいます。
CIツールも現場や案件によって使用するツールの種類は様々ですが、多くの現場で使われている有名どころとして、Jenkins、Circle CI、Travis CIといったものがあります。
使い方を学ぶのは、現場に入ってからで良いと思いますが、どういった役割をするツールなのか、どのように活用をするツールなのかを事前に学習しておくと良いと思います。
プロジェクト管理ツール
プロジェクト管理ツールは、開発現場で行われている作業の内容や進捗状況を見える化するために使用され、アジャイル開発と呼ばれる開発手法と相性のよいツールです。
プロジェクト管理ツールには、Redmine、Backlog、Jiraなどがあります。使う機能や運用ルールは現場によって様々ですので、使い方の学習は現場に入ってからで良いと思いますが、何をするためのツールなのかや、どんな機能があるのかなどは事前に学習しておくと良いと思います。
各ツールの詳細について
今回は各ツールの名前を紹介する程度としましたが、それぞれの詳細は別記事にて解説していこうと思っています。ツールにも流行り・廃りがあり、どんどん新しい便利なツールが出てきますので、プロジェクトを管理する立場やチームリーダーとして活躍することを目標としている方は、これらのツールについて、新しい情報をキャッチアップしていくと良いと思います。
使うツールは、現場や使用する言語によっても様々なので、これだけ学習しておけばよい、というものではありませんが、それぞれの知識があるだけでも、仕事に余裕が出てくると思いますので、ぜひ調べてみたりしてください。
今回紹介した情報は、様々な現場や案件での経験をもとにしていますので、多くの現場で通用する情報だと思っています。開発現場の様子が分からず、不安だと思っている方の参考情報になれば幸いです。
コメント