私はジュニアソフトウェア開発者で、1年未満の会社で働いています。
ソフトウェア開発者であるということは、ソフトウェアとCODEを開発することを意味するといつも思っていましたが、私の仕事は、JenkinsやSQLレプリケーションなどの設定など、管理タイプの仕事にあります。
これらのタイプのジョブは開発者の役割に含まれていますか、それとも開発者はソフトウェアのみを開発していますか?これについて上司に相談するべきですか?これは、企業が「開発中」のスキルを評価するための一般的な方法ですか?
彼らがジュニアを望んでいたのではなく、シニアを買う余裕がなかったためにジュニアを雇ったように思えます(彼らがシニアになるまで投資してメンターできる人)。私は、よく知らないマネージャーからその決定を強いられたチームを管理しました。
彼はユーザー向けのトレーニングビデオの作成など、あらゆる種類の不幸な仕事に終わりましたが、私は今でもそれについて罪悪感を感じていますが、私は提供するプレッシャーにさらされており、開発室に頭を追加するとスピードが上がるだけだと予想していました。
それはあなたとあなたの上司をトリッキーなポジションに置くので、それは残念です。
彼はおそらく彼が後輩に信頼できる仕事を何も持っていません、そして彼が持っているかもしれないどんな先輩も彼らの日常から気が散ることはできません。簡単な方法は、上級開発者の時間を無駄にしたくない、開発者以外のジュニアタスクをたくさん与えることです。
しかし、これからいくつかの問題が発生します。
最初に、彼があなたに与えている種類の専門職は本当に上級開発者を必要とします。特に、ビルドサーバーは、ソフトウェアをビルドしていて問題点を知っている人がセットアップする必要があります。
第二に、後輩はより有用になっていません。この5年が経過した後も、実際の開発作業に信頼できなくなったため、同じタスクを実行しています。
第三に、ジュニアは最終的に(あなたがそうであるように)彼らが自分のキャリアを助けていないことに気付くでしょう。後輩が経験が少ない(そして探している)というよりも質が低いという仮定は、この業界ではひどいものの、非常に一般的な間違いです。
だから、はい、上司と一緒に座ります。しかし、彼が抱えている苦境を理解してください。皆さんの問題を解決するいくつかの取り決めにあなたが来ることができるかどうか見てください。あなたはシニアメンターを必要とし、あなたの現在のタスクのいくつかはシニアに引き継がれる必要があります。これによりプロジェクトの速度が低下しますが、長期的には見返りが得られます。それはあなたがあなたのボス、そしておそらく彼らのボスに到達する必要があるポイントです。また、コストを削減する見返りとして、提供できるものが見つかるかどうかも確認してください。
できない場合は、他の場所を確認することをお勧めします。
「ソフトウェア開発者」という用語は「プログラマ」と同義語だと思います。したがって、ソフトウェア開発者は、コードを書くことを主な責任とする人物です。私の最初の仕事では、私の肩書きは「開発者」であり、私の主な責任はソフトウェアの設計とコーディングでした。しかし、私はこの用語の正確な定義はないと思います。人によって使い方が異なるため、意味が曖昧になります。
ただし、開発チームが効率的に作業するには、CIサーバー、SQLレプリケーション、テストサーバーへの展開、テストサーバーの監視、ビルドのアーカイブなどの設定が必要です(状況によっては、これらすべてが当てはまるとは限りません)。 。
これらのタスクは、プロジェクトの初期フェーズでは時間がかかりますが、Niceセットアップを実行すると、かかる時間は短くなります。
残念ながら、開発者はビルドサーバーを管理するのではなく、コードを作成します。したがって、上級開発者の方が重要なタスクを持っているため、これらの退屈なタスクはジュニア開発者の手に委ねられることがよくあります。
私はこれらのタスクをスキルを評価する手段として使用する企業を経験していません。
現在の責任に不満がある場合は、ラインマネージャに問題を取り上げることをお勧めします。
場合によります。異なる企業がこれを異なる方法で定義しているようであり、一部の企業にとっては、一連の技術的機能の包括的な用語です。一部の人にとっては単なるタイトルです。以前に同じ質問をしたところ、「私たちの組織ではこれを行うことができるのは開発者だけである」と同じような答えが得られました。
理論的な答えは、開発者(コーダー/プログラマーと比較して)は、「何かをコーディングする」こととは関係なくても、「問題を解決する」人であるということです。
もっとコーディングしたいので、上司にもっとコーディングタスクを依頼するか、コーディングによって行うことのいくつかを実行するように依頼しますか?運用について言及したので、DevOpsフレームワーク( chef と puppet を確認)によってそれらの一部を実行できる可能性があります。これにより、機能がより効率的になり、開発に近づきます。
開発者がsomeシステム管理スキルを持っていることが期待されることは珍しくありません。私は上級開発者として、私の時間の約5%がそのようなタスクに費やされていると推定しています。
ただし、anyコーディングを行っていない場合は、コーディングタスクの取得について上司に相談する必要があります。結局、あなたはコーディング経験を積み上げたいのです。また、システム管理者としてよりもプログラマーとしての方が価値があります。
コードがアプリケーションに適切に組み込まれていない場合、または正しいデータにアクセスしていない場合、コードはそれほど役に立ちません。そのため、リストするアクティビティは、開発者が行っていることと非常によく似ています。ソフトウェア開発者もドキュメントとテストで非常に混乱していることを付け加えておきます。これらは、ソフトウェアの制作に必要な活動です。
あなたの会社にこのようなことをできるスペシャリストがいるのは素晴らしいことですが、そうでない場合は、ソフトウェア開発者がアプリケーションを本番環境にデプロイしてサポートするまでのすべての責任を負います。
中小規模の企業の開発者が、サーバー管理者/ DBA /一般的な構成タスクを行うことはかなり一般的です。
ただし、これらのタスクがあなたの責任の大部分になり始めた場合、それはあなたのキャリアの目標によっては心配する必要があるかもしれません。おそらく、特定の企業内で一般技術者として成功することができますが、新しい企業に移行する必要がある場合、移行で多くの問題が発生する可能性があります。従来の開発を行わない場合は、履歴書でそのことを明確にする必要があります。あなたが説明したように仕事で一生懸命働いた後、まっすぐな開発で仕事を得たいのであれば、あなたは業界での年数に基づいて「過大評価」されたものを受け入れる必要があるかもしれません。
一方、多様なスキルを持つ開発者を探している企業もあるかもしれません。しかし、面接でコードを書くという現在の傾向では、たとえ仕事に就いてもコードがほとんど必要としない場合でも、一流のコーディングスキルも必要になります。
あなたがあなたの現在の位置で行き詰まりたくない場合は、私は間違いなくすぐに状況を改善しようとします。