AWSの話題を中心に、日々の業務やプログラミングの徒然を綴るエンジニアブログです。

HANDS LAB

HANDS LAB ENGINEERS BLOG

ハンズラボエンジニアブログ

新卒新入社員だけで仮想プロジェクトやってます


4月に新卒としてハンズラボに入社した大石と申します。
大学の専攻は応用化学でしたので、ハンズラボ初のIT未経験の新卒ということになります。
一応大学では文化祭のホームページを作成していたのでHTMLとCSSは書けなくもないというレベルです。JavaScript?なにそれおいしいの?
また、文化祭やアルバイトにおいて、ポスターやロゴ、POPや地図など様々なものを、AdobeのIllustratorやPhotoshopを使って作る4年間を過ごしました。
これだけは一言言わせてください。Adobe先輩まじ最高!!

さて、今回は4月に入社した新卒新入社員計4名で行っている仮想プロジェクトの話を書こうと思っています。
以前、ハンズラボ 初の新卒新人研修やってます 講師の視点から編
という記事の中で最後の方にちょろっと触れられていますので、ぜひそちらもご覧いただけたらと思います。
そのうち、新卒視点から新人研修の話も書いていけたらな〜と思います。

仮想プロジェクトとは?

「4人で自由に何らかのシステムを作ってください!」と言われ、ほぼ制約無しに放りだされました。
(ま じ か よ…)
課された制約といえば、

  • 新卒4名で開発を行う。プログラミングは全員行うこと
  • 締め切りは6月末
  • 先輩方をあっと言わせるようなものだとなお良し

くらいなもので、あとは展示会行ってみてもいいよ〜とか、こんなもの使うといいよ〜とか、選択肢が増えるようなアドバイスばかりでした。
逆に難しくないですか!?

蔵書管理システムをつくろう

さて、数日間新卒同士であれやこれやと話し合い、「オフィス特化型蔵書管理システム」を作ろう!ということになりました。

というのも、現在弊社オフィスでは蔵書が(多分)100冊以上あり自由に使える状況にあるのですが、ふと見たい!と思った蔵書が本棚になく見られない……なんてことがあります。
誰が本を借りているのか見ることさえできればいいのですが、
まさかIT企業が紙で管理するなんてネタもいいところだよね!
ってことで企画に至りました。

貸出・返却処理や貸出状況の確認は自分のスマホで行うことができればきっと活用してもらえるだろうと考え、企画をじっくり練っていきました。
予定している機能は以下の通り。

  • 借りる(誰が何の本を借りたのか記録)
  • 返す(誰が何の本を返したのか記録)
  • 予約(誰がどの本を予約したのか記録)
  • 蔵書の検索・結果の表示
  • 蔵書の新規登録・削除
  • 予約の通知(予約が入るとその本を借りているユーザーへ通知)
  • 又貸し(誰から誰に何の本が渡ったのか記録)

プロジェクト進行で使っているもの

  • タスク管理ツール:Backlog
  • ソースコード管理:Backlogのレポジトリ
  • テキストエディタ、IDE:それぞれ好きなものを(と言いつつテキストエディタは全員Atomを使用)
  • サーバ環境:サーバレス
    システムの内容を考えて、リクエストが来る回数は非常に少ないはずなので、リクエスト時のみ課金すれば済むAWSを使用することになりました。それに、AWSを活用している企業だし、この機会にみんなで使って勉強しないと……
    因みに、構成はAPI Gateway, Cognito, Lambda, SNS, DynamoDBの予定。
  • フロントサイド環境:ハイブリットアプリを作る(Monaca、OnsenUI)
    ネイティブアプリと違ってOS別に作る必要がなく、公式のサンプルアプリなどが多い、コードを保存したら即時で実機に反映できるなどのメリットから採用。
    (参考図書:「クラウドでできるHTML5ハイブリッドアプリ開発 Cordova/Onsen UIで作るiOS/Android両対応アプリ (Monaca公式ガイドブック)」)

現在の進行状況

  • 企画
  • プロトタイピング
  • 設計
  • α版実装(+先輩社員への中間発表)←イマココ!
  • 実装
  • テスト
  • リリース

α版を実装してみる

今回、フロントエンドとバックエンドと2人ずつに分かれて作業してみました。
プロジェクトチームは4名!といえど、そのうち2名は未経験者であり、フロントエンドに関しては全員初めての試みのハイブリットアプリを作るため学習コストがかかり、しかも外部研修などもあるためあまり時間がない……というのが現実。
しかし、プロトタイピングや設計の段階で本の裏にあるISBNコードを読み込むアプリを作成できており(PhoneGapのBarcodeScannerプラグインを使用)、またバックエンド側は一人がAWSの使用経験があったため基本的な機能(借りる、返すの処理、蔵書の一覧およびそれを借りている人の表示)まで実装することができました。

フロントエンド側の構成図はこちら。
構成要素図

バックエンド側の構成図はこちら。
AWS

今後の予定

先日、先輩社員に向けて仮想プロジェクトの状況およびα版のお披露目として、中間発表を行いました。
そこで出た意見なども踏まえて今後1ヶ月で行うことは以下の通りです。

共通

  • コードのバージョン管理の徹底
  • お互いの状況を把握
  • α版で実装できなかった機能の実装

クライアントサイド

  • OSによってエラーが出てくる箇所の違いなどを無くす
  • PC画面でも蔵書一覧や貸出情報が見ることができ、予約ができるようなWebページの作成
  • UIおよびUXを意識

サーバサイド

  • ユーザ認証の検証
  • 通知方法の検証

ハンズラボで2ヶ月間過ごしてみて

らむだ?(波長のことかな?)
じぇいそん?(13日の金曜日かな?)
こぐにと?のーずきゅーえる?
と思って過ごした1ヶ月と、段々耐性がついたのかなんとなく周りの会話が理解できるようになったような気がしてきた1ヶ月を過ごしてきました。
ハンズラボでは5月末のこんな時期でものびのび学ぶ環境を整えてもらえているので、成長するにはもってこいの環境だと思います。   
とはいえ、そのうち本物のプロジェクトに加わることになるので、自由にのびのびと学ぶことができる今のうちに出来るだけ勉強して成長できれば、と思います。  

本当は今までの研修内容でも……と思ったのですが、さすがに長くなってしまうので、とりあえず仮想プロジェクトの話だけに留めておきます。
冒頭でも述べましたが、また新人研修のことを書きたいと思います。お楽しみに!(自分でハードルを上げるスタイル