製品、特にITに取り組むには、テクノロジーの知識が何らかの形で必要であることは誰もが理解しています。 マネージャーにとって、「バックエンド」、「レイアウト」、「データベース」という言葉は新しいものであってはなりません。 バグをキャッチしたり、製品の成長点を確認したりするには、常に使用するだけでなく、その機能を理解する必要があります。 開発者にとっては、「何かが遅くなったように見えます」と言うよりも、「モバイルインターネットでレイアウトを作成するのに時間がかかる」または「このシナリオではデータの一部が読み込まれない」という言葉を考え出す方が良いでしょう。 したがって、マネージャーは、問題のある場所で何が起こっているかについての仮説の生成とテストを、「まったく同じ足であるが傷つけない」開発者に移します。
たとえば、マネージャーが問題を再現するとき、ブラウザーコンソールを開き、ネットワークエラーを見つけて、これらのエラーのトレースからデータを受け取って開発者のところに来たり、データを調べてバックエンドが間違ったjsonを与えたことがわかると、状況はすぐに証拠によって裏付けられたように見えます単一のユーザーの苦情ではなく、問題。
同様の状況は、プログラムする機能でも発生します。 前回の投稿のすべてのポイントにほぼ対応するマネージャーがいるが、プログラミングの方法がまったくわからないマネージャーを想像してください。 この人はチームの他の人からどのように認識されていますか?
- こんにちは、素晴らしい機能A(B、C、D、...)をギャグする必要があると思います。どれだけ需要があるかを確認したいと思います。 私たちの製品の使用における、そのようなシナリオとそのようなシナリオの割合は何ですか?
- こんにちは、私のページは定期的に曲がって表示されます。ユーザーもそれを見ると、それは残念です。 何が起こっているのか確認してください?
- こんにちは、ここABの実験では、メトリックが統計的に大幅に変更されています。理由を理解しましょう。
- こんにちは、ここで新しい実装についての投稿を書いています。実装の詳細を正しく説明しているかどうかを確認してください。
- ...
そのようなマネージャーは、チームメンバーからは、追加の、時には役に立たない作業の絶え間ない生成者として認識されます。 そして、ここでプログラムする能力は、マネージャーが自分の仕事とチームの仕事をより効率的に整理するのに役立ちます。
プログラミングの方法を知っていれば、他の人の計算に依存せずに、自分の仮説をすばやくテストでき、これらの計算の順序で人をそらすこともありません。 機能Xを見たユーザー数を個別に計算したり、プレゼンテーションの統計を収集したりできます。 多くのプログラマーはコンテキストを切り替えることを好みません。マネージャーは、データに基づいて気を散らすものを「すばやく把握」し、「仕事の気分を落ち着かせる」ことを長い間求めています。 自分で「すばやく把握」できるマネージャーは、チームを引き寄せることが少なくなり、生産性が向上します。 プロダクトビジョンと呼ばれるものは、定性的および定量的な研究によってサポートされる必要があります。 そして幸せなチームは、マネージャーが少なくとも単純な定量的測定を自分で行う方法を知っているということです。
さらに、プログラムする機能は、アナリストがもたらす計算の検証に役立ちます。 たとえば、マネージャーが何らかの複雑なアクションセットを使用してリクエストの割合を計算するように要求し、アナリストがリクエストの総数がマネージャー自身の計算と一致しない計算を行う場合、計算の正確性を疑い、理由のあるチェックを求める理由があります。
最も基本的なプログラミングスキルでさえ、開発者と同じ言語を話すのに役立ちます。 開発者が何をしているのか理解していない場合、彼はどのようにタスクを設定できるのでしょうか? 開発者からリファクタリングに1週間かかると言われ、マネージャーがこれがなぜ必要なのか理解できず、機能を急いでいる場合、開発者は大きな技術的負債を抱えているため、プロジェクト全体がこれに苦しむ可能性があります。
また、タスクの複雑さをよりよく理解でき、開発者が3日間の開発があると言っており、マネージャーが1日で何をすべきかを理解している場合、開発によって表明された論争を恐れることなく、計画に役立ちますオプション。
どんな専門分野でも、クールで自給自足のスペシャリストが高く評価されています。 他のすべての条件が同じであれば、ソフトスキルを開発したプログラマーは内向的プログラマーを好みます。プログラミングの方法を知っており、技術的なバックグラウンドを持つマネージャーは、優れたマネージャーよりもテクノロジー企業で高く評価されます。
どこから始められますか?
多くの作業ファイル、スクリプト、および一部のデータは、sshを介したコンソールアクセスを備えたサーバー上にあるため、コマンドラインを使用して作業する必要があります。 コマンドラインインターフェイスは、Unixライクシステム(Linux、MacOS)、およびWindowsでも使用できます。
コマンドラインで作業したことがない場合は、たとえば記事「Linux Basics:Introduction to bash」を読んで知り合いを始めることができます。
特定のリンクを例としてのみ提供します。 次の方法についてアイデアをお持ちください。
- ファイルツリーをナビゲートする
- ファイルの作成、コピー、削除
- Vimまたはnanoを使用してファイルを編集する
- sshとscpを使用して、ラップトップからサーバーにファイルを交換します。
多くの場合、データファイルは非常に大きく、たとえば、多くのユーザーに馴染みのあるExcelは使用できません。 したがって、テキストファイルを操作するためのコマンドに精通する価値があります。
最後に、cat、sort、uniq、wc、head、tail、awk、sed、grep、joinのコマンドのアイデアを得た場合に役立ちます。
正規表現を使用してgrepコマンドを知ることは非常に便利です。
データを操作するためのより強力で柔軟なツールはPythonです。 それを習得するには、どのオンラインコースでも適切です。codecademyから始めることができます。 パンダまで10分 -データをすばやく簡単に分析したい人向け。
結論として、マネージャー用のプログラミング機能は、Pythonやプラスに関する数十冊の本を読むことではなく、数千行のコミットされたコードではないことを明確にしたいと思います(ほとんどの場合、誰もそのようなマネージャーを拒否しません!) 多くの企業には既製のツールがあり、SQLライクな言語、または一般的な美しいインターフェイスのドラッグアンドドロップフィールドで、データのクエリを構成し、適切な形式でレポートを取得できます。 この場合、「プログラミング」とは、データ構造を理解する能力、受け取った情報に対する重要な態度、およびご自身の製品の非常に深いところに到達したいという欲求です。 ただし、プロジェクトを大規模に管理する必要があるほど、より多くの技術的知識が役立ちます。 マネージャーは、開発者が提案したプロジェクトアーキテクチャを評価し、すべてのコンポーネントのテストの可用性を監視し、リファクタリングする必要があるものを提案する必要がある場合があります。 優秀なマネージャーは、技術的な知識を際限なく開発し、製品のデバイスに没頭することができます。 そのようなマネージャーに敬意と称賛を。