克服した開発者への5つの恐怖

ハロウィーンは恐怖について話す時です。 私はIT会社でプロダクトマネージャーとして働いているので、これは開発者の悪夢についてです。 しかし、普通ではなく、変化の時代に現れるもの。







企業が開発するとき、開発へのアプローチを変え、新しい製品を作成し、現在の製品の機能を拡張し、数十人の従業員を受け入れます。古いやり方で働いていた人は、再構築するのが困難になります。 私たちはその変化に喜んでいますが、時には、なぜ隠れているのか、私たちはそれらを恐れています。 私は1年間プロダクトマネージャーとして働いていましたが、この間、チームに対する5つの大きな恐怖に直面しました。 今日は、これらの恐怖と、それをどうやって克服したかについてお話します。



1.すべてを落とすことへの恐怖



テストは、バグなしで製品をリリースする確実な方法です。 ただし、コードをチェックする機器がない場合もあります。



サーバーとデータセンターを管理するためのパネルであるDCImanagerを作成しますが、仮想環境でコードが機能する条件を作成することはしばしば不可能です。 たとえば、新しいスイッチ、ルーター、またはPDUモデルのサポートをコントロールパネルに追加しますが、テストベンチにはそのような機器はありません。



場合によっては、テストは無視できますが、テストは無視できます。 間違いは高価です。 1つの変数だけを初期化するのではなく、半分のケースではオペレーティングシステムがインストールされません。 数行のコードで間違えられます-データセンターは「横になります」。 ご存知のように、「倒れた」データセンターの責任者は誰もいません。そのため、この懸念は私のチームの最初の場所にあります(会社の変革とは関係ありません)。



すべてを落とすという恐怖を克服する方法



  1. すべてのチーム開発者は、各機能のコードレビューを行います。
  2. タスクがリリースされないもののリストを保持します。
  3. 開発のリリース後、それを考慮に入れなかったことを分析します。 いつでもタスクに戻ってメモリ内のすべてを復元できるように、何が行われ、どのような動作が観察されたかを詳細に説明します。
  4. 知識ベースを常に更新します。 私たちは開発者向けのドキュメントに時間を割き、開発者自身で知識を共有しています。 トレーニングとスタンドアップ。
  5. 最後になりましたが、重要なことです。 提供された機器で、顧客向けのカスタム開発をテストします。


既存のスイッチにポート集約制御を追加したら。 エラーが発生した場合、データセンターのネットワーク機器の動作は完全に停止します。 クライアントは午前3時にデータセンターに到着し、状況を制御しました。その場合、彼はすぐに古いバージョンにロールバックし、機器の操作を再開しました。 リモートアクセスが失われる可能性があり、データセンターが麻痺します。


2.テスターなしで放置されることへの恐怖



開発者は単体テストを作成し、個人は手動テストに従事しています。 しかし、不可抗力が発生すると、チームは手動テスターなしで放置されました。 機能をリリースできなかったため、開発者は互いに確認する必要がありました。



それは誇りへの打撃でした。 そのため、私のチームのすべてのプログラマーがテスター(手動および自動)を離れました。 それらの手動テストに戻ります-一歩戻ります。 彼らは、自分で対処できれば、テスターが彼らに戻らないことを恐れていました。 しかし、恐怖は根拠のないものであることが判明しました。2、3のスプリントの後、テスターがチームで彼の地位を獲得し、経験から多くの有用なことを学びました。



クロステストの利点は何ですか



  1. 彼らは「若者」を思い出し、再びテスターの側から開発を見ました。 場合によっては、テスターの作業を楽にするために追加のアクションが追加されました。 たとえば、検証用の統計を生成します。
  2. 彼らは、開発者がいくつかのことに目をつぶっているので、開発者が彼のコードをテストすることができないという長い間知られている事実を確認しました。 したがって、彼らはお互いのコードをテストしました。
  3. もう一度、テスターはチームの重要な部分であると確信しました。 彼らはリリースで登場する機能の品質に責任があります。


3.別のチームに入ることへの恐怖



DCImanagerは2013年にリリースされました。 6年間、技術は変化しました。新しいバージョンを作成する時が来たので、ゼロから作成することにしました。 プロトタイプを作成し、MVPを定義し、優先順位を付けました。 古いバージョンの開発は凍結されましたが、新しいバージョンを開始できませんでした-2つの新しい製品がすでにリリースの準備中で、すべての部隊がそれらに専念していました。少し待たなければなりませんでした。 休止期間中、私の開発者は、自動化をホストする他の製品であるBILLmanagerのプロジェクトチームになりました。



そして、別の恐怖が現れました。 製品という言葉のあらゆる意味でのエンジニアリングの開発者は、請求書を受け取ることを恐れていました。 これは彼らの領域ではなく、多くのアカウントを理解するのは面白くないように思われました。 私はそれが私の開発者をやる気にさせるのではないかと心配しました。 私たちとは異なり、請求チームは荷降ろしを喜んだ。



いくつかのスプリントでは、BILLmanagerに取り組みましたが、この経験も役に立ちました。



実装が行われた方法について簡単に



  1. 別の製品に切り替えるストレスを最小限に抑えるために、チームはチームのままで、BILLmanagerのスタッフに依存しませんでした。
  2. タスクは、「昨日それを行う必要があるが、手が足りない」という原則に従って選択されました。 プロダクトロジストがタスクについて話し合った後、次のスプリントを計画するときにチームに翻訳しました。
  3. BILLmanagerの開発者は私たちのメンターでした。 レセプションの男性がすべての質問に答え、チームリーダーがそれがどのように機能するかを話しました
  4. 2つのスタンドアップがありました。 最初に請求に行き、次にチーム内で結果について話し合いました。


開発者は別のチームの導入からどのような利益をもたらしましたか



  1. 別の製品は、理解する必要がある他人のコードです。 理解する他の作業ロジックに加えて。 メンターメンタリングと処刑人の忍耐のおかげで、私たちは課金に慣れ、新しいスキルを汲み上げ、改善を非常に迅速に確認しました。
  2. もちろん、他のチーム内で何かがどのように機能するのかを調査しました。 すべての人が同じであるように見えるかもしれませんが、どのようであっても。 違いは詳細にあります。 彼らは自分たちにとって最善で最も便利なものを原則として採用しました(例えば、彼らはスパイし、自分自身のためにわずかに変更して、スクラムボードを使用し始め、コードスタイルでいくつかのポイントを採用しました)。


4.メンターになることへの恐怖/チームリーダーなしでいる



同社には、できるだけ多くの強力なプログラマが必要です。そのため、開発者がハードスキルを高めて中級レベルに移行すると、初心者のトレーニングが彼の責任になります。 ただし、全体的な指導は通常、チームリーダーに任されています。 そのため、他の製品で主要な開発者の経験が緊急に必要になるまで、私たちのチームにいました。 チームレードなしで残されたプログラマーは、初心者とお互いのトレーニングを受けなければなりませんでした。



メンターになるのは怖いです。 あなたは自分の仕事から気をそらされ、他の人に耳を傾け、あなた自身が時々理解していることを直観のレベルで説明し、理解されるような方法で説明する必要があります。 パダワンが理解していない場合、これはあなたの問題です。 彼が間違えたのに気づかなかったら、答えます。



良いメンターになる方法についてはアドバイスしません。これは別の記事のトピックです。 しかし、私たちは管理し、このかなりストレスの多い経験から、次のことを学びました。



  1. 説明では、より多くのコンテキストを与える必要があります。 頭の中ですべてが美しく、あなたがそれを言うとき、それは引き裂かれ、理解できないことが判明します。
  2. レビューのコードを見るだけでなく、人がこのコードで解決しようとしたことを理解する必要があります。 その後、そのロジックを理解し、エラーを見つけやすくなります。
  3. 知識を共有することは有用です。思考を定式化することを学ぶ。 すべてを頭の棚に置きます。 説明しながら、問題の最善の解決策を見つけます。


5.新しい技術を学ばないことへの恐怖



落ち着いたら、DCImanager製品の新しいバージョンを開始します。 ここが待望の瞬間のようです。 今、意欲的な人でいっぱいのチームで、すべてをゼロから始めます-古いバグや歴史的に開発されたコードの奇妙な依存関係を見ることはありません。 しかし、恐怖の場所がありました。



数年前から、テクノロジーははるかに進歩しています。 古いバージョンをC ++ 11で記述し、makeを使用して、新しいバージョンではC ++ 17、CMake、Conan、Dockerを選択しました。 チームはこれらすべてを学び、応募方法を学ぶ必要があります。 コンフォートゾーンから抜け出す別の方法、挑戦、「他の人よりもうまくいかない場合はどうなるか」、「それから私を待っているより多くの問題があるので、それを見つけられず、追い出されます。 私たちはまだ新しい技術を習得しており、この恐怖との戦いはまだ進行中です。



新しいテクノロジーをより早く学ぶ方法



  1. 年上の同僚や経験豊富な同僚にaskするのを恥ずかしがらず、愚かに見えることを恐れないでください。
  2. 新人の没入のプロセスをスピードアップし、同じことを1万回言わないために文書化する。 知識ベースを維持します。
  3. さて、Googleはいつでもサポートしています。 動作しない場合は、ポイント1を参照してください。


恐れではなく、課題



私は、新しいことを学び、より良くなるための機会として実験をし、チームにも彼らの恐怖を見てもらいたいと思っています。 気分は私に大きく依存していると思います。 製品と開発者を信じるときは、スタンドアップでそれらに耳を傾け、振り返って問題を分析し、問題をサポートし、変更の必要性を説明すると、彼らは恐怖を克服するのが簡単になります。



しかし、正直に言って、在庫にはまだいくつかの無敗恐怖症があります。 たとえば、締め切りの恐怖、または初心者とうまくいかないことの恐怖。 それらについては何もできないように思えますが、ただ我慢してください。 しかし、やがて私たちの見解は変わるでしょう。



どうして怖いの?



PS DCImanagerのデモ版を最初に見たい場合は、「新しいDCImanagerを見たい」という件名でbizdev@ispsystem.comに連絡先を送信してください。 準備ができたら、私たちはあなたに手紙を書きます。 または、サーバー管理用の製品が必要であるが、何らかの理由で現在のDCImanagerが適合せず、市場に適切なソリューションがない場合は、そのようなソフトウェアに対する要望を書いてください。開発計画に何かを含めるかもしれません。



All Articles