こんにちは!エンジニアの中島です。
今回は、現在携わっている弊社運営のプログラミング教室『スタートプログラミング』の社内システムについて紹介をします。
このシステムでは、プログラミング教室のスタッフがコア業務である「教育」に100%注力できるよう、定型業務の削減・効率化を目的としています。
開発体制
私は現在、プロジェクトマネージャーとして、常時1〜2名のエンジニアを稼働させながらプロジェクト全体の進行管理をしています。
課題抽出や要求整理の段階では、システムの運用者であるスタートプログラミングのメンバーと連携をとりながらおこないます。
システム設計では、工数を抑えつつインパクトの大きい機能実装をすべく、エンジニア同士での意見交換を密におこなうようにしています。
また、若手メンバーの成長を促すため、先輩エンジニアとのペアプロ※1も必要に応じて実施しています。
※1 一つのプログラムを二人で共同開発する手法
機能紹介
今期に入って、実装した主な機能は2つあります。
Ⅰ Slackと連携した勤怠管理機能
スタッフの勤務予定表と勤怠実績をデータベース化し、管理するようにしました。
Herokuのスケジューラーを用いて定期的にプログラムを実行することで、データベースの整合性チェックが走り、勤怠入力の漏れやミスなどがあった場合には該当者に対してSlackアカウント宛に通知が送られます。
Ⅱ 授業料請求機能
授業料算出のロジックが複雑なため、手作業だとヒューマンエラーが起こりやすい状態にありました。
そこで、生徒や保護者の方の情報をデータベース管理に移行し、請求データの作成をシステム化することでミスを防止する仕組みをつくりました。
自社開発のメリット
普段はクライアントワーク(受託開発)を中心におこなっているため、自社開発は自分にとって新鮮なものでした。
そこで感じた自社開発のメリットを2つご紹介したいと思います。
まず1つ目は、現場からダイレクトに反応をいただける点です。
細かいニュアンスまで含めた利用者視点のフィードバックが、さまざまな気づきを与えてくれます。
また、成果の見える化が自然とできるため、モチベーション向上にも繋がっています。
2つ目は、開発の企画段階から携われる点です。
これは個人的な見解ですが、あらかじめ仕様が決まっている開発よりも、1から仕様決めをおこなう開発の方が開発効率が高いように思います。
と言うのも、かっちりとした仕様が固まっていなければ、それだけゴールへのアプローチ手法や技術選択に余地があり、柔軟な設計ができるといった側面があるからです。
最後に
企画から開発までを担い、システムの利用者から直にフィードバックを貰える環境はこのうえなく恵まれたものだと思います。
自分自身もっと成長して、パートナーの成功を手助けできるような業務システムをつくりたいと思います!