Raccoon Tech Blog [株式会社ラクーン 技術戦略部ブログ]

株式会社ラクーン 技術戦略部より、tipsやノウハウなど技術的な話題を発信いたします。

Howto

ゼロから始める新人エンジニア研修

こんにちは。たむらです。
今回は、ラクーンで行っている「新人エンジニア研修」について書きたいと思います。
2016年春に入社した新人も今まさに受講しているホットなトピックになっています。

◆新人研修を用意した背景

 ラクーン技術部では数年前迄はほぼ新卒採用がなく、中途採用メインで仲間を増やしていました。その為、ある程度の開発力や調査力が新人さん側にあることも多くて、教育はいきなりOJT。「分からないところは聴くか、自分で調べていってね~」という感じでいわゆる研修にあたるものは無きに等しい状態(注.1)でした。「経験者だし、調査能力はエンジニアの能力としても必要だからその鍛錬を含んでいるんだ」と言えばそれっぽく聞こえますが、受け入れ側としてはやはり怠慢な部分が大きかったのではないかと思います。当然ですけど、環境面やラクーン独自の仕様・ポリシー、概要など始めに教えておけばすむことや、聴いた方が効率が良いことは沢山ありますもんね。

 そして時代は流れて、2015年度より技術部でも新卒採用を定期的に行うようになりました。さすがに中途採用メインだった時の様にいきなりのOJTではなく、誰もが必要最低限の知識を身に付け、成長の階段を素直に登れる仕組みを用意する必要があると考えられるようになりました。また、中途採用市場でも時代的な変化があり研修の必要性が高まっていることも後押ししました。というのは、昔であればSIerで開発を経験していればLAMPに代表されるような、何かしらのプログラム言語+RDBMS+Linux+HTMLを経験していることが多かったのですが、トレンドの技術も非常に多様になり、RDBMSは触ったことないけどNoSQLは知ってるなどという人材もでてきて中途採用でも一定の研修ニーズが生まれていたからです。

注.1 会社的な社会人研修やサービスについての研修は勿論あります。技術的なスキルを身に付ける体系だった研修がないという意味です。


◆研修のゴール

 上記の様な背景を踏まえて、研修のゴールを以下の様に定義しました。

最低限のプログラミング能力の修得ができる

 研修の主目的その1。弊社で実際に利用している言語やフレームワークを中心に研修します。研修にも時間的な制約がある中、知識の深さと広さのどちらをとっていくかも悩ましいところですが、より深い知識や理解をする部分は個人の努力で補える部分が大きいと思うので、どちらかといったら「広さ」をとる方向でいくこともポリシーにしています。

最低限のシステム開発の仕組みを理解できる

 研修の主目的その2。こちらも上記と同様弊社で実際に利用しているものをベースに研修します。開発フローや利用している開発ツールなどの他、テスト環境やCI環境など、実用的な知識を得る部分です。

エンジニアとしての問題解決の思考を習得できる

 どの職種でもそうだとは思いますが、業務では様々な問題に直面することになります。その際に自分で解決していける様に問題解決の方法を知っておくことも重要なことです。Webでの調べ方や問題の切り分け方などの他、ログの解析やデバッグの仕方などを研修を通して学んでもらいます。この問題解決能力は得てして経験やセンスで身につける部分だと考えられがちかもしれませんが、実際には学んで得る部分が殆どなんじゃないかと思っています。

成長を実感でき、自信を持てる

 やはり研修をやり終わった時には、自信をもって業務に臨める様な「やる気」が形成できていて欲しいと思います。当然スキル的な意味もありますが、周りのメンバーとのコミュニケーション関係が構築できることだったり、組織として受け入れる姿勢があることも重要なポイントなのではないかと思っています。

◆実際の研修の概要

 では、実際に研修はどの様にやっているかというと、一言で言ってしまえば「個別指導+スタンプラリー形式の研修」を行っています。

具体的には・・・

  • 1新人1ユニットチーム過去記事参照)で、ユニットチームがメンターになる
  • 学んでもらうべき項目は習得項目としてリストで管理
  • 習得項目がまんべんなく学べる研修課題を用意
  • 研修課題の区切りや終了時にはレビュー会を開き、フィードバックを実施
  • 習得項目を十分マスターできていたらメンターは終了印を押す
  • 苦手な部分や詰まっている部分があればフォローアップを行う
  • 全ての習得項目の終了印を集めたら研修修了

という様なものにしています。研修の進捗は個人に合わせたものになるので、できる部分はさっさと、余り知らない部分はじっくり取り組むことができます。また、新人さんの研修の進捗状況や質問内容、体調含めた様子などすべて記録を残し、研修後のフォローや研修自体のブラッシュアップができる様にしています。

習得項目リスト
0621_sheet
スタンプラリーシートとして本人にも渡していて、何を学んでもらいたいかの他、今の研修の状況や自分の成長が把握できるようにしています。タイトルは・・・まぁ遊び心で(笑)。


研修課題の準備
0621_make
シニアエンジニアが真・善・美に適った
(?)課題とその模範開発例を作ります。実業務ではなく研修課題をしっかり用意することで習得項目に沿った体系的な研修を実施することができます。また、業務の掛け持ちで実施するメンター側の負担を減らすことにも繋がります。


研修風景
0621_kensyu2
メンターのとなりで研修します。説明+KPT用のホワイトボードも近くに置いてます。

メンターとソースを確認しつつ振返り中
0621_kpi
朝会、夕会を日次で開き、メンターと本日やることの確認やKPTによる振返りを行っています。
KPTは最終的に自身の成長を視覚的にみせ、自信に繋がることを狙っています。


◆研修をやってみて

 実はこの研修ですが、昨年位から試行錯誤しつつ準備を始めて今年初めて運用しているできたてホヤホヤのものです。冒頭に書いた通り、6月現在で春入社の新卒エンジニアがまさに今受講しています。まだブラッシュアップどころか終わってもないのを偉そうに書いてしまいすみません
 ただ、感触としては研修の仕組みも教育としても概ね順調にいっているようです。勿論、改善点も今後色々出てくると思うので、適宜見直しつつより良いものにしていきたいと思っています。

 なお、今回弊社で用意した研修ですが、研修の骨子は2014/02/13 Developers Summit2014で登壇された関口亮一さんの講演「新卒エンジニア研修でできることすべきこと」をめちゃくちゃ参考にさせて頂いております。非常に洗練された研修と講演だったので是非そちらもご参照下さい。

 以上、ラクーンの新卒エンジニア研修についての紹介でした。

クラウドソーシングサービス Upwork を使ってみる

こんにちは、たむらです。
今回は先日興味本位で利用してみた海外のクラウドソーシングサービス「Upwork」についてのアレコレを書いてみたいと思います。

◆ Upworkとは?

upwork_top

UpworkはアメリカにあるUpwork Global Inc.社の提供する世界最大規模のクラウドソーシング仲介サービスです。日本にもクラウドワークスなどの同類のサービスがありますがその海外版と考えれば分かりやすいかと思います。世界中の個人や企業がクライアントとなり、事務作業やシステム開発、デザインなどの様々な仕事を発注し、その仕事に対して世界中のフリーランサーが受注します。以前は「oDesk」という名前でしたが、2015年5月に「Upwork」に名前が変更されました。クライアントとフリーランサー双方の利便性を考えた画面や機能が充実しており、非常によく出来ているサービスになっています。幾つかその特徴を紹介してみましょう。

使い勝手の良いメッセージ機能

 フリーランサーとクライアントのやり取りは基本サイト上のメッセージ機能で行います。ファイル添付や外部リンク添付などの機能は勿論ですが、「雇用」や「成果物の受入れ」といった契約上のマイルストーンも自動的にこのメッセージ上にログが残っていくのでこのメッセージ機能だけで案件の流れのほぼ全てを追うことができる様になっています。

多様な報酬支払の方法

  クライアントからフリーランサーへの報酬の支払いは、(1)時給(2)固定報酬 の2つが選択できます。
  (1)の時給制の場合、そもそもフリーランサーの作業時間が管理なんかできるの?という疑問が湧きますが、次に述べる仕組みでその点はカバーしています。(2)の固定報酬は発注案件につき固定の報酬を決めるやり方です。仕事登録時には多くの利用者は時給制を選択してるよとアドバイスが出てきますが、固定報酬を選択しても普通にフリーランサーからのオファーは来ます。まずは試してみるということであれば固定報酬の方が安心でしょう。
  その他にも、マイルストーンにより報酬を分割して支払う仕組みがあったり、良い働きをしてくれたフリーランサーにボーナスを支払う仕組みがあったりします。

フリーランサーの作業を確認するための仕組み

  時給制で仕事を発注する場合はフリーランサーの作業状況確認ができないと不安ですが、その仕組みもUpworkには用意されています。
  フリーランサーのPCでは案件に携わっていた作業時間のスクリーンショットやキータイプ数、マウス移動量などが自動的に記録される様になっており、それをクライアントが確認できる様にすることで本当に案件に従事していたのかという時給制の不安を払拭することができます。

フリーランサーやクライアント双方の履歴・フィードバックの存在

  仕事の契約をする際は、報酬や案件内容の他に、フリーランサーとクライアントそれぞれに付けられた過去仕事実績の履歴とフィードバックも確認して選ぶことになります。フィードバックは仕事が完了した後にフリーランサーとクライアントが相互に評価したものになるのですが、この評価が面白い仕組みで簡単に言えば「ホンネとタテマエ」を入れられるようになっています。タテマエ側に入れたものは相手を含めて一般に公開されるもので、ホンネ側に入れたものは表面上は出てきませんが恐らく一覧順位などで生かされているのかと思われます。「今回のフリーランサーは仕事は良かったがコミュニケーションを取るのに苦労した。悪いレビューで彼の今後の仕事に支障をきたしたくないが、私はもう一緒には仕事をしたくないなぁ」というような時、どちらの感想も素直に記載することができます。

グローバルな利用を意識した分かりやすさ

 私も英語は決して得意ではないのですが、Upworkは色々な点で分かりやすさが実現されていると思います。仕事の登録時には細かく入力アドバイスが出てきたり、ヘルプやコミュニティもかなりの情報量があり、英語がネイティブじゃない人にも使いやすくなっています。英語のレベルがフィードバックの項目の一つになっていたり、メッセージ機能で相手側の現地時刻が表示されていたりするのも、世界的な規模で使われることを想定したものなのでしょう。

Upworkの利用料

  システムの利用料はクライアントからフリーランサーへの報酬の10%分になります。固定報酬10ドルで仕事の発注を行った場合、9ドルがフリーランサーの報酬、1ドルがUpworkへの支払いとなります。



◆ 実際にUpworkを使ってみる

 それでは実際に使ってみましょう。今回はクライアントとして仕事を発注してみます。
発注する案件は、社内で作成したあるWeb汎用フォームシステム、通称「fumi」のマスコットキャラクターを作ってもらうというものにしてみました。

1. まずはサインアップ
 https://www.upwork.com/ からサインアップします。登録時にクライアント側/フリーランサー側 及び会社アカウント/個人アカウントを選択した上で入力を行います。  Facebook等のアカウント認証を使うこともできます。

クライアント側かフリーランサー側を選びます
upwork_signup1
  upwork_signup2


メールでアカウント認証をした後、ログインしたら自分のプロフィール情報を入力しておきます。

upwork_profile

2. 決済方法の登録
 自分のプロフィールの他に、仕事を発注する前に決済方法の登録をしておいた方がスムーズです。アカウントメニューの[Setting]- [Billing Method]から登録します。決済方法はPaypalとクレジットカードが選べますが、クレジットカードの場合カード認証として登録後にUpworkからの少額請求(及びキャンセル)された金額を入力する必要があります。クレジットカード会社のWeb明細等でも海外からの請求だとすぐには確認できないケースが多いので注意が必要です。私はすぐに仕事を発注したかったのでカード会社に連絡して金額を教えてもらって対応しました。

upwork_billing1


3. 仕事登録
  さあ、では早速仕事を登録してみましょう。ヘッダの[Post a Job]等から仕事の登録を行います。

upwork_postjob2

 ヘルプ曰く、「気を惹けるタイトルにせよ!」とのことだったので、"Where is my mascot character like octcat!"というタイトルにしてみました。実際に気を惹けるのかなんて分かりませんが、まぁ勢いだけでいってみましょう(笑)。
 案件の詳細記入欄には、どんなマスコットキャラクターが欲しいのか、最終的には成果物として何が欲しいのか等をできるだけ細かく書き、あまり質疑が行わなくて済むようにしました。報酬金額はお試し利用なので、固定報酬制の$30としました。金額の相場観は一度フリーランサー側として他のクライアントが出している依頼を見ると参考になると思います。

[入力項目の補足]
・How would you like to pay?
 時給制(Hourly)にするか、固定報酬(Fixed Price)にするかを決めます。
・Desired Experience Level
 どんなレベルのフリーランサーを求めているのかを指定します。あくまで指標値としてフリーランサー側の応募過程で利用されるもののようです。
・Marketplace Visibility
 誰がこの仕事を検索できるかを指定します(誰でも/Upworkメンバーのみ/招待した人のみ)。
・Preferred Qualifications
 求めるフリーランサーの必須条件を指定できます。フィードバックのスコアだったり、受注履歴だったり、居住地だったりです。
・Cover Letter
 応募してくるフリーランサーにカバーレター(挨拶状)を求めるかどうかを指定します。フリーランサーを選択するための判断材料の一つになるので特に理由がなければ求めた方が無難です。


4. 応募を待つ
  仕事の登録をしたらフリーランサーからの応募を待ちましょう。私の案件の場合、4時間位で最初の応募がきて、1日後迄に3名の応募がありました。デフォルト設定だと応募がくると画面とメールでお知らせが届きます。通知は[Setting]-[Notification]で細かく設定できます。

応募してきてくれたフリーランサーの一覧upwork_freelancerlist


5. 応募者からフリーランサーを選び発注する
  仕事を発注するフリーランサーを応募者から選考します。選考する材料となるのは、「プロフィール」、「カバーレター」、「作業履歴(どれだけの仕事をこなしたか?どれだけ成功させたか?」、「ポートフォリオ」等になります。
  これはと思うフリーランサーを見つけたら発注前にメッセージを送ってみましょう。簡単な挨拶や、仕事の理解度ややる気を確認する程度でもどんな人かを判断する材料にはなります。またできるならば作業の段取りなどを認識合わせしておくと非常に良いと思います。

 今回はインド、ウズベキスタン、ロシアの方から応募があり、その中から選ばせてもらうことにしました。インドの方はUpworkでそれなりの件数の案件も行って良さそうでしたが、ポートフォリオのイラストがあんまり日本受けする様なものではなく見送りました。ウズベキスタンの方は選考材料となる情報が余りに少なく候補外に。最後のロシアの方ですが、まだUpworkでの仕事の経験は殆ど無かったのですが、カバーレターがやる気がありそうだったことと、ポートフォリオも無難なものだったのでメッセージを送ってみました。するとすぐ反応があり、すぐにでも取り掛かるよとのこと。そんな訳で今回はこのロシアの方に仕事を発注することにしました。

フリーランサーのプロフィール画面
upwork_overview

発注前に取ったコミュニケーション。大した内容じゃなくてもいいので一度は会話を交わした方が良いと思います
 upwork_sendmessage

発注画面
upwork_hire


 発注時にはマイルストーンの定義などの契約内容の設定の他に、フリーランサーが契約に応じてくれた場合に案件掲載を閉じるかの設定も行えます。この設定を有効にしている場合は受注したフリーランサー以外の応募者にお断りの連絡がUpworkから自動で通知されます。

 その後、ロシアのフリーランサーが受注承諾し、無事契約を結ぶことができました。


6. フリーランサーと仕事を進める
  フリーランサーとの質問や確認はメッセージを使って行なうことになります。私の今回の仕事ではマスコットキャラクターのイラスト2点を成果物として指定していたので、1点めのラフスケッチを出してもらう>フィードバック>着色>2点めの作成・・・という様な流れで進めました。

フリーランサーとのメッセージのやり取り。成果物はGoogleDrive等で貰っていました。
upwork_messages


7. 成果物の確認と受入れ
 最終的に契約時に約束した成果物が完成した時点で、フリーランサー側から「フリーランサー名 has submitted work for your approval!」というアクションにより成果物の引き渡し兼受入依頼が提示されます。これに対して「変更依頼(request changes)」または「受入(approve)」が選択できます。変更依頼は何かしかのミスや不足があり差し戻す際に使います。受入はこの仕事が問題なく完了できていると判断した場合に選択します。支払いもこのタイミングで行われます。マイルストーンを設定した契約の場合、次のマイルストーンを設定することもできます。

8. 契約の終了とフィードバックの送信
 フリーランサーとの契約を完了する場合は案件リスト脇の[Action]から[End Contract]を選択します。その後フリーランサーへのフィードバックを入力できます。特徴でも書いたようにホンネとタテマエを入力できる様な仕組みになっています。

upwork_endcontract_feedback2


ちなみに、下のキャラクターが今回作ってもらったマスコットです。「fumiという日本の女性にも使われる名前」、「Webフォームシステムのマスコット」というポイントから、宇宙の郵便配達人というコンセプトを思いついたそうです。全くのおまかせで作ってもらったのですが、予想できない面白いものを作ってくれました。今回の依頼は契約してから3日程で完了しています。

fumi-characterfumi-character_2_colored_normal_size


◆ Upworkの感想

リーズナブル

   固定報酬だと5ドルから仕事を依頼できます。勿論雇いたいフリーランサーのレベルによって報酬は異なりますが、日本国内だけで発注を考えた場合より、よりリーズナブルに仕事を依頼できる可能性が高いといえます。

時差を使った進捗効率

   フリーランサーの所在地にもよりますが、時差のある地域の場合だと、夕方に仕事の詳細を伝えて翌日の朝に成果物を確認できるといったことができます。リアルタイムにやりとりできずスピード感が上がらないことのトレードオフではありますが、依頼内容と仕事の段取りを事前に良く共有できていれば時差を有効に使って業務を進めることができます。

それなりに揉めた

   実は今回の契約で1点フリーランサーと揉めたことがありました。どんな内容かというと"milestone(マイルストーン)"という言葉についての認識齟齬があったためで、私はマイルストーンという言葉を「途中の節目」という意味で使っていたのですが、フリーランサー側は「最終的な成果物」という意味で使っていて話が非常にこじれました。片方が英語ネイティブであれば余り起き得ないことかもしれませんが、非ネイティブ同士だとこんな問題も起きえます。できるだけ仕事の契約前に使用している言葉の意図や、仕事の段取りを入念に共有し、気になるところがあればしっかり確認しておくことが重要です。

世界を身近に感じる

   やはりこれが一番面白く感じたところです。東南アジアやインド、東欧など本当に様々な国の人々がフリーランサーとして登録しています。行ったこともない国や地球の裏側に住む人と仕事ができる。これは非常に面白いです。勿論ビジネスとして使う場合には、ナレッジを蓄え、リスクを十分に考慮し発注する必要がありますが、今回の例で言えば飲み会1回分程度、最低報酬の$5ならたったランチ1回分程度の金額からグローバルビジネスを経験できることには色々な可能性を感じます。

◆ まとめ

 そもそも、今回なぜUpworkを使ってみようと思ったかというと、AWS Summit Tokyo 2015の大前研一氏のトークでoDeskの話が出たことと、トークの中で「(知っているだけではなく)使ってみるということ・体感することが重要」と仰っていたことに共感したからです。エンジニアの職種としても新しい言語やシステム基盤にどんどん触って体験することが必要だと思いますが、最近そういうことに自分が臆病になっているんじゃないかと思っていたところだったので「気付き」を与えてもらった感覚でした。

 そして使ってみて改めて思うことは、IT業界においても、グローバル化というものが本当に巨大な潮流となって足元で渦を巻いているのだということ。現在のシステム開発を取り巻く環境はどんどんオープン化し、どこにいても開発ができる状況になってきています。そういった意味でクラウドソーシングを利用したシステム開発は今後よりやりやすくなると考えられます。現状、日本ではまだまだ「言語の壁」・「文化の壁」が障壁として高く、グローバルなクラウドソーシングは普及しているとはいえません。ですがいずれそれらの問題が払拭された時には、日本に拠点を置きシステムをすべて内製している弊社のような環境でも、利用し得るケースが出てくるのかもしれません。
 今回のUpworkの利用を通して、そんなことを感じることができたのでした。体感して感想を持つことはやっぱり重要ですね。

 殆ど会社のことと関係ない内容になってしまいましたが、興味を持たれた方はまずは遊び感覚でUpworkを体感されてみてはいかがでしょうか?
それでは。

記事検索