大きくて費用のかかる間違いで開発者を解雇する必要がありますか?そうは思わないが、経営陣は血を欲しがっていた





イギリスの誰もがサッカーに夢中です。たくさんのアマチュアチームとたくさんのスタジアム。そして、何人かの知人を通して、イギリス人がアイデアといくらかのお金で私に近づきました-彼は人々が彼らのアマチュアフットボールチームを管理することができるアプリケーションを作るように私に頼みました。人々をフィールドに配置し、交代を行い、プレーヤーを探し、スタジアムを予約し、チャットします。



その時、私は人生で奇妙な時期を過ごしました-そして私はどうやって生き残ったのか全く分かりません。日中は大学、夜は朝まで勤務中のバックエンドとして、そしてアンドロイド開発のコースの間のどこかで働いています。さらに、私はショーのためにそこに行くのではなく、本当に火をつけるのに十分なエネルギーと熱意を持っていました。



それで私は働くことに同意しました。そして、それは私がバックエンド開発で経験した後の単なる出口でした。



私の学校の数学の教室には、すぐに興味をそそられる碑文のある看板がありました。それから私はこれらの言葉の正しさを何度も確信しました:



プログラムはあなたが望むことをしませんが、書かれていること



大学に入学したとき、先生方との打ち合わせで、プログラマーになりたいと言われました。私は確信しました-あなたはそうするでしょう。確かに、彼らはプログラマーになるためにはあなたが一生勉強しなければならないと付け加えました。どういうわけかこれを自分なりの方法で解釈したので、私は一生トレーニングを延長せず、大学でのカップル、夜のコース、夜のフリーランスなど、完全に積み重ねました。



パートタイムの仕事を探すことで、私は興味深いプロジェクトに参加しました。プラス面の音声認識エンジンの開発です。チームと一緒に、私たちは認識のパーセンテージを求めて戦いました:私は本当に結果の100%まで車をポンプでくむことを望みました!



それは完璧主義者の本当の苦痛でした。私は自分の解決策を考え出し、他の人のオープンソースエンジンを取り、それらを歯車に分解し、それらを再組み立てしました。私はコードをカスタマイズし、夜は眠らず、ペアでつついた。フィニッシュラインで数キロのコードを数パーセントほどきました。



何も起こりませんでした。これが達成できないことに気付いたのは、数年後のことでした。Facebookのニューラルネットワークが95%以下の確率で顔を認識するというニュースを受け取りました。私はFacebookに同情しました:そのような大企業でさえ100に達することができませんでした。また、記事には、93%の確率で人が顔を認識するという優れた追記もありました。真剣に?



だから初めて開発に少しがっかりしました



私はフロントエンドを試しましたが、私がそれらについて知っていたすべては、「彼らはウェブサイトを作る」というステレオタイプの領域にありました。それでも退屈に聞こえた。もっと面白いものが欲しかった。新しいエリアを見つけるために、私はSkolkovoに引っ越しました。



Skolkovoの政務官は良い奨学金を支払った。しかし、もしあなたが大規模にモスクワに住みたいのなら、もう少し釘を打ってください。私は金融部門から会社の欠員に出くわしました。 pythonで書き戻す必要があり、夜は勤務することもありました。



インタビューでは、私はマルチスレッド、一枚の紙のプラスによって徹底的に駆り立てられました(手でコードを書くのは大変でした)。彼らはパイソンについていくつかの基本的なことを周りに尋ねました、そして結局彼らはそれを取りました。



この会社の前は、私は小さなチームでしか働いていませんでした。音声認識の場合、5つ作業しましたが、ここでは開発者からリンゴが落ちる場所がありませんでした。そして、彼らは皆私よりも知っていました。私の仕事がフィードバックを得たとき、私は質問に襲われ、至福になりました。最初の3週間はクラフトをマスターしました。各コードレビューは「悪い」答えで終わりました。私はすべてをやり直しましたが、それはそれ以上良くなりませんでした。私のコードは少なくとも4人の承認が必要でした。時々、3人は「規範」と言いました、そして、4人目はまだ不平を言う何かを見つけました。



彼らはまた私に興味深いレビューの方法を教えてくれました-私はリードにコードを与えます、それはいくつかの場所をマークします、しかし問題が何であるかを言いません、私はそれを自分で理解しようとしなければなりません。そして、あなたは本当に考え始めます-それは非常に刺激的です。



しかし、そのような厳格な品質管理でさえ、私たちをトラブルから救うことはできませんでした。



仕事はデータベースに関連していた。同社のサーバーには、大量の顧客財務情報(銀行カード、取引履歴)が保存されていました。5日に1回、仕事で過ごす夜がありました。私はすべてが機能することを確認し、メールと電話に応答しました。私は夜勤が好きだった。出口のために、彼らは2倍ではなく3倍の料金を支払いました。私は夕方の9時から朝の6時まで勤務を続けました-私は3日で支払われました。学生は他に何が必要ですか?



お金に加えて、学生は十分な睡眠をとる必要があります



当社では、すべての作業プロセスが完璧に構築されています。チェック、テスト、レビュー。再度チェック、テスト、レビューします。しかし、そのようなシステムでさえ失敗する可能性があり、あなたは、徴兵兵のように、朝に警戒して育てられることに備えなければなりません。



ある晴れた日、私は職務から戻った。足から落ちた。私は大学に行きました-学生を描写しました。夕方、私は死んで亡くなりました、そしてそれは8時でさえありませんでした。私は永遠に眠りたかったのです。



しかし、午前4時に、会社の支援全体の責任者に目が覚めました。彼は初めて私に電話をかけました。



-昨日、基地で何かしましたか?

-いいえ、特別なことは何もありません。

-起きて、緊急にコンピュータに行きます。



もちろん、私は朝の人ですが、それでも電話に出られませんでした。私の時計は事故の前夜にあった。



もちろん、最初の考えは私がそれをすべて壊したということです



ユーザーのグループ全体がちょうど削減されたことが判明しました。彼女は店にいなかった。しかし、彼女はいつもここに存在していました、彼女はどこに落ちましたか?私は探し始めました。開始したログを確認しました。私はこれらのログを吸い始めました(目覚めるのに最初の30分、ログをウォームアップしてどのスクリプトが起動されたかを理解するのにさらに30分かかりました)。私は自分でスクリプトをダウンロードし、彼らが何をしているかを見て、この特定の場所に登ったものを掘り起こしました。そして、私は間違いを見つけました。



テスト環境で起動しました-テストユーザーは見ました。うーん、これがどのようにテストされたか見てみました。今回はどういうわけか、3人の開発者がいるのに、1人目と2人目が逃し、3人目も落ちませんでした。誰もこれのテストを書きませんでした(これが二度と起こらないように私は自分で書くようにチェックしました)。



私と並行して、多くの人が座って問題を探し、絶えず電話をかけてきました。最後に、午前6時に、誰かがスクリプトを作成し、テストでチェックしたが、1つの重要なケースを考慮していなかったことに気付きました。その結果、ユーザーは削除の対象となったユーザーに分類されました。



だから私たちは一晩で約100万人のユーザーを叩きました



データベースを復元し、バックアップを作成しました。問題がわかるまで、ユーザーは一晩中新しいデータを入力していました。技術的な問題についてみんなに手紙を書き、新しい情報が流れないように入り口を閉めました。データベースを7時間でフリーズし、ゼロにロールオーバーして、すべてのユーザーを返す必要がありました。入ろうとしたができなかった人のために、会社はボーナスを積んだ別の謝罪を書き留めた。



午前7時までにすべてを修正しました。 8時に、会社はそれをすべて醸造した男を解雇しました。



男はうまく働いた、彼はいつもすべてをチェックした。数回、彼は私をレビューし、本当にクールなことを提案しました。しかし、それは運転のようなものです。ハンドルを握った最初の年に、あなたはすべてを恐れて、正しい車線で怯えます。それからあなたは少しリラックスします、そしてこの瞬間にあなたは事故を起こします!



間違いで人を解雇しますか? 「プログラムはあなたが書いたことを実行します。」しかし、私たちは成長しており、常に間違いを犯しています。この男がその朝どれほど悪かったか想像してみてください。そして、なぜ今彼のコードのすべての文字を検証する人を立てるのですか?しかし、経営陣は血を欲しがり、次の数週間で、この事件に関与したさらに数人が飛び出しました。



私はそこで数週間働きましたが、バックエンドを離れたいと思っていました。



Skolkovoで、私はandroid開発のプロジェクトにどれほど興味を持っているかに気づきました。アプリケーションを開発し、arduinoにリンクしました。タスクは非常に簡単でした。電話からbluetoothまたはwifi経由でarduinoに接続し、コマンドを送信する必要がありました。アプリにはボタン付きの画面がいくつかありました。考えられたように、arduinoはスマートホームのレイアウトに関連付けられており、これらのボタンはウィンドウを開閉することになっています。



一目でアンドロイドに恋をするのに十分な理由がありました



UIがあるのが本当に気に入りました。私はアニメーションを実行する機能が好きでした(現在、Android開発ではこれが最も好きです)。 Googleからのドキュメントは、私が以前に見たものよりもはるかに優れていました。 Javaはより多くのpythonとC ++になりました。アンドロイドのコースをカーソルで受講しているときに、1つのことに気づきました。



それは、結果をすぐに確認することが重要だということです。



また、私がしていることを説明しやすくなりました。バックエンドの仕事が何であるかを人に伝えるようにしてください。なぜそれが必要なのかなど。アンドロイドで、あなたはただあなたの電話を取り出して言う-私はこのアプリケーションを作った。



フットボールのその場合-私はインディアンによって書かれた草案を与えられました。正直なところ、彼らはあまりうまくいきませんでした。コードを関数に抽出する代わりに、700行を再度コピーしました。リファクタリングには2週間かかりました。



そして、とにかくそれを終えて、ちょうど夢中になりました。これからもやりたいと思い、一緒に仕事をする会社を探し始めました。私はアンドロイドスクールのe-レギオンを通過し、テストを行い、仕事を得ました-そして今、私はここでAndroid開発を率いています。



そして、朝の4時に、燃えている基地を救助するために私を持ち上げず、実行リストを作成するように強制しないことを非常にうれしく思います。



All Articles