はじめに
「Javaのコードが書けるエンジニアを増やしたい!」という話が社内であり、
少しの期間に数名をメンターとして見ていきました。
その時にやっていったことや感じたこと、
今後はこうしたい、
みたいなことを書いていこうと思います。
ここではまず理想として考えていたことから書いていきます。
Javaのコードが書けるエンジニア、とは
対象の方々は、プログラミング自体が業務では初めてに近い人もいれば、
実務で他の言語はそれなりにやっていった人とか様々です。
まずは何をもって「Javaのコードが書けるエンジニア」と言えるのか、
ゴールを決めるところから考えていく感じとなります。
<最終的なゴール>
1、作業現場に1人でメンバーとして入って、
2、周りとコミュニケーション取りながら、
3、Java言語ベースで、
4、設計、開発、単体テストあたりまで対応出来ること。
このくらいの内容が、
作業現場での面談でメンバー採用として求められるかなと。
今回はJava言語ベースで説明してますが、
言語自体は他のものでも良いかと思います。
未経験レベルからこのレベルはいきなりは難しいですが、
研修としてどれだけそこまで持っていけるかが必要なことかなと思います。
じゃあ、そのためには何をしていけば良いのか?
といったことを一つずつ整理して書いていこうと思います。
作るテーマを決める
どうせ作るなら、動きがあったほうが面白いし、
イメージもしやすいかなと思うので、
アプリ制作をテーマとします。
とはいえ、アプリ全部だとさすがに範囲が広すぎるので、
その中で利用するバックエンドのAPI(REST-API)をここでは中心に制作します。
フロントエンドのほうは時間が余ったら対応するくらいで。
ただし、設計自体は起こすような感じで。
研修者への課題としては、以下の感じです。
1、作成するアプリは研修者自身が考えること
2、アプリを利用して、入力したデータを登録、更新、削除出来ること
3、考えたアプリ案に対してメンターへ説明すること
4、作成するアプリやAPIの工数見積もりをすること
これらを順に説明していきます。
1、作成するアプリは研修者自身が考えること
最初にアプリ作成を研修者に伝えます。
アプリの内容は研修者自身に考えてもらいます。
次に説明する内容にもかかりますが、
簡単なデータのやり取りが出来るスマホ等のアプリあたりが良いかなと。
2、アプリを利用して、入力したデータを登録、更新、削除出来ること
DBにinsertやupdateなんかはよくある処理かと思います。
単純にそれらのSQL書くだけなら難しくはないとは思いますが、
これを1つのアプリの機能として考えたとき、
どういった項目が必要になって、
どういうテーブル設計すれば機能を実現出来るのか、
といったことが考えられるようになるかなと思います。
また、書き方によって処理速度や複雑さがどのように変わるのか、
なんかもイメージしやすくなるかなと思います。
3、考えたアプリ案に対してメンターへ説明すること
コードは書けても説明が出来ないと、
作業としてうまくいかなかったりすることもあるかと思います。
ここでは、実際のアプリのプレゼン会議のようにやってもらうようにします。
慣れてないと緊張したりして思ったこと話せなかったりもするので。
自分も昔はそうでした。緊張は今でもしますが(笑)
コミュニケーションの練習にもなるし、
メンターからの確認や質問によって、
機能の見直しとかも出来るので
学習する方向性を決めるためにも、
ここはしっかりとやっていきたいところかなと思います。
4、作成するアプリやAPIの工数見積もりをすること
いきなり「見積もり」と言ってもどういうふうにするか分からないと思います。
それでもまずはそれぞれの考える工数を出してもらうところからやってもらう感じです。
その際に、「出してもらった工数の根拠」を出来るだけ細かくヒアリング出来ると良いですね。
例えば検索系のAPI1本作成の見積もりをしてもらい、
「3日で作れます」と研修者が答えたとします。
この時、
・3日はどこからどこまでの工程なのか
・テストは含まれているのか
・テストは単体テストまでなのか、結合テストまでなのか、それ以外なのか
・その工程で足りているのか
・1日は何時間として考えているのか
・レビューや手直しは含まれているのか
少なくともこれくらいは最初の時点で明確にしておくと良いかなと思います。
そして、そこで見積もった工数をスケジュールとして引いておきます。
研修期間に合わせて、どの機能まで作れるのか予定を立ててもらいます。
実際に作成する
その後、実際に作成してもらいます。
ここで初めて言語やコードに対しての学習や経験になるかと思います。
技術的に分からないことがあれば相談してもらって、
どのように組んでいくか話せると良いと思います。
また、出来るなら1日5〜10分程度でも良いので、
直接会話して状況確認していくと
作業のブレやズレも少なくなるかなと思います。
ブレやズレが出てきた時
それでも作業していくと予定よりもズレが出てくると思います。
ズレる理由としても
・最初の見積もりどおりの進み方だったのか
・最初の見積もりと比べてどこが違かったのか(想定より難しかった、とか)
・差し込み作業は無かったか
・途中で体調不良になってしまった
このようにいろんな要因があるかなと思います。
どれも実現場で起こりうることでもあるので、
この辺を研修を通して体験してもらうことによって、
見積もり方を覚えていってもらうのが良いかなと思います。
また、スケジュール遅延になった時、
どう対処していくのかも併せて対応出来るように
・上長(この場合はメンター)に相談する
・相談する時に事実ベースで説明が出来るようにする
・説明した上で、どうリカバリーしていくかを一緒に考えて、スケジュールを引き直す
この辺をメンターと研修者一緒になってやれると良いと思います。
研修なのでスケジュール延びるのは良いとして、
締切はちゃんと意識するようにしておくのは忘れずに。
ずっと延ばし続けるのは良くないので。
作成したアプリをデモンストレーションしてもらう
ある程度作ってもらったら、
最初にプレゼンしてもらった通りに動くのか
会議を通して研修者にデモンストレーションしてもらいます。
これによって、
・ちゃんと想定通りに動くのか
・最初の説明と認識のズレは無いか
・作ったものに対して説明出来ているか
この辺も対応出来るようになるかなと思います。
実装中はちゃんと動いていたのに、
デモの時はうまくいかなくて焦る、なんてこともよくあるかなと。
また、想定していなかった挙動や質問なんかも出てきたり。
そういった経験も出来るだけ積めると良いので、
なるべく実際の現場に近いようなスタイルでやるとチカラになるかなと思います。
振り返りをする
デモをした後はメンターと研修者で振り返りをし、
良かったところ、改善すべきところをチェックしていきます。
…
記事の続きは下のURLをクリック!
https://rightcode.co.jp/blogs/54089
エンジニア積極採用中です!
現在、WEBエンジニア、モバイルエンジニア、デザイナー、営業などを積極採用中です!
採用ページはこちら:https://rightcode.co.jp/recruit
社員の声や社風などを知りたい方はこちら:https://rightcode.co.jp/blogs?category=life
フリーランスエンジニア大募集中!
現在、「WEBエンジニア」「フロントエンジニア」「データサイエンティスト」など、様々な職種のフリーランスエンジニア様を募集中です。まずは以下よりお気軽にご応募ください!
採用ページはこちら:https://itanken.com/register
社長と一杯飲みながらお話しませんか?(転職者向け)
特設ページはこちら: https://rightcode.co.jp/gohan-sake-president-talk
もっとワクワクしたいあなたへ
現在、ライトコードでは「WEBエンジニア」「モバイルエンジニア」「ゲームエンジニア」、「デザイナー」「WEBディレクター」「営業」などを積極採用中です!
ライトコードは技術力に定評のある受託開発をメインにしているIT企業です。
有名WEBサービスやアプリの受託開発などの企画、開発案件が目白押しの状況です。
- もっと大きなことに挑戦したい!
- エンジニアとしてもっと成長したい!
- モダンな技術に触れたい!
現状に満足していない方は、まずは、エンジニアとしても第一線を走り続ける弊社代表と気軽にお話してみませんか?
ネット上では、ちょっとユルそうな会社に感じると思いますが(笑)、
実は技術力に定評があり、沢山の実績を残している会社ということをお伝えしたいと思っております。
- ライトコードの魅力を知っていただきたい!
- 社風や文化なども知っていただきたい!
- 技術に対して熱意のある方に入社していただきたい!
一度、【Wantedly内の弊社ページ】や【コーポレートサイト】をのぞいてみてください。
Wantedly:https://www.wantedly.com/companies/rightcode
コーポレート:https://rightcode.co.jp/