アットウェアインターンシップ

はじめに

京都産業大学大学院生一回の中村です.7/31(月)から8/4(金)までの5日間,アットウェアでのインターンシ ップに参加しました.インターンシップでは競技プログラミング環境InstantCoderを開発しました.他に もタスクの切り分けなど実際の開発プロセスに近いことを行いました.インターンシップは僕以外に三人 参加しており,その三人とともにチーム開発を行いました.

インターンを通して行ったこと

  1. 顔合わせ
  2. タスクの切り分けとイメージの共有
  3. 開発

顔合わせ

まずインターンシップ初日にメンターとの顔合わせを行いました. そしてその後ドミノ倒しやレゴブロッ クなどで開発プロセスをざっと勉強しました. 具体的にドミノ倒しは,ドミノ以外にギミックがありその ギミックを最低5個使用しないといけないルールでした.そこで最善のギミックを選ぶ練習をしました. レゴブロックは実際にやるべき内容をタスク分割し,「Do, Doing, Done」でタスクの見通しを良くして組 み立てていきました.これにより実際のチーム開発でのカンバンの手法を学びました.

タスクの切り分けとイメージの共有

顔合わせが終了した後は,本格的に今回作成するInstantCoderを作成するために必要なタスクを切り出 し,それを分割していきました.その後分割したそれぞれのタスクに対して,そのタスクが終了するまで の所要時間を全員で考えました.所要時間の決め方は,全員に各所要時間の記されたカードを配っておい て,各人はタスクごとに自分が思う所要時間カードを出します.そして過半数の人が同じ所要時間のカー ドを出すまで出し直しを行いました.出し直す際は,どうしてその所要時間を出したのかを各人に聞 いてから出し直しを行いました.これによりタスクのイメージを全員で共有することができました.

開発

タスクの切り分けが済んだ後,そのタスクをbacklogに登録し実際に開発を始めました.今回制作したサー ビスは,ユーザから直接アクセスされるクライアントサーバ,実際にプログラムを実行して結果を返す実 行サーバに分かれています.なので人数をクライアントサーバ二人,実行サーバ二人にして分割しました. 今回僕は実行サーバ側でDockerを用いて,サービスの環境構築をしました.基本的にはMySQLとサーバの 環境を構築し,環境(コンテナ)間での通信を行えるようにしました.後は残っているタスクを消化する手伝いをしました.

成果物

idとpasswordを入力してログインします.

  • ログイン画面
title.png

その後問題を作成します.

  • 問題作成画面

create_problem.png
  • 問題一覧画面
problem_list.png

後は問題ページに行って,問題を投稿すると実際に動かしてくれて結果を出力してくれます.

  • 問題提出画面
submit_problem.png

  • 結果画面
result.png

まとめ

一週間という短い期間でしたが,学ぶことが非常に多くあったと思います.まずは常に一緒の机でのチー ム開発における一体感を初めて感じました.気軽に今何をやっているのかを聞くことができ,ホワイトボ ードなどで考えを共有することができました.そしてbacklogでタスクを管理したのでよりタスクを可視化できたと思います.これからも開発し続けていけたらなと思いました.一週間という短い期間でしたが, お世話になりました.