![クライアントおよびアウトソーシング会社](https://habrastorage.org/getpro/habr/post_images/f0b/96e/cb6/f0b96ecb65fbadf68003d2e18d57506d.jpg)
著者について。
自己紹介をさせてください。私はユーリ・コルホフです。この記事は私の最初の記事です。 彼は、ベラルーシ国立工科大学(セキュリティエンジニア)、ベラルーシ州立大学(投資マネージャー)を卒業しました。 職務経験-Webマスター、レイアウトデザイナー、Webデザイナー、プログラマー、プロジェクトマネージャー、パートタイムUI開発者、部門長など、ほぼすべてのポジションでITに6年以上携わっています。サイト、主要なインターネットポータルへの携帯電話向けゲーム...主なプロファイルは、IT分野のプロジェクトの開発を管理することです。 彼は、ロシア市場と外国市場の両方で、顧客側と開発者側の両方で働いていました。
投稿作成の背景またはWargamingに感謝します。
この投稿の作成の歴史を回るのは良くないでしょう。なぜなら、 私は非常に長い間habrを読んできましたが、私の手は記事に届きませんでしたが、ここに「チャンス」のケースがあり、記事は準備ができています。
アウトソーシングにうんざりしているので、私は仕事から2か月間リラックスしてきました。人生の意味を見つけ、ゆっくりとプロジェクトを立ち上げる準備をしました。 リクルーターWargaming(「tanchiki」の創設者であり、私の意見では、ミンスクで最高の企業の1つ)は、ベンダーマネージャーの欠員の面接を求める申し出で私に電話しました(仕事を探していなかったと言われるべきであり、彼らの欠員から判断して、私はそれらにはあまり適していません)。 「これはおもしろい!」-私は考えて、特に私にとって十分に面白かったので、テストタスクを完了することにしました。 リクルーターは、彼らが快適で健康的な(フィットネス、保険など)、そして高給の仕事のためのすべての条件を持っていると言いました、そして、特に、テストタスクを完了するのに約3時間かかります。 私のように、誰かが指定された期間内にテストタスク全体を実行することに成功するとは思えません。合計で約6時間かかりました。
残念なことに、会社からのフィードバックは電話での会話であり、「すべては大丈夫、みんなが気に入った」という乾いたフレーズで表現されました(文字通り覚えていませんが、本質はこれです)。 私はすべての主要なボトルネックを特定できたとは思わない 仕事を失うことは良くありません。テストタスクへの回答(便宜上、若干の変更を加えて)を公開裁判所に投稿することにしました。記事への追加と健全なコメントについて、Habraの視聴者に感謝します。
アウトソーシングにうんざりしているので、私は仕事から2か月間リラックスしてきました。人生の意味を見つけ、ゆっくりとプロジェクトを立ち上げる準備をしました。 リクルーターWargaming(「tanchiki」の創設者であり、私の意見では、ミンスクで最高の企業の1つ)は、ベンダーマネージャーの欠員の面接を求める申し出で私に電話しました(仕事を探していなかったと言われるべきであり、彼らの欠員から判断して、私はそれらにはあまり適していません)。 「これはおもしろい!」-私は考えて、特に私にとって十分に面白かったので、テストタスクを完了することにしました。 リクルーターは、彼らが快適で健康的な(フィットネス、保険など)、そして高給の仕事のためのすべての条件を持っていると言いました、そして、特に、テストタスクを完了するのに約3時間かかります。 私のように、誰かが指定された期間内にテストタスク全体を実行することに成功するとは思えません。合計で約6時間かかりました。
残念なことに、会社からのフィードバックは電話での会話であり、「すべては大丈夫、みんなが気に入った」という乾いたフレーズで表現されました(文字通り覚えていませんが、本質はこれです)。 私はすべての主要なボトルネックを特定できたとは思わない 仕事を失うことは良くありません。テストタスクへの回答(便宜上、若干の変更を加えて)を公開裁判所に投稿することにしました。記事への追加と健全なコメントについて、Habraの視聴者に感謝します。
相互作用スキーム顧客は、最初の会議から関係の終了までのソフトウェア開発者です。
スキームを設計するとき、私は意味します:
- ソフトウェア開発者はプロジェクトを完了することができます。
- これ以前は、ソフトウェア開発者との契約は署名されておらず、プロジェクトもありませんでした。
- TKの準備ができました。
- 支払い条件は契約に準拠します。
- プロジェクト管理システムとソフトウェア開発方法論(XP、スクラム、リーン、カンバン、スクラムブットなど)が使用されます。
- アプリケーションコンテンツの入力(必要な場合)は、クライアントによって行われます。
![画像](https://habrastorage.org/getpro/habr/post_images/c10/14c/33b/c1014c33bdf2978a407a5f70b3f4aed0.jpg)
ベンダーにとっては、ベンダーと顧客によるソフトウェア開発の間の契約の側面を回避することは有益です(単純化するため、通常は契約から削除します)。
- 締め切りに間に合わせる責任は開発者にあり、締め切りが最後の瞬間に発生する場合(つまり、開発者が締め切りまでの時間がないことを事前に通知しなかった場合)ペナルティを課す必要があります(ここには多くのオプションがあります)
理由:期限に間に合わないことが最大の問題の1つであり、契約でこれに言及することはあまり面白くない。 ほとんどの場合、期限に間に合わないのは開発者の責任です。 ここでは、正確に計算することは難しいことを考慮する必要がありますが、開発者には一定期間内に開発フェーズを完了する時間がないことを事前に警告する必要があります-これは必須であり、これは契約で規定されている必要があります。
- 開発者の過失による「バグ」を修正するための保証条件。期限内に検出されませんでした。 通常の保証期間は3か月です。
理由:多くの場合、一部の「バグ」が修正されていないか、作業中にすでに出現しているため、この項目は保証時間を表示または短縮しないためによく試みられます。 私の意見では、3か月未満は少ないということです。 - 開発されたソフトウェア、モジュール、ブロックなどの権利 顧客のものであり、その後の再販には使用できません。
理由:開発者が知的財産権を持っているか、他の顧客にベストプラクティスを販売/使用できることが有益であるため、顧客を不快な市場状況に陥らせる可能性があります。 - 他のモジュールまたはシステム全体の動作に影響するシステムで新しいモジュールを開発する場合、開発者はシステム全体の機能を確保する必要があります。
理由:多くの場合、1つのモジュールの開発が別のモジュールまたはシステム全体の作業に害を及ぼす可能性があり、クライアントの(肩)に「肩」がさらに改善される場合があります。 開発者はシステム全体の構造を考慮し、クライアントが「バグ」を見つけた場合は無料で編集する必要があります。 - 開発の技術文書は、顧客の要件を考慮して作成する必要があります。
理由:開発者が自分自身を顧客に完全に結び付けることは有益であり、ドキュメントが保持されないことがよくあります。 - ウェブサイトを開発する場合、請負業者はサイトのSEO最適化を考慮する必要があります。つまり、画像の説明、ページ...
理由:「ささいなこと」の時間を節約します。これは、契約条件によっては、顧客の経済的損失につながる可能性があります(ソフトウェア開発者は時間/財務を節約します)。 - システムテストは、システム設計者が提供する必要があります。
完成したモジュールの顧客による受け入れは、システムテスト、つまり 開発者は、クライアントが自らの費用で特定された「バグ」の除去を行う義務があります。 これは、開発者による製品の品質テストを保証するために必要です。 開発者が「完了」と言い、クライアント側でテストが開始されるまでに、「バグ」は無料で修正されます。 - プロジェクトを顧客側に配置する責任は、開発者が引き受けます。 同時に、顧客はサイトの技術要件を確実に順守する義務があります。
理由:顧客側にプロジェクトを配置すると、特定の問題が発生する可能性があり、これが上限付き住宅ローンにつながる可能性があるため、サーバーの配置と設定の責任はソフトウェア開発者側にある必要があります。 - ソフトウェア開発者がチーム外の専門家の助けを借りることを余儀なくされた場合、彼は、漏出、データ損失、または外部の従業員が行動または不作為によって引き起こした可能性のあるその他の損害に関連するすべてのリスクを負わなければなりません。
理由:開発者が病気になったり、辞めたりする可能性があります。 従業員のいずれか。 この場合、顧客に保険をかける必要があります。 - プロジェクトのバックアップコピーは、少なくとも1日1回、開発者の側で提供する必要があります。 プロジェクトのデータの損失に関する問題は、開発者が行う必要があります。
理由:ここでは、障害が発生した場合にプロジェクトの安全に責任を負う人を示す必要があります。 - 開発者は、選択するときに使用するテクノロジーの使用の人気から先に進む必要があります。
理由:顧客が別の開発者に移行した場合に、人生を複雑にする独自技術にバインドする。
アウトソーシング作業のコストを現実と比較して過大評価する既知の方法。
- ステージに分割せずにプロジェクト全体を開発するコストの表面的な評価。プロジェクトコストの2〜3倍の超過につながる可能性があります。
- 契約で指定された期間内に行われた作業に関するレポートを提供しない、またはクライアントが開発プロセスを制御できない
- 技術的な部分を実装するときに誤った技術を選択すると、開発コストが大幅に増加する可能性があります。
- 開発チームに必要な専門家がいないため、開発の時間とコストが増加します。
- プロジェクトまたはモジュールの開発コストの固定設定、および各トライフルのコストのさらなる増加。両者は異なって理解していました。
- プロジェクト開発コストの固定インストール-リスクが高いため、プロジェクトのコストを負担せざるを得ません。
- 設計の開発中、プロトタイピングは使用されず、設計はテキスト仕様に基づいて開発されているため、最終的に多数の改善/修正が行われ、それに応じてプロジェクトコストが増加します。
- 機能の追加/複雑化。 簡単にすることができます-難しくします。
- 「かわいらしさ」は、それらが不要な場所です(管理者について言うことができます。管理者をすばやくカスタマイズするためにcssフレームワークを使用できる場合、サイトの一部です。部品-それらはゼロから開発を開始します)。
私の意見では、実際の使用に最も近い関係パターン「顧客-ソフトウェア開発ベンダー」。
多くのアウトソーシング企業は、詳細な情報を提供せずにプロジェクト管理システムへのアクセスを提供しないことを好みます;個人的には、アクセスは顧客の要求に応じて提供されるべきだと思います。 クライアントは、プロジェクトの実装と、開発の進行状況をリアルタイムで確認する責任があります-それは重要です!ソフトウェア開発者とクライアントの相互作用における主なポイント。私が最適と考えるもの:
また、プロジェクトの総コストの計算を考慮に入れてソフトウェアを開発することは、お金と神経の無駄遣いだと思います。そのような開発は、通常、対立する状況につながります。
- 従業員の時間給または開発チーム全体のスペシャリストの仕事の平均費用に基づく仕事の支払い。 開発段階の評価が必要です。 この価格設定を最適と考える理由:
- プロジェクトを評価する際に非常に綿密なアプローチを必要とせず、100%正確にすることはほとんど不可能です。 評価が正しく行われず、ソフトウェア開発者がこれを理解し始めると、機能の「侵害」が可能な限り発生し、最終的にユーザビリティに影響します。
- ソフトウェア開発者とクライアント間の理解を改善します。 主なタスクは「迅速かつ効率的に行う」という原則に限定され、「厳しい予算とそれがうまく機能する方法に投資すること」ではありません。
- クライアントは、費やした時間に関する日次レポートに基づいて、開発中に従業員がさまざまなブロックに費やした時間を確認できるため、ソフトウェア開発者の従業員の作業の速度と品質を理解できます。
- 顧客とプロジェクトマネージャーとのやり取りは、可能な限り直接的なものです。 スカイプ、電話などを使用する場合
- 2週間のレポートと計画のみをメールで確実に送信する必要があります(管理のため)。
- クライアントは、必要に応じて、プロトタイプアプリケーションを提供するか、ソフトウェア開発チームによって開発されます。
- プロジェクトの主な機能の理解を簡素化します。
- プロジェクト開発の全体的な速度が向上します。
- 顧客と開発者の両方の機能に対する明確な要件。
- プロジェクトが移動する場所の明確な理解。
- プロジェクトの進捗状況を監視するためのプロジェクト管理システムと、プロセス、各タスクに個別に費やされる開発時間を監視する機能。 残念ながら、開発者がアクセスを提供することはほとんどありません。
- プロジェクト全体が1つのチームによって行われることが望ましい。 ある段階が1つの会社によって行われ、別の段階が別の会社によって行われるようなものであってはなりません。
- 2週間ごとの管理ポイント(「実行」)がプロジェクトを管理するのに最適な時期です。
- 開発では、よく知られているフレームワークが優先されます。また、プロジェクトを他の開発者に転送する必要がある場合に、より簡単に適応できるようにします。
- 開発者側の品質テストは直接の責任です。 プロジェクトまたはその一部をクライアントに転送するときは、すべてを徹底的にチェックする必要があります。
- さまざまなブラウザをサポートすることは、開発者の直接の仕事です
![関係パターン](https://habrastorage.org/getpro/habr/post_images/30a/ded/c1b/30adedc1bc6a6c746c98113fc8d60f03.jpg)
結論 :主なことは、開発者が同じ人であり、自分の人生を複雑にすることが自分自身の人生を複雑にしているという理解の下で、パートナーシップ/相互に有益で信頼できる関係を守ることです! 誰もが仕事の責任を負い、明確な技術的要件を提供し、新たな問題に迅速に対応し、仕事への支払いを忘れずに、そして開発者に品質、時間、スピードについて責任を負わなければなりません。 もちろん理想は達成されていませんが、私たちは正しい軌道に乗っています。