見出し画像

新人奮闘記 #2〜Webアプリ開発した〜

こんにちは。クラシコムの木村です。
5月にクラシコムに入社してから3ヶ月、社内で利用するWebアプリの開発をしていました。この度、開発していたWebアプリが社内リリースされました!!今回は、実際に何を作ったのか?どのようなことを学んだのか?を書いていきます。

目次

1:何を作ったのか?
2:なぜFace-specを作ろうと思ったのか?
3:開発工程は?開発言語は?
4:開発してみてどうだった?
5:開発秘話(もう1つのソリューション)
↑1番大きい学び

6:これからのこと

1:何を作ったのか?

「Face-spec」というWebアプリを開発しました。社員一覧と、社員の名前当てクイズができます。

Face-spec(社員は一部のみ)

2:なぜFace-specを作ろうと思ったのか?

プログラミングの基本を学ぶ教育の一環として自分で課題を見つけ、「何かWebアプリを作る」というカリキュラムが用意されていました。まだ会社に入社したてだった私は、「社員の顔と名前が一致しない」という新入社員らしい課題にぶち当たっていたため、Face-specを作ろうと思いました。

3:開発工程は?開発言語は?

1. Webアプリ企画
2. プロトタイプ作成
3. DB・URL設計
4. 開発・テスト実装
5. リリース
※ 開発言語はPHP 7.1
※ フレームワークはLaravel 5.6
※ デプロイ環境はHeroku

実際の業務に習って、2週間のスプリントで計画を立てて進めました。プロトタイプはAdobe XDを利用し、大まかな画面と遷移図を作成しました。DB・URL設計はレビューをもらいながら、Google SpreadSheetで行いました。

プロトタイプ遷移図(一部)


DB設計図(一部)

4:開発してみてどうだった?

初めてゼロから企画、設計、開発、リリースを経験し、知らないことが多すぎてとても大変でした。

開発初期の私
「DBで多対多の関係にする時は、中間テーブルが必要なのか・・・😱」
「Dependency Injectionって何?」
「gitでPull Requestってどうやるんだ?」
「Mockという概念と仲良くなれない・・🙈」
「レビューに書いてあることがわからん・・・」
「公式ドキュメントが英語・・読めん・・😭」

gitを使ったバージョン管理、テストの書き方と、どこまでの範囲をどのテストで書くのか?など概念を掴むのも大変でした(大量にbranchを作ってしまうという事件があり、伐採作業が大変でした・・・)。

慣れてくると、どんどん進んでいる感じがあり、リリース時期が近づいてくるとテンションが上がりました!!🙌

リリース間近の私
「新しくこの処理を追加する場合、あのファイルを修正する必要あるな」
「この処理は、あのテストが必要だな 」
「効率よくレビューをもらうため、先にPull Request出すか」
「レビューもらった内容、初めて知った。こっちの方が楽だな」
「この内容なら公式ドキュメントのあの辺りに書いてありそうだな🤔」

5:開発秘話(もう1つのソリューション)

それはテクノロジーGが毎月行なっているMonthly Hyggeという社内勉強会でのこと。社員一覧は本当にソリューションとして適切なのか?という話に・・・。

「社員一覧渡されても覚えられないよね・・・」
「直接話してみることが大事じゃない?」
「けど突然話しかけるのはハードル高いよね」
「自然と言葉を交わすのは、どんな時?」
「・・・(沈黙)」

自然に言葉を交わせるタイミングはいつか・・・
私たちが行き着いた答えは「朝の挨拶」でした!!挨拶することはとても自然なことです。毎朝、社員全員と挨拶すれば、自然と話しかけることに成功し、名前も覚えられるはず!!

ということで私は1週間、会社のドア付近に立って、挨拶をしました。(通称:ドアマン)

※ クラシコムのすぐにトライする文化がここでも生かされています

「おはようございます!」
朝会社にきたら、大柄な男が立っている・・・
最初はこれくらいの距離感でした。

しかし毎日いるので次第に進んで挨拶してくれる社員さんも増え、距離も縮まりました。「ドアマン」が顔と名前を覚えるため1番のソリューションでした。

エンジニアになりたての私が基本を学ぶため「何かWebアプリを作ろう!」ということから始まった本開発。Face-specを開発することで基本を学ぶことができ、本来の目的は達成できました。しかし「課題を解決する」という視点で見るとFace-specよりもドアマンの方が優れていたと思います。「作らずに課題解決できる」ということが大きな学びでした。

6:これからのこと

リリースしたことで「とりあえず何か作ってみよう」というフェーズは超えました。しかし「このサービスをどう良くして行くか?」を考えた時、Face-specについてもっと深く考えたい課題はたくさんあります。

「利用対象者が新入社員のため、既存社員は利用しないな・・・」
「名前覚えてしまったら使われなくなり、継続性がない」

サービスとして継続的に利用されるにはどうしたらいいだろうか?を考えながら、少しずつバージョンアップをしていきます。

クラシコムはいろんなことにトライしながら、一緒に課題解決するエンジニアを募集しています。