見出し画像

教育事業事例紹介-プロジェクト実践演習講義 アジャイル開発におけるGitの活用

こんにちは!
Avintonジャパンです。

我々は
・IT/AIコンサルティング
・教育事業 Avinton アカデミー
・常駐/リモートIT業務支援
の3つの事業を展開しております。
本日はその中でも教育事業 Avintonアカデミーの一貫で行っている大学、専門学校向け教育事業Avinton Academy on Campusの実施事例を一つ紹介いたします!

■Avinton Academy on Campusとは

学校への授業提供

予測不能な世の中だから、学生の頃からキャリアデザインを考えてほしい。
Avintonジャパンではそんな思いで大学や専門学校様と協業して「エンジニアのキャリアデザイン」「技術トレーニング」「技術・開発勉強会」といった授業を無償提供しています。

Your Success is Our Success

社員、お客様、そして私たちが関わる全ての人が成功することが私たちのミッションです。
このような考えから、私たちは社内教育プログラム「Avintonアカデミー」を通して、未来のエンジニアを育てることが責務と考えています。
その一環として、Avinton アカデミーという場を学生たちに提供し、講義を通じて現場から得た貴重な知見を伝えることで、この業界に足を踏み入れる手助けをしたいと考えています。
詳細はこちらから

■岩手県立大学 ソフトウェア情報学部での講義事例紹介

岩手県立大学 ソフトウェア情報学部 プロジェクト実践演習の授業内にて、Avinton Academy on Campusの講義を行った事例を紹介いたします。
講義のテーマは「アジャイル開発におけるGitの活用」。Avintonジャパンの社内サービス開発チームにおけるアジャイル開発のスタイルがどのようなものか、そしてその軸ともなっているコラボレーションツール「Git」をいかに活用しているのかをお話してまいりました。
この記事ではその内容を一部だけ抜粋して紹介いたします!

①アジェンダ

  1. Gitとは

  2. GitHub / GitLab

  3. Gitを使ったプロジェクトワークフロー

  4. Gitを活用したOSSの開発事例

  5. GitとDevOps

  6. まとめ

  7. この講義を受けたうえでの質疑応答

チームの連携の要となるコラボレーションツール「Git」を中心にアジャイル開発に必要な考え方についてもお話ししてまいりました!

②内容紹介
ここまで聞いてしまえば具体的にどんな話が行われたのか気になりますよね??
ここからは、その内容の一部を公開いたします!

4.Gitを活用したOSSの開発事例

Apache SupersetというAirbnb社が開発したデータの検索や可視化を行うためのオープンソースソフトウェアのBIツールの開発がどのように行われているかを解説いたしました。これは一つの事例ですが、ほかのオープンソースのプロジェクトについてもほとんど同じように開発されております。
このApache Superset、オープンソースですので、誰でも使うことが出来て、コードを見ることも出来て、何と開発に参加することまで出来てしまいます。
まず、プロジェクト全体の行動規範(CODE OF CONDUCT)がこちらに記述されています。たとえば、”Be Open”(オープンな態度でいよう)や “Be collaborative”(協力的な態度でいよう)など、不特定多数のエンジニアが気持ちよく共同開発するために重要な姿勢や考え方が書かれています。
次にこちらのページには、OSSへコントリビューションを行う方法が記述されています。コントリビューションの種類や具体的なプルリクエストの 作成方法、レビューやテストの方法、コードのスタイルについてまで、幅広く網羅されています。また、コントリビューションと聞くとコードを書いてコミットする、というイメージが強いかもしれませんが、それ以外にも”Report Bug”(バグの報告)や”Improve Documentation”(ドキュメントの改善)などのコーディング以外の作業も説明されています。新しくOSS活動に参加したい人はこのドキュメントを確認して、スムーズ に開発に参加することができます。
 実際にバグが修正された例を見てみましょう。レビュワーの一人がバグを発見したため”[SQL Lab] Saved Queries do not include parameters“というIssueを作成し、バグを報告します。 この場合、Saved Queriesという機能が動いていないという報告ですね。ここには、バグの再現方法やバグ発生時の環境を報告し、コメントでほかの人も同じバグが確認できたことなどを共有しています。また、スクリーンショット等も使って、わかりやすく開発者間で情報を共有します。
その後、報告されたバグに対する修正をコミットしたプルリクエスト “feat(sqllab): save query parameters in database“が作成されました。GitとGitLabでマージリクエストと言ったりプルリクエストといったり名前が変わるのですが、基本的には同じものだと思ってください。

このプルリクエストの中では、レビュアーが変更点を確認し、テストを行い、変更が意図するものかどうか、バグやエラーがないかどうか を確認してから承認をしています。変更点はコードチェンジの項目から閲覧することができ、レビュアーだけではなく、全世界の人が確認することができます。 まさにオープンですね。

このリクエスト内でコードを書いた人とレビュアーを中心に議論を重ね、正しい変更だということを確認後、この変更点はマスターブランチにマージされ、機能の修正が完了しました。
 
OSSの開発では複数人のエンジニアやユーザーが協力し合ってアプリケーションを改善していくことで成り立っています。この参加者たちはお金がもえらるというわけではありませんが、趣味で週末に参加している人もいれば企業に務めて業務時間として一日中開発に参加している人もいます。このように多くのエンジニアが自由に議論しながら、様々な新しい考え方や技術が生まれています。世界中のエンジニアが大規模に開発を行う際にも、GitやGitHubは大きな役割を果たしています。

7.この講義を受けたうえでの質疑応答

(学生)私も普段からGitは利用しています。Avintonでは海外の方ともGitを介してのやり取りがあると思いますが、何か特別注意している点や工夫していることはありますか? 
(Avinton)言葉にしてしまうと陳腐なのですが、コミュニケーションをクリアにすることにとても気を遣っています。例えば、Issueを立てるときには「背景」「目的」「完了の定義」「やるべきこと」が誰から見ても明確にわかるような記載をし、Issueナンバーとコードを紐づけてから開発を始めるといった、社内の共通ルールを厳格に守っています。
 
(先生)Issueを立てるのはプロダクトオーナーだったりマネージャーだったりすると思うのですが、誰をアサインするかを決める際のルールや方法はあるのでしょうか?
(Avinton)一番多いパターンは、週1回程度のクライアントとの打ち合わせで1週間分のタスクがはっきりするのですが、そのタスクをチームごとに分けてTo Do化したIssueを立てます。それを見て各チームのリーダーが適性や今のタスク状況等を総合的に見て各エンジニアにアサインしていく流れです。その際に、アサインされたエンジニアから見て今の自分のタスク量を鑑みて処理不可能だと感じた場合や優先順位として低いと感じた場合は、そのIssueにおいてプッシュバックして相談や交渉を行います。
 もう一つよくあるのがエンジニアが何かエラーを発見したときのパターンです。エラーを発見したり改善すべき点を発見した際は、それを発見したエンジニアがIssueを立てて、自分をアサインしたりそれを解決できそうな同僚のエンジニアをアサインしたりすることも多々あります。
 
(学生)Gitを使った進捗管理ではラベルを使うというお話がありましたが、具体的にどんなラベルを使っているのですか?
(Avinton)Todo,Doing,Contenious,Pending等を使うことが多いです。
実はこの講義の内容はAvintonジャパンWebサイト内の公式ブログで公開されています!
詳細が知りたい方は是非下記リンクよりそちらの記事もご覧ください!!
プロジェクト実践演習講義 アジャイル開発におけるGitの活用 in岩手県立大学

■最後に

Avintonジャパンは、エンジニア不足の日本に貢献するべく、AvintonではIT人材、エンジニアのキャリアサポートに力を入れています。
その一つの形として、大学や専門学校を直接訪問し、産学間の有意義な交流を始め、学生たちに将来について考えてもらうことを目的としてI、T業界研究基礎、実践的なIT技術や応用AI、キャリアデザインなどの専門的な講義を提供しています。

現在はAIやデータサイエンスは教養の一つになりました。文系理系問わず、IT技術を理解することの重要性は増すばかりです。
IT教育についてのご興味やお悩みがありましたら、是非下記リンクより当社にご相談ください。
現役のエンジニアやプロジェクトマネージャーが最新のIT教育を提供します!

Avinton Academy on Campus詳細及びお問い合わせページ

この記事が参加している募集

仕事について話そう

この記事が気に入ったらサポートをしてみませんか?