クライアントワークに適した技術スタックを選択するための基本ガイド

Unsplashのロバート・アナッシュによる写真

適切な技術スタックを選択することの影響を理解することは、フリーランスの開発者にとって成功の大きな要因です。このガイドでは、クライアントのアプリケーションやウェブサイトに最適なテクノロジーを選択する際に答える必要がある重要な質問について説明します。最新のJavaScriptフレームワークを不用意にホッピングする前に、このドキュメントを読むことをお勧めします。

多少の経験があるほとんどの開発者が知っているように、ソフトウェアを専門的に構築することは、ただちに出荷することだけではありません。また、保守性、拡張性、およびセキュリティを最適化することも重要であり、それぞれのレベルはクライアントのビジネスに依存します。

プロジェクトを適切に分析することで、使用するテクノロジーが決まりますが、その逆ではありません。このシンプルな原則は、長期にわたる優れたビジネス関係を促進します。

技術の選択の影響は、人事から財務、管理からマーケティングまで、ビジネスのほぼすべての層で感じられます。ビジョンの欠如はあなたの評判を損なう可能性があります-フリーランサーが妥協すべきではない資産。

次のリストを作成するために、1行のコードを記述する前に自分たちに尋ねる重要な質問についてシニアフリーランスの開発者にインタビューしました。結果を3つのブロックに分割しました。プロジェクトの理解(ビジネスの観点)、スタックの選択(技術的な観点)、トーチの通過(HRの観点)です。

始めましょう。

プロジェクトを理解する

製品ビジョン、クライアントのビジネス、プロジェクトの期間を理解することが必須です。

プロジェクトの範囲、予算、および期間は何ですか?

クライアントは、生き残るために2週間ですべてを提供する必要がありますか?それとも、堅牢性と最大限の保守性を必要とする長期プロジェクトですか?

知っておくべきこと:

  • いつ配信する必要がありますか?
  • 彼らは何時間払うことができますか?
  • 期待される結果は何ですか?

答えは、次の質問の大まかなフレームを定義します。また、開始する前にクライアントに現実的な期待があるかどうかを知る非常に良い方法です(ひどいクライアントを識別するためのシグナルの詳細については、この投稿を読んでください)。

それは一度限りのプロジェクトですか、それとも長期的なプロジェクトですか?

イベントや特定のマイルストーンの後に即座に破棄される短命のプロジェクトは、10年のプロジェクトとしてアプローチすべきではありません。

プロトタイプのアーキテクチャを過剰に設計しても意味がありません。貴重な予算を無駄にするだけの素晴らしい方法です。一方、クライアントが今後5年間で20人の開発者を採用してコードベースを反復処理することを計画している場合は、十分にテストされたテクノロジーに強固な柱を構築する必要があります。

彼らは技術的負債を処理できますか?

収益を生み出すようにプレッシャーをかけられているクライアントは、できるだけ早く市場に参入するために少しの技術的負債を許容します。マーケティングデータの収集が主な目的である場合、彼らは継続的な統合とテストカバレッジの割合を気にしません。最初にビジネス目標、次に技術目標。

ここでは少しの教育が必要かもしれません。長期的に技術的負債を蓄積した結果を彼らに理解させるのはあなたの責任です。そのような先見の明を示すことは、信頼性を構築する良い方法です。

どのくらい安全である必要がありますか?

次に、クライアントの活動分野について少し考えてみましょう。データの感度が変わる可能性がありますよね?まあ、あなたが選ぶテクノロジーは、このユニークな現実を反映しなければなりません。ローカルフェスティバルのウェブサイトに4096ビットのRSAおよびDDoS保護は必要ありません。

しかし、金融情報をホストするアプリの既知のエクスプロイトと実験的なプラグインを統合しますか?ちょっと危険な仲間。

それでも、セキュリティに取りclientsかれたクライアントに関しては、軽くスレッド化してください。一部の人は、夜中に起き続ける、文脈に合わない恐怖の物語を聞きます。

「しかし、テレビで見たロシアのハッカーがレストランのメーリングリストを盗むと確信しています。」

いいえ、親愛なるクライアント。彼らはおそらくしないでしょう。

プロジェクトを処理できますか?

スキルレベルをはるかに超えるプロジェクトを選択すると、ほぼ確実に混乱してしまいます。

教養のない選択はワークフローに負担をかけ、マイルストーンが失われます。クライアントのお金で無謀にならないでください。法的結果が遠すぎることはありません。

プロジェクトを提供する能力に疑問がある場合は、参加する前に必ず調査を行ってください。

適切なスタックを選ぶ

それでは、プロジェクト管理の懸念事項から話を進めましょう。本当に重要なこと、つまりスタックについて話しましょう。適切なテクノロジーを選択するのは、少し経験があり、構築する必要があるものについて明確なビジョンを持っている場合は、当然のことです。

どうすればコーディングできませんか?

数百のフレームワークと数千のプラグインが、開発者の活発なコミュニティによって維持されています。長年にわたって磨かれてきたものを再開発するために貴重な時間を無駄にしないでください。

たぶん、サーバーさえ必要ないでしょう!寛大で情熱的な人々はあなたの仕事を楽にしようとしています。彼らの努力を無視しないでください。車輪の再発明は愚かです。

開発時間は、プロジェクトをユニークにするもの、つまりカスタムビジネスロジックに常に焦点を当てる必要があります。 1行のコードを記述する前に、プロジェクトに価値を追加することを確認してください。

それは行き過ぎですか、それとも力不足ですか?

あなたのクライアントは、小さなeコマースを通じて地元の顧客にカスタムTシャツを販売する予定ですか?高可用性、負荷分散、クラスター化、非SQLフロントエンドキャッシングメカニズムは不要で、100万人の同時顧客をサポートできます。これは、貨物船でアパートから出て行くようなものです。

一方、パチンコで雄牛を倒そうとしても、あまり効果的ではありません。毎日何千ものアイテムを販売することを計画しているクライアントは、安価なインスタンスにデプロイされた無料のCMSソリューションを選択することにresします。

ジョブに適したツールを選択してください。

これらのテクノロジーは十分に文書化され、サポートされていますか?

難解なプラグインが突然機能しなくなったため、コメントのない日本語コードベースを掘り下げることは、夜を過ごすのに最適な方法ではありません。選択した各テクノロジーの周りにアクティブなコミュニティがあることを確認してください。最後のリポジトリの更新が4年前の場合、心配する必要があります。

クライアントが電話であなたに向かって叫んでいるとき、あなたが技術的な質問に対して3つの無用なGoogle結果を得るときの無力感はさらに悪くなります。

新しいテクノロジーに関連するリスクを理解していますか?

HackerNewsのトレンドフレームワークは、おそらく適切にロードテストされていません。本番プロジェクトの中心的な柱としてそれを使用することに鋭い気がするかもしれませんが、それが不必要な外部リスクを大量に追加することを知っているだけです。

それでも不注意だと感じる場合は、少なくともクライアントのユースケースをサポートしているかどうかを知るのに十分な試行錯誤をしてください。重要なマイルストーンの前日にフレームワークを変更しなければならない場合、彼らはあなたのフレームワークが300のアップ投票を得ることを気にしません。

トーチを渡す:これはあなただけのものではありません

ソース

このように分類するのは嫌ですが、クライアントはあなたに永久に依存したくありません。確かに、スタックは堅牢で、十分に文書化されており、安全で、非常に高速です。

しかし、世界中の開発者の小さなコミュニティだけがそれを機能させる方法を知っているなら、あなたはデッドロックを作り出しています。クライアントはデッドロックを嫌います。

彼らはあなたのStackで動作する開発者を見つけることができますか?

それは、あなたが彼らと一緒に仕事をすることができなくなった、あるいは彼らがチームを拡大したい、あるいは開発努力を社内に本国に送金したいからかもしれません。しかし、最終的には、クライアントはコードをコードベースにプッシュする別の開発者を必要とします。

特定の専門知識を持つ1人の開発者を見つけるために世界中のすべての求人掲示板を検索する必要がある場合、誰が非難されるのでしょうか。

そのような開発者に支払うお金はありますか?

過度に複雑な技術スタックで働くために雇うことができるのが20年の経験を持つ高価な達人だけなら、他の誰かに主流の技術ですべてをやり直してもらう方が費用対効果が高いかもしれません。

開発努力をトンネルビジョンで見ないでください。あなただけのものではありません。

結論

この短い記事が、恐怖物語、ストレスの多い夜、厄介な議論を避けるのに役立つことを願っています。重要な質問に答える前に技術決定を急ぐことは、長い目で見れば時間の節約にはなりません。これは話す経験です。

IDEまたはコードエディタをすでに開いていると感じている場合でも、時間をかけて適切に状況を評価してください。

ハッピークライアント=リピート/紹介ビジネス=少ないBizdevの努力=開発により多くの時間を費やしました。

注:この投稿は、私の良き友人であるPhilip Barclayとの緊密なコラボレーションによって作成されました。 Philは長年デジタル製品を製造してきましたが、現在はMirego and Picksで素晴らしいものを構築しています。

コメントで重要な質問を見逃した場合はお知らせください!

もともとSnipcartブログで公開され、ニュースレターで共有されていました。