偽の上級開発者、または長年の経験が何も言わない理由

トロントの経験豊富なプログラマー、マット・ブリッグスは自分の仕事が大好きで、「違法であってもコードを書く」と言っています。 そして、ジュニア、ミドル、シニアの開発者についてのブログ投稿を公開したとき、彼は100以上の素晴らしいコメントを集めました。 Alconostでも、この記事を称賛し、翻訳しました。



私たちは奇妙な業界で働いています。 開発者の必要性は、人材派遣の提供よりもはるかに高いです。 この問題は長年にわたって存在しており、時間が経つにつれてより深刻になります。



業界は非常に若いですが、才能の深刻な不足を経験しています。 ほとんどのソフトウェアプロジェクトは失敗し、ほとんどすべてが予算を超えています。 そして、最も強い頭脳が提供できる最良のアイデアは、「そのような問題を解決するための標準的な方法はいくつかありますが、当社のソリューションはしばしば機能しません。 できる唯一のことは、結果を試すことです。」



現実には、「上級開発者」とは、3年以上コードを作成する人を意味します。 彼は指導的地位に置かれ、通常はすべて予想される悲惨な結果で終わります。



実際、時間間隔で人々を評価しようとすることは、知識や専門的経験などの微妙な問題のために単純化された方法です。 しかし、これは事実です。 そして、このように専門家の分類を続けたら、業界がタイムアウトする時が来ました。 10年の経験を持つ人と、同じ時間で10倍の経験を持つ人との間には違いがあります。





シリーズ「コンピュータースペシャリスト」のポスター



開発者ステージ



プログラマーとして、私たちは複雑なシステムと変数の世界に住んでいます。 この世界では、明確に定義された特定のタスクを単に完了するだけでも困難な場合があります。 特に、利用可能なツールまたはコードベースに大きな経験がない場合。





シリーズ「コンピューター科学者」からのショット



これはジュニア開発者の人生です。 卒業すると、あなたは全知のように見えます。 しかし、突然、あなたが直面しなければならない問題に対する学校の準備が不十分だという理解が得られます。 現実は混oticとしており、それほど心地よくはなく、理論とはかけ離れています。 妥協の真っmid中に、何かについての仮定を構築する能力なしに、歩き回らなければなりません。



これらすべてを念頭に置いて作業することが、主なレッスンおよび焦点となります。 若い開発者には、定期的なガイダンス、ヘルプ、サポートが必要です。 そうでなければ、彼らは非常に長い間停滞する可能性があります(最近、私は10年近くソフトウェアを作っている友人に出くわしましたが、実際には初心者の開発者のままでした)。 この期間は、日々の問題を解決するための戦術的アプローチの知識に完全に専念していると言えます。



ジュニア開発者は、開発プロセスではなくコードに固執しています。 そして、彼は特に違いを見つけません。 プログラマーが「これらのユーザー向けではなかったらもっとコードを書きたい」と言ったら、高い確率で、新人とコミュニケーションを取っていることになります。



優れたジュニア開発者には、なじみのあるタスクを与え、それが迅速に完了することを期待できます




シリーズ「コンピューター科学者」からのショット



中級レベルの開発者は、すでにエラー(通常は自分の間違い)の特定のパターンを見始めています。 彼は、最初の変更でバラバラにならない実行可能なコードを書くには、作業のその部分を単純に完了することよりもはるかに多くを必要とすることを理解しています。 彼は通常、過去のプライド(1年前のコード)を見て、これが完全なゴミであることを理解するときに、そのユニークな経験を経験します。



そのような人は、ソフトウェアの正しい開発の問題を研究し、実験、文献、同僚との議論で自分自身の答えを見つけます。 このレベルでは、コードを書くのではなく、すべてが製品開発の理論を研究することを目的としています(これは学校で教えられています)。



「平均的な」開発者によって書かれたシステムは、若い専門家の創造とはまったく異なる理由で独自に失敗します。 Juniorは、単純に山の条件付き作業アルゴリズムを作成します。 良い「メディア」は、「デザインパターン」と「ドメインドリブンデザイン」という本の内容を部分的に具体化しています。 もちろん、これらは大規模システムの開発プロセスを探索するための素晴らしい本です。 しかし、単にそれらの仮定に従うことは、意味のあることにおいて重要で不器用ではない場合に柔軟である不必要に複雑なシステムの構築につながります。



「平均的な」プログラマーは、若い同僚の作成よりもはるかに長く機能するシステムの開発を任せられますが、それでも予測できない結果につながります。 悲しいことに、それは事実です。上級開発者だけでなく、チームリーダーの大多数は、普通の「平均的な」プログラマーです。 彼らの多くはこれを理解しておらず、善意によってのみ導かれますが、彼らはより資格のある誰かとは決して働きませんでした。



「中間」は、組織におけるその役割とその価値をよく認識しています。 優れた中年の開発者は、問題を解決するためのコーディングが、タスクの終わりだけではなく、論理的な結論に至ることを意味することも理解しています。 それでも、彼らはいまだに象牙の塔を建設し、ソフトウェア開発の「正しい道」を探し求めています。



優れた「平均的な」開発者は、監督をあまり必要としません。 彼らはプロジェクトの問題領域を見つけることで信頼され、重要な決定を下す際に重要な役割を果たします。 彼らはチームの「主力者」でもありますが、より高いレベルの指導が必要です。




シリーズ「コンピューター科学者」からのショット



上級開発者は 、自分の失敗に精通しています。 そのような人々は、未完成のコードと非常に複雑なコードの両方を作成し、両方のケースで悲惨な結果を見ました。 彼らは仕事へのアプローチのバランスをとり、問題が発生した場合に自分の幸運と敗北を冷静に評価しました。 上級開発者はすでに、「平均的な」同僚の心を捉える複雑さを愛することをやめ、現在はシンプルさに取りつかれています。



上級開発者は同僚の知識レベルに従って分類しません;彼は誰もが長所と短所を持っていることを理解しています。 彼は他の誰よりも自分の長所と短所についてより多くを知っており、可能であれば正確に長所を使用するよう努めています。



シニアは、理論を適用する際にコンテキストを考慮します。 彼は「正しい方法」がないことを理解しています。 優れた製品を構築する唯一の方法は、クライアント、コードベース、チーム、ツール、および組織の要件に理論を適合させることです。 そのような人は、私たちの周りのすべてが妥協を必要とすることを理解し、設計パターン、ライブラリ、フレームワーク、およびプロセスを探します。



上級開発者は自分自身だけでなく考えます。 彼らは、会社と顧客組織の仕組み、価値観、成功のために重要または重要でないものを非常によく知っています。 ボールが投げられた場合、上級プログラマーは彼を捕まえるために可能なすべてを行います。 このような状況では、「これは私のビジネスではありません」というフレーズを彼から聞くことはありません。



上級開発者は、仕事はコードを書くことではなく、問題を解決することであることを理解しています。 だからこそ、彼は常に、仕事の価値を、費やされた努力の組織にとって相関のある立場から見るのです。



「平均的な」開発者は数え切れないほどの単調な活動の中でうろつくでしょうが、「シニア」は最初に状況の根本原因に関心を持ちます。 彼は原因を無効化するためのコストを見積もり、すぐに修正するか、プロセスを正しい方向に向けます。



また、自分ですべてを行うことはできないことも理解しています。 彼の主な役割は、多くの場合、個々の参加者が育成するのと同じ方法で、チームの改善を支援することです。 結局のところ、権力は権力ではなく、委任にあります。 管理ではなく、サポートしています。



指導的地位に一人の上級開発者がいない場合、プロジェクトは運命にあります。 優秀な「平均的」なチームはあなたをかなり長い道のりで連れて行くことができますが、製品の時代はまだ数えられています。 そしてフィナーレでは、店を折りたたむか、危険で高価な改造を見つけます。 適切なテクノロジーとプラットフォームを選択できるのは、シニア開発者だけです。 したがって、最初の日からプロジェクトに存在しないことは、あなたを深刻に傷つけます。


これは単なる単純化です。



現実には、記述されたフレームワークに正確に適合する人はいません。 「長年の経験」によって評価されるプログラマーを見るのはもううんざりです。 もちろん、彼らはあなたに何かを伝えることができますが、これはコンテキストの他の部分からはほとんど役に立たない情報です。



さらに、私たちの業界では、大学の後に大胆で賢い若者を評価するのが習慣です。 これらの人たちは本当に貴重で必要ですが、15〜20年の「フィールド」経験を持つ同僚にすぎません。 人を定型的に雇用するのをやめ、チームと才能の両立についてもっと考え始める時が来ました。 チームの全員が同じように考えている場合、プロジェクトと組織の両方に損害を与えます。





翻訳者について



この記事はAlconostによって翻訳されました。



Alconostは、60の言語でアプリケーション、ゲーム、およびサイトをローカライズします 。 ネイティブ翻訳者、言語テスト、APIを備えたクラウドプラットフォーム、継続的なローカリゼーション、プロジェクトマネージャー24時間365日、あらゆる形式の文字列リソース。



また、Google PlayとApp Storeの販売、画像、広告、教育、ティーザー、エクスプライナー、予告編のサイト向けに、 広告および教育用ビデオを作成しています。



詳細: https : //alconost.com






All Articles