私の母校から毎年インターンが会社にやってきます。
今年の学生は私のプロジェクトにサブプログラマーとしてアシスタントしてもらうのです。
私、今回の仕事では初のメインプログラマーというポジションを与えられました。
(実際には過去に一回あったんだけど、一人親方だったし規模が小さかったのでメインなんていうカッコいいものではなかった)
私のプロジェクトの進め方、
アシスタントへの仕事の振り方はとりあえずこんな感じ でした。
・実装しかさせない
学生さんはクラスがわからず、オブジェクト指向をよく知らないので下手に設計はさせません。
クラスファイルの追加は自由にさせますが、課題と称してできる限り自分の理想形に持ってこさせるように指示します。
・どうしても欲しい機能があったら相談の末追加
機能はすべて私がモジュール、タスク化して公開する形式。
メインPGに仕事が集中しますが、サブの実装コードはオブジェクト生成とメソッド呼び出しだけで
すべてが解決するためアプリ層の作りはタイトになる。
・作業が遅いようであれば実装例を見せて作らせる。
似たような作りをしたコードの実装例だけを見せてあとは本人達に改造してもらう形式。
「これを手本に作ってね」というものを用意して学習させながらも実装させます。
・チャットとコミュニケーションで全体の状態把握
毎日退勤時間の30分前くらいに様子を見に行きます。
多すぎず、少なすぎず
常にスカイプで相談をしつつの作業です。
呼ばれたらすぐに飛んでいきます。
人見知りな人や遠慮しがちな人も多いので直接見に行くことも忘れずに
しかしあまり行き過ぎるとウザがられたり作業に集中できなくなるのでほどほどに
・疑問はできるだけ解決していくようにする
退勤前に「わからないことはないか、あるとするならどこがわからないのか」をとりあえず聞く。
・難しい言葉は使わない
わからないことはわかるように教えるしかない。
とはいえどもクラスを知らない人に短期間でクラスを教えるのは難しい。
「構造体のすごいバージョンだよ」って教えても構造体をよく知らない人もいるわけなので
「オブジェクト」とか「インスタンス」という言葉はとりあえずタブーにしています。
・定時に帰らせる。休憩時間も厳守
契約時間外の労働はさせない、休憩時間に仕事の相談はしない(相手からしてきたら別)
意外とこれは達成しやすかった。
プログラマーが定時に上がれない理由は「仕事が終わらない」からだけど、
責任の大きくなるものをやらせなければ問題はない。
といった感じ。
出向のときに自分がメインプログラマーさんにフォローされた時の行動を
今度は自分がマネをしているような気がする。
あとはコミュニティとかで得た知識だろうか。
仕事の出来としてはα締切1週間前だけど結構順調、PGよりもデザインと仕様が間に合っていない状態だが、
来ても対応に追われることはなさそうな感じがする。
ちょっと学生の人達には教育にも成長にもならないかもしれない、という欠点があるけど
これは追々余裕のあるときに教ればいいかなと思っている。
プロジェクト管理に追われるでござるの巻
RE: プロジェクト管理に追われるでござるの巻
やってることからしたら既にベテランの域ですね。
むしろ想像力を育てたほうが伸び代が大きくなる気がします。せんちゃ さんが書きました:ちょっと学生の人達には教育にも成長にもならないかもしれない、という欠点があるけど
これは追々余裕のあるときに教ればいいかなと思っている。
Re: プロジェクト管理に追われるでござるの巻
右も左も知らない人たちにいきなり他人の作ったシステムを触らせる+慣れない言語を使って実装してもらうので
どうやったらオブジェクト指向のコツも掴みつつ伸ばせられるかが自分自身の目標になっています。
既にある実装例を真似して似た機能を持つクラスを使い始める人や、
システム層の作りを頑張って追って理解しようとする人、
自分で目の前の問題が解決できない人、
既存のコードをコピペするだけの人など様々なのが面白いですね。
どうやったらオブジェクト指向のコツも掴みつつ伸ばせられるかが自分自身の目標になっています。
既にある実装例を真似して似た機能を持つクラスを使い始める人や、
システム層の作りを頑張って追って理解しようとする人、
自分で目の前の問題が解決できない人、
既存のコードをコピペするだけの人など様々なのが面白いですね。