この記事はレビューであり、特別なソフトウェア開発の詳細はありません。 私の目標は、インターンシップにメンターとして参加したときに得た経験を読者に知らせることです。 私は働いている会社に名前を付けたり、参加したプロジェクトに名前を付けたりしません。リソースの規則に反するからです。
はじめに
php + mysqlのような一見人気のあるスタックの中でも、Tomskで開発者を見つけるのは困難です。 実際、スタッフ不足という問題から参加のアイデアが生まれました。私たち(会社)は実験をして、経験の少ない人々の中から従業員を見つけようとすることにしました。 キッチンに入ると、インターンや初心者向けのプロジェクトについて誰が何を知っているかという疑問が持ち上がりました。 すでに参加し、共有し、議論した人々がいました。 私は参加する準備ができたことを発表しました。 私は取得したかった:
- 質問への答え:「経験がほとんどない/まったくない人々と作業成果物を作ることは可能ですか?」;
- 受賞
- ソフトスキルをアップグレードします。
- ソフトウェア開発プロセスのインターンを紹介します。
プロジェクトについて
私たちが参加したプロジェクトは、2か月以内に週に少なくとも20時間働く研修生に、さらなる雇用を目的として、メンターの指導の下でソフトウェアを作成する機会を与えます。 インターンは経験を積み、開発プロセスに精通します。 これは、インターンがゼロになることはありませんが、いわば最小限の知識で「ウォームアップ」されるという点で、企業にとって有益です。 その結果、すでに準備された人の選択肢があります。
プロジェクトの簡単な説明
プロジェクト「オンラインコンサルタント」がインターンシッププロジェクトに選ばれました。 あなたはすべてサイトでそれらを見ました、私はこれについて詳しくは述べません。 隅にあるウィジェット、アイコンをクリックすると、チャットウィンドウが開き、オペレーター/ボットとチャットします。 何千人もいますが、ポイントは新しいものを作ることではなく、実際の仕事に向けて研修生を準備することです。
プレゼンテーション
インターンシップに人々を引き付けるために、私はトムスクの3つの大規模な大学でプレゼンテーションを準備しました。 聴衆と話すことがどれほど難しいか知っていますか? それは人々と知り合うのとほぼ同じで、一度に数十人だけです。 そのプレゼンテーションとプレゼンテーションは、私に笑顔以外の何も引き起こしません。 今、私は何かを変えるでしょう。
結果と選択
スピーチの後、参加の申し込みが届き始めました。 私のプレゼンテーションに参加した約150人から180人のうち、6人の参加者がプロジェクトへの参加を申請しました。 これらのうち、5つを選択しました。 彼らは異なるレベルのトレーニングを受けていました。 フロントエンドに特化し、この方向で開発したかった人。 2番目は、PHP + MySQLでの開発経験がありました。 残りのメンバーはほぼゼロになり、大学での研究室の仕事はカウントしませんでした。
必要条件
プロジェクトを開始する前に、仲間と私は、知り合い、講義、バージョン管理システムの練習、分析、テストなど、8時間の集中力で2日間の休暇を待っていました。
要件には、実行された作業に関する日次レポートの提供も含まれていました。 金曜日の会議にチーム全体が参加し、他の参加者が進捗状況について話し合い、お互いのプロジェクトについて話し合いました。
プロジェクトは、プロジェクトから参加者を追放する権利を与えました。 また、デモ当日にプレゼンテーションを行う必要がありました。 これは、研修生が自分の仕事の結果を実証する公開イベントです。
開始する
プロジェクトの開始時には、すでにインフラストラクチャを展開していました:gitlab、redmine、メール、アカウントなど。 いくつかの技術的な欠陥を除いて、すべてがうまくいきました。 水曜日に直接会い、開始から1週間後に、毎日のオンライン会議が必要であるという結論に達しました。 21:30になるという結論に達しました。 彼らでその日の成功と課題について話し合いました。 また、マネージャーが1週間任命され、金曜日にレポートを送信し、残りの参加者にレポートを配信しました。
最初の2週間は揺れ動いており、タスク管理システムの仕組み、レポートの作成方法、タスクの受け渡し方法、タスクの引き渡し方法、gitの操作方法、完了したタスクのレポートで待ち望んでいて見たいものなどについて説明しました。 一般的に、純粋な組織。
はい、ところで、TKがありました。 それに基づいて、システムのコンポーネントをスケッチし、アーキテクチャとテクノロジーについて説明しました。
これは、最初のコンポーネント回路オプションの1つです。
プロジェクトの進捗
コンポーネント名ごとにredmineでタスクを作成しました。 これらは主要なタスクでした。 「Widget」、「Operator Application」、「Messaging Server」などと言います。 次に、「ウィジェットプロトタイプ」、「ウィジェットレイアウト」、「nodejsインストール」、「メッセージングアルゴリズム」などのサブタスクを作成しました。 さらに、「管理パネルのレイアウトレイアウト」、「レイアウトフィルターダイアログの履歴」など、さらに小さいものもあります。 その結果、約60のタスクを獲得しました(プロジェクトの終わりまでに、欠陥を修正するための小さなタスクのために、それらの数は94に増加しました)。
3週間後、メッセージングサーバーを除くすべてのモジュールで進展がありました。 話はさておき、これについては触れませんが、参加者の1人をプロジェクトから除外したと言います。
終了の約1週間半前に、原型のプロトタイプがありました。 曲線レイアウト、バグ、実装されていない機能。 この数週間でプロジェクトを完了しました。
デモ日
ビデオでは、Dimaはプロジェクトの参加者の1人です。 リンクをたどると、得られたものを見ることができます。 サイト 、 管理者 、 オペレーター
詳細:admin / admin、operator1 / operator、owner1 / owner。
結論
- 学生とプロジェクトを作成することは可能であり、必要です。
- 時間が短いため、コードの品質が低い可能性があります。 この特定のプロジェクトでは、作業のプロトタイプがコードの美しさよりも重要です。
- 2か月で約80時間の正味時間を費やしました。 この数値は将来考慮されるべきです。
- ワークフロー全体の基本的なことを説明する必要がありました。
- すべてのチームメンバーが何をする必要があるかを理解することが重要です。
- 誰も経験がなかったらどうするかわからない。 実際には、経験豊富な人がタスクを高速化してそれらを渡し、メインブランチに分類され、残りは自分の仕事の例を見て同様のタスクを実行できます。 この時点で、経験豊富な人が新しいタスクに切り替えて実行します。
- 統合の問題は常に存在します。 統合は直接行うのが最適です。
- プロジェクトから人を除外する準備をする必要があります。 プロジェクトから人々を除外することは心理的に困難です。