
Microsoft Windows Azureでのインターンシップは、大学を卒業してちょうど2年前に始まり、過去8か月間働いていた同じチームで行われました。
最近、明確な結論を導き出し、この8か月で学んだ原則のいくつかについて話すことになりました。 読者には、彼らが最も楽しい仕事をしていないように見えるかもしれません-しかし、そうではありません。 すべての大企業にまったく同じ問題が存在することをすでに認識しており 、私が気づいたことのほとんどはマイクロソフトだけでなく、各企業にも問題があります。
私は不幸だったとは言えませんし、何かに不満を言いたくはありません...しかし、大学では誰もこれらのことについて警告しませんでした。
行きましょう。
- 企業内でドキュメントを見つけることを期待しないでください。 私が偶然見たものに基づいて、会社のすべての知識は主に会話とマスタークラスを通じて伝達されます。 利用可能な情報の一部は電子メールで送信され、通常はどこにも保存されません。 他の地域では、今は受け入れられません。結局、誰かが突然バスにぶつかった場合、他の誰も簡単に仕事を引き継ぐことができません(たとえば、座ってすぐにさらにコードを書く)。 そして、ここでそれは標準と見なされます。 会社があったら、数千ページのウィキが欲しいです。
- 重要なことはあなたがしたことではありません-重要なことはあなたが売ったものです。 あなたは数日間コードを改善し、他の人の間違いを修正することができますが、これは販売に影響を与えず、努力の結果は販売することは不可能です-あなたの仕事は実質的に何も意味しません。 コードの純粋さやスタイルの統一性を追求するために、コードの変更に関心を持つ人はいません。 アーキテクチャの問題を解決することに興味がある人はいません。 これを行うと、気分を害することさえあります。 私が学生だったとき、彼らはそれを教えませんでした。
- 誰もがプログラミングを気にするわけではありません。 ソフトウェア開発を心から愛している人といつも一緒に仕事をするわけではありません。 ここのほとんどの人々は、人生に何か他のもの(家族、子供)を持っているので、きれいなコードを書きたいという欲求はほとんどの場合彼らの計画の一部ではありません。 これは正常です。 私は皆から熱意を待たないことを学びました。
- 1日あたり2〜3時間の純粋なコーディングは素晴らしい数字です。 仕事に着く前に、私はプロジェクトに座って毎日8〜10時間プログラムしました。 そして、新しい環境では、コードを2時間連続で書くことはほとんどできません。 私はほとんどの時間を、他の誰かのコメントされていない/文書化されていないコードがどのように機能するかを調べ、奇妙なプログラムの動作をデバッグし、毎日の会議に出席します。 上記のことはすべて私だけでなく、チーム全体で1回もコミットせずに数日が経過することがあります。 これも正常です。
- 見返りに他の人に何もしないことは正常です。 私の組織では、自分の時間の一部をコミュニティの「返済」に充てる単一のブロガーやオープンソース開発者に会ったことがありません。 Stack Overflowの回答をグーグルで検索するのは喜ばしいことですが、質問に対する回答をそこに書く人はいません。 私はそれらを理解しています。
- ここでは、彼らは外の世界で何が起こっているのかをあまり認識していません。 ブログやRedditやHacker Newsで、さまざまなIT関連のニュースを毎日読んでいると思います。 これはここでは受け入れられません。 Windows AzureチームはHerokuやRackspaceのことを聞いたことがなく、これらが直接のライバルであることがわかって驚いた。 これは受け入れられますが、誰もがそれを知っている必要はありません。 (アダム・ラシンスキーの著書「Inside Apple」によると、アップルには本当に類似点があります-翻訳者のコメント)
- 一番下の行は、物事を成し遂げることです。 マネージャーがこれを行うボタンを要求する場合、誰もあなたがそこで何をするか気にしません。 要求された機能が機能し始めたら、タスクが完了したと想定できます。他のすべては後で修正できます。 正直なところ、私自身、この約束された「後」に出会ったことはありません。 大学では、彼らは私に、コードの品質はその仕事の結果と同じくらい重要であると言った。 これはそうではないことが判明しました。
- コピーアンドペーストコードは正常です。 Githubの誰かが同様のトリックであなたを捕まえたら、暗いゲートウェイで報復の準備をしてください。 すぐに、私はしばしばソースコードに会いました。それは単にプロジェクトからプロジェクトへコピーされました。 彼らは仕事をしていたので(下記参照)、コードが完全にサポートされていないという事実に誰も興味を持ちませんでした。
- 速度を上げるために、コードレビューなしで実行できます。 これは私たちのチームの習慣の1つです。他の人のコードに連絡した場合は、コードレビューを送信する必要があります。 通常、誰もこれを行いません。10文字目以降に誰かが返事をするまで、多くの時間を待つことができます。
- 最新のソフトウェアバージョンです。 誰もが最新バージョンを気に入っているわけではありません。 同僚の90%は、古いバージョンのOffice、Windows、Visual Studio、および.NET Frameworkを使用しています。 新しいバージョンは、確立されたワークフローを完全に破壊するという迷信があります。 おそらく、彼らはまだすべてのアプリケーションをJava 1.3-1.5で実行している人々によって導かれています。 そこで、プロジェクトで最新のソフトウェアバージョンが使用されるのを待つ方法を学びました。
- あなたの専門分野は関係ありません。 学生は数千人に雇われ、チームにランダムに押し込まれます(1年半の間は変更できません)。 MongoDBを楽しんだり、iOS用のアプリケーションを開発したり、Apacheにコミットしたり、インターフェイスを設計したり、個人のスタートアップを起動したりしてもかまいません。 あなたは彼らが言うことをするために雇われました。 私はこれを期待していませんでした。 自分の好きなことができる場所を見つけるのは難しすぎる。
- そして結論として。 あなたはあなたの上司と彼の給料のために働いています。 これについて誰も私に話したことがありません。