世界をもっと面白くしたい
休日や仕事終わりなど充実しているときもあるが、なんだか'退屈'と感じる時もある
そんなちょっとした退屈を減らしてもっと面白くなるような世界をテクノロジーの力で実現したい
このプロジェクト詳細は公開されていません
プロジェクトの内容としては、次の2点を行うことだった。
・次世代インフラ基盤ソフトであるKubernetesをエンタープライズ領域で使えるように品質・機能強化を行う。
・パッチの投稿等により当社のコミュニティへの貢献を社外へアピールすると同時に、社内外へのKubernetesの普及活動を行う。
まず、品質強化において、"具体的な開発項目がない"という問題があった。
大義としてエンタープライズ領域で使う得るように強化するというのはあったが、そのためにどんな機能が必要で、また今どこまでできているのかということがわからなかった。
また、Kubernetesは新しい技術であり社内に有識者はおらず、技術やノウハウを教えてくれる人はいなかった。
そこで私は社内向け入門講座の環境を一人で一から構築することで、技術やノウハウを自ら習得し後輩や入門者のためにまとめた。
まとめる際には手順書としてではなく、ansible等を用いることでCode化を徹底した。
Code化したものはREADMEなどとともに社内GitLab上に公開することで、社内のエンジニアに対してKubernetes導入の手助けができた。
また、構築に伴って様々なエンタープライズ機能を実践し、機能に問題がないか評価した。
そして、講座の開催にあたり運用者として実際に構築した環境を運用してみて、使い勝手の悪い部分などを抽出し、開発項目として落としていった。
機能評価の結果、Proxy関係の問題はノウハウが少なかったので、GitHubのISSUEやパッチの投稿などで積極的にコミュニティに貢献した。
さらに、ほかの人の構築や新技術調査のためKubeConをはじめ多数のカンファレンスに参加し、多様なエンジニアと議論した。
Kubernetes構築・開発の経験を生かしてCertified Kubernetes Administratorを取得できた。
大学の講義形態の変化に伴って学部内部で使用する新規のシステム開発を依頼された。
研究室の仲間とともに4人のチームで開発した。
開発内容としては、小テスト用マークシート問題をPCをあまり使用しない教授でも簡単に作成できるように問題作成・自動採点Webシステムの開発である。
既存技術としてLinuxアプリを活用できないかという案があったが、あまりPCの操作に慣れていない教授にLinuxをインストールして使用したりエラーに対処したりするのは困難であると予想できた。
そこで私はその既存Linux専用アプリをWebページからボタン操作でできるようなシステムの構築を提案し、受け入れられた。
しかし、教授などの実践テストの時間を考えると約1.5カ月で完成させる必要があった。
まず私は機能単位で計画を立てて終わりの線を引っ張った。
そして、各大機能のなかで優先順位をつけ、予定より遅れそうなら優先順位の低いタスクはやらないようにした。
優先順位を付けた具体例として、Javascriptなどの見た目にはこだわらなかったが、教授という初心者が使うため、何をすべきか迷わないようにボタンの配置などのアクセシビリティには気を配った。
ユーザビリティの調査には開発チームだけだと、初心者の気持ちがなくなってしまうので、研修室の別の学生などのテストを依頼し、改善できるところは改善した。
また、別の問題としてチーム全員が学生であり、出勤・退勤時間がないため、行動時間が合わないという問題もあった。
この問題に対して、まずGitやTrelloなどのツールで非同期で開発が進め続けられるようにした。
問題個所があればできるだけ自分で解決し、またチームメンバーに指示を出す際もできるだけ具体的に、どうすればいいかわかるように指示することで、納期に間に合うようにスピードを上げた。
そして少しでも遅れていそうであれば、会える時を狙って直接交渉し、その場で解決方法を決定していった。
その結果、無事納期通りにサービスインできた。
ある程度ラフな格好