Application Development
アプリケーション開発
業務内容
- 電子カルテ(Webアプリケーション)の開発
- 電子カルテサブシステム(Windowsアプリケーション)の開発
- 自社パッケージ開発の為、要件定義・設計・開発・テスト・保守のすべてを行います
開発環境
- 開発メンバーは全員リモートワークとなります。どうしても出社しないといけない場合もあるかもしれませんが、リモートワーク開始から3年間で出社はありません。
- 開発用のPCは会社より支給されますが、リモートワークとなるためインターネット回線の準備が必要となります。また、机や椅子など仕事をする上での環境の整備が必要になりますが、在宅手当が毎月付与されるので有効活用して仕事のしやすい環境を整えてください。
- 社内のコミュニケーションにはMicrosoft Teamsを使い、チャットやビデオ会議でおこないます。チーム間のやり取りだけでなく他部署とのやりとりもTeamsでおこないます。プロダクトに関する質問や技術に関する話、RSSリーダーとして情報収拾、GitLabやJenkinsからの通知の受け取りなどにも使っています。
- 社内で作業をしていた時のように他のメンバーに気軽に話しかけられる環境を用意するため、希望者はTeamsの1つの会議室に常時接続しています。ビデオ・マイクはOFFにしており、聞きたいことなどがあれば都度マイクをONにして話しかけられるようにしています。必要であればビデオをONにしたり画面共有をしたりします。もちろん、強制参加ではなく希望者だけで、集中したい時は自由に退席できるよう運用しています。(リモートワークでのコミュニケーションは日々試行錯誤中です)
- 現在はKotlinが主な開発言語となりますが、過去のコードはJavaで書かれているため併用しています。
- 一人ですべての開発言語を使えなければならないというわけではありません。まずは得意な分野を中心に担当してもらい、必要であれば徐々に他の言語も覚えてもらう流れになります。
- Redmineを使ったチケットドリブンでタスクを管理し、GitLabのマージリクエストを使ったフローで開発しています。
- 開発項目に合わせて、ペアプロ・モブプロも積極的に行なっています。ペアプロ・モブプロを行うことで孤立しがちなリモートワークでもチームの一体感を高めることができています。
- 自動テストやテスト環境へデプロイなどはJenkinsを使っています。
- 社内にある開発環境(Redmine、GitLabなど)はDockerで管理しています。この管理も開発メンバーで行っています。
- 開発しているパッケージ製品はWindowsやLinuxのオンプレミスのサーバー上だけでなく、AWS・Azureなどのクラウド環境でも稼働させています。
- 開発マシンはMacBook Proになります。開発しているパッケージの関係上、仮想環境としてWindowsも利用します。外部モニターを接続し、マルチディスプレイの利用を推奨しています。
- 開発効率や品質の向上、開発メンバーのスキルの底上げなどのため定期的に改善のための時間を作っています。
- 医療に関する知識は入社後に教えていきますので、医療のことをまったく知らなくても問題ありません。
主要な一日の流れ
- 09:00
-
デイリースクラム
開発メンバーとのミーティングなのでビデオ会議に参加します。ここでは今日やることや何か問題になっていることがないか、などを各自が簡単に報告します。問題がある場合、スケジュールの調整や作業の割り振りの変更などを行い、スプリントのゴールを達成できるように調整します。
- 09:15
-
作業開始
各自が計画した作業を行います。
開発は基本的に設計、実装、レビュー、テストのすべてを行います。もちろんすべてを一人だけでやるわけではなく、ほかのメンバーと相談したり、レビューをお願いしたりします。
ペアプロ・モブプロも積極的に行なっています。
メンバーとのコミュニケーションではチャットやビデオ会議を使います。
- 12:00
-
昼休み
各自が自由に昼休憩を取ります。
- 13:00
-
午後の開始
午前中の続きの作業を行います。
- 16:00
-
スプリントレビュー・レトロスペクティブ
今日は2週ごとに行われるスプリントレビュー・レトロスペクティブの日です。2週間のスプリントで開発した機能のレビューや振り返りを行います。
- 18:00
-
作業終了
業務時間終了です。みんな作業を終えてオフラインになります。緊急の作業などがないとほとんど残業することはありません。
これはある1日の流れです。ミーティングのない日は終日開発作業になります。また、社外や社内からの問い合わせへの対応を当番制で行なっているので、当番の日は保守業務が主になります。
月に一度、開発メンバー全員でミーティングをします。この場では、気になる事の相談、みんなに教えたい技術の発表などを行い、開発メンバーのスキルアップやモチベーションアップによるチーム全体の継続したレベルアップに繋げています。
自社パッケージの開発なため、やらなければならない開発作業を自分たちで計画していく必要があります。
自由ではありますが、責任持ってやり遂げなければならないため、やりがいのある仕事だと思います。
必須要件
以下のいずれかに該当する方
- KotlinもしくはJavaを使った開発経験
- C#を使った開発経験
- HTML、JavaScript、CSSを使ったWebシステムのフロントエンド開発経験
- プログラム開発などITが大好きな方
歓迎要件
下記のような経験のある方はぜひその経験を活かしてください!
- Kotlin、JavaによるStruts2、Spring、PlayFrameworkを使った開発経験
- Reactを使ったフロントエンドの開発経験
- C#によるWindowsアプリケーションの開発経験
- WebシステムのUI/UXデザインが得意
- AWSを利用したサービスの開発経験
- 開発効率・品質向上のための基盤づくり(各種自動化やフレームワーク・アーキテクチャーの検討など)