初めての開発現場を経験して

PHOTOGRAPHY ADVICE I GIVE EVERY TIME 0. 目次 1. はじめに 皆さんこんにちは。久しぶりの投稿です。 今回は初めて開発系のプロジェクトを経験しました。アプリやソフトウェアを作るほどのがっつりとした開発プロジェクトではなくサーバで定期的に実行されるbatやスクリプトの開発プロジェクトでしたが、それでもインフラ系のプロジェクトとは異なり、かなり苦労したので、その中で経験し感じたことを備忘録として残しておきます。 ただ具体的な言語がどうとかフレームワークとかの話というよりは、こんなことが大事だったなみたいな話です。 チーム体制については、4,5人のチームでほとんど開発経験のある方はおらず、インフラを主に扱っている方々でした。(誰もコードなんて書けん、、みたいな状況です。) 2. 担当した工程と経験したこと 簡単にプロジェクト内の工程でどんなことを経験したか説明します。 後悔した点やこんなことすれば良かった点については後ほど説明します。 ■担当した工程 ■詳細設計 私がまず担当した工程は、詳細設計でした。基本設計と機能設計はほぼ終わっていました。 作業としては、お客様の要件を満たすために設計された機能を実装するためのプロセスや処理をドキュメントに書き起こす作業です。 インフラ系のプロジェクトの詳細設計書は、サーバやソフトウェアのパラメータ記載することが、多いイメージですが、開発系の詳細設計書は少し異なります。フロー図などを用いて、開始処理から処理処理までのプロセスの流れを詳細に記載する必要があります。 フロー図については、以下のような図を指します。 幸いにも機能自体が複雑ではなかったこともあり、フロー図の作成することはできました。 このフロー図の作成でプログラムの構造を整理することができ、ロジックや考え方が少し身に付きました。 プログラムにおいては、処理Aが起きた後に処理Bが発生しなければいけないとか、この処理がループ処理に含まれてはいけないとか処理全体の整合性が保たれなければバグとなってしまうのです。 フロー図の作成は、システムの全体を理解するために構成図を作ったりすることと同じように感じました。 ■コーディング 詳細設計が完了したら設計書を元にコーディングしていきます。全然コマンドを知らないため、何を使えば良いの調べるのにかなり苦労しました笑、この処理はどのコマンドを使えば良いのだろうと一生懸命考えてました。 ただ一から調べて実装するには作業時間の兼ね合いもありますし、限界があったため、生成AIを活用していました。 この機能を実装したいのでコマンドの使用例を教えてほしいと質問すれば大体は教えてくれますし、実際にプログラミングしてスクリプトとして、例を出してくれたりします。他にも既にコーディングされたものでどんな処理を行っているのか不明な箇所があった場合には、その部分を尋ねると説明してくれたりもします。 生成AIはかなり重宝しました。 ↓Microsoft edgeで使用できる「Copilot」を用いた例 ■単体試験、結合試験 単体試験と結合試験では、試験仕様書の作成と試験実施しました。試験仕様書の項目としては、テスト対象、観点、条件、手順、確認結果等があります。バグの洗い出しとその改修が目的になるため、漏れがないように詳細に記載する必要があります。仕様書は網羅的に試験観点を洗い出さなければいけないため、時間がかかりました。大まかに正常な場合(動作が正しく行われる場合)と異常な場合(意図しない動作の場合)の2パターンがあり、それぞれの試験でも細かい条件で試験結果が変わり、検討しなければいけない事が多いため、マトリクス図を活用しました。さらには試験条件によっては、現実的に起こりえないものなどがあったりするので、必要のない試験の洗い出しもしなければいけません。 試験では、実際に作ったものを仕様書の条件に沿って実行して、動作結果を記録していきます。エビデンスをどうするかという点について、かなり苦労しましたが、次のコラムで説明したいと思います。 3. 全体を振り返ってみて 全体を振り返ってみて、大事だと感じたポイントを紹介します。 ■生成AIの活用について 生成AIは、これまでの仕事ではあまり活用する場面が少なく使ってこなかったのですが、知識が全くない状態から調査しなければいけない問題が多かったこともあり、かなり活用しました。よほど専門的な分野でなければ、初歩的な調査にはかなり有用です。