以前書いた 社外で開発されたソフトを社内で開発するための教育をしました、しかも新人に近い人に の続編です。
この教育は現在も継続中です、最初の2週間は集中的に 前回の記事に書いたような、基本技術や開発対処の理解・習得 を行い、その後に受講者は実際に開発を開始しています。
そしてEY-Officeでは、週一回半日程度の OJT を行いながら、開発上の問題点の検討、初期の教育では取り上げられなかった高度な内容の教育等を行っています。
画像は Designed by Creativeart / Freepik より
今まで行ったOJT項目
大きな機能追加の検討
大きな機能追加の場合、どのようにして機能を実装するかを考える必要があります。教育を受けた開発者はソフトウェアの開発経験は浅く、現在のソフトで使われているフレームワーク等の技術の理解も完全ではありません。
そこで、私の方で調査・検討を行い調査結果等を説明し、新たな機能の追加方法を検討し実装してもらいました。
説明だけでは伝えにくい場合はサンプルコードを作り方針を伝えたりもしています。
リファクタリング(Refactoring)
今回の対象プロダクトには制御とロジック(MVCでいうControllerとModel)がゴチャゴチャに書かれているファイルがあり、新機能追加に苦労するように成っています。
そこで、問題のファイルを将来的には制御とロジックを完全に分離出来るように、新規の追加機能のうちロジック部分を別のファイルに分離する事にしました。その為のひな形のファイルを作り新機能を追加してもらうようにしました。
Gitの高度な機能
最初の研修でGitの基本的な機能は学んでもらい、実際の開発でもGit(GitHub)を使い開発を進めてもらいました。
ただし高度なGitの機能は、OJTの際に教える事にしました。 高度な機能はGitを日々使いGitに慣れてからでないと理解するのが難しいと思えたからです。先日も有用ですが操作が難しいrebaseを教えました、さすがにgitコマンドは難し過ぎるかと思い GUIツール Fork を使ってrebase機能の意味、使い方を教えました。
ES6
現在のコードはES5で書かれています、しかしプロジェクトで使っているプラットフォームはES6にも対応しているので、新しく実装する部分には積極的にES6を導入しようとなりました。ES6には便利でコードが読みやすくなるような機能や、安全性を高めるような機能があるので、新規追加の部分には ES6 で書いて行こうとなりました。 そのためのES6の簡単な講義をする事になりました。
OJTを行うことのメリット
社内に、その分野の先輩(ベテラン)エンジニアがいる場合は、研修が完了し基本的な事が出来るようになった新人エンジニアは先輩に相談しながら仕事を進めて行くことが出来ると思います。
しかし、今回のケースや以前にOJTを行ったケースでは社内に先輩エンジニアがいない環境でした。研修を受けても新人エンジニアはいろいろな問題に躓くと思います。現在はネット上にたくさんの情報がありシンプルな問題は解決出来る事があると思いますが、全くの新規機能の実装などは闇雲に行っても時間を浪費し、しかもメンテナンス性の低いコードに成ってしまうことが多いと思います。
このような状況では OJT は非常に有用です。エンジニア不足の現在、社内のエンジニアだけで新しい分野に進出したりするような場合には、是非 EY-Officeの 教育+OJT を検討してみて下さい。