プログラマはどんな帽子をかぶるべきですか?[閉まっている]


29

私の経験では、ソフトウェア開発者は複数の帽子をかぶって、複数の役割を異なる責任で満たす傾向があります。コーディングだけでなく、SQLの作成、ユーザーインターフェイスの設計、データベースの設計、グラフィックス操作、QAテストまでも行います。

主な役割がソフトウェア/コードの作成である場合、開発者はどのような役割を引き受けるべきではありませんか? いずれかがあります?

この質問の意図は、開発者が別の役割を果たせないためではありませんが、追加の役割を持つことは実際には主な役割に対して機能するか、実際には主にプログラムしない人の専用の役割でなければなりません。


20
ボンネット...ああ待って..
ChaosPandion

21
IMOのプログラマーは、これらの大きなメキシコのソンブレロを着用しないでください。つばがモニターにぶつかってしまうからです。
メイソンウィーラー

1
@Peter Turner:「最も素晴らしいプログラマーの帽子」は、2本のビール缶を取り付ける斬新な仕事の1つです。ただ、ビールはありません。レッドブル。
BlairHippo

4
くそー。このような有望なタイトル...
誰も

4
@Mason、ソンブレロをモニターの上に置くと、光沢のある画面での反射を防ぐことができます。言い換えれば-テクニック。

回答:


54

システム管理者。ソフトウェアの開発とITインフラストラクチャの処理は、部外者に似た2つの異なるスキルセットです。(それはすべてコンピューターを叩いているだけですよね?)小規模な会社にとって、The Computer Guyがオフィス内のすべてのマシンを担当させたいという誘惑は非常に強いでしょう。

両方の帽子を実際に着用するスキルがあれば、素晴らしいです。しかし、それは人々が気づくよりもはるかに大きな時間のシンクになる可能性があるものの1つです。そして、あなたが行くにつれて自習している場合、あなたはそれをあまりうまくやっていない可能性があります。


7
この。真剣に、私がコンピューターで作業しているからといって、インフラストラクチャーを修正できるわけではありません。開発者の時間を無駄にしているだけです。
ジャコプレトリアス

5
+1アマチュアのシステム管理者がもたらす損害は莫大です。
-davidtbernal

また、システム管理者の帽子を手に入れた場合、施設管理者の帽子も付いてしまう可能性があります。
HLGEM

3
OTOH、私は信じられないほど無能で不振なIT部門を持つ会社で働いています。私は明らかにしなかったことだけで...私自身のファイアウォールの変更を行うことができるようにする
ゲイブMoothart

1
誰かが私の上司は着飾っていないと指摘したが、コンピューターを設置している床が汚れるだろうと言った。彼らは私がそれをやるべきだと指摘した。私はほとんど彼らの机を飛び越えて彼らを絞め殺したが、私はコーヒーをすすり、ハードウェアをやらないと言った。
ジェフ

35

雇用主が求める帽子は何でも着ます。それがあなたをチームプレイヤーにする理由です。それが問題解決者になります。

人々は、「開発者」、「建築家」、または「分析者」であるという考えにとらわれすぎています。それをねじ込みます。あなたは問題解決者でなければなりません。コードはベルトのツールにすぎません。

問題解決は決して時代遅れになりません。

私の雇用主が私に技術サポートを行ったり、コンピューターを構築することを望んでいるのであれば、それをしてください。開発者の給与を考慮して、彼らはお金を無駄にしていると思いますが、それは彼らのビジネスです。私は問題を解決するためにここにいます。しかし、私はそれをすることができます、私はそれをします。そして、一定の時間が経っても才能が浪費されている、または仕事の満足度が望んでいるとは思えない場合、別の仕事に移る権利があります。

しかし、基本的な質問に-あなたが身に着けていない帽子はありません。おい、彼らがあなたにコーヒーを取ってほしいなら、それをしてください。彼らの問題を解決してください。変更を希望する場合は、別の仕事を見つける権利があることを知ってください。


5
@ジョシュ:私はそれがそれらの「新しい仕事を見つける」状況の1つになると思う。
アダムリア

21
これには注意してください。ボスは、何でもやる気がある人を利用する傾向があります。正しく補償されていることを確認してください。
トニー

5
私はクリスが「何でもする」と言っているとは思いません(まあ、彼は少し終わりです。飲み物も飲まない人にはコーヒーを飲まないでしょう)が、「私は開発者です、私はプリンターカートリッジを変更しない」というのは、うっとりするだけです。
ピーターボートン

10
同意しません。開発者は、要求されたことは何でもできるはずだと言うのは簡単ですが、それは彼/彼女がSHOULDであることを意味するものではありません。これらの状況では、いくつかの重大な利益相反の問題が発生します。彼らは(「ああ、まあXXXは、私は確信して、彼はdevのではなく、管理者の原因に何かを台無しにしていて、そこでは先月だった」)ダウンしたときに、私は非難されますので、私は生産システムへのアクセスを望んでいません
MBonig

7
-1; ここには真実の核がありますが、この考え方にはいくつかの厳しい制限があり、この答えでは十分に認められません。真の根本的な問題が雇用主が人事管理に嫌悪感を抱いている場合はどうですか?かつて私はオフィスが崩壊するのを見たことがあります。なぜなら、上層部は、彼らが嫌いで非常に貧弱な役割にインテリジェントで有能なエンジニアを靴磨きにかけることを主張したからです。「いいえ」と言うときがあります。あなた自身とあなたの雇用主の両方に対してできる最善のことです。
BlairHippo

29

テスター!

必要に応じて、テスター学校からテスターを直接送ってください!

テスターがいなければ、プログラマーはテスターであり、彼らは非常に頭がいいので動作するはずです。

ドッグフーディングは良い考えではないと言っているわけではありません。私はプログラマーになった今、テスターは非常に重要だと思います。


4
優れた専用テスターは間違いなく過小評価されています!
ピーターボートン

3
ドッグフード!?私は5つ星のロブスターだけを調理します!...そしてそれは私が何かを台無しにしたとき私に言うためにテスターが必要な理由です。私は物を作り、それがどのように機能するか知っています。UIを作成した人は、UIを完全にテストする資格がありません。それは、UIが機能しない人とどのように機能するかではなく、その機能を知っているからです。
モーガンハーロッカー

15
一般的にテスターであることには何の問題もありません。自分のコードの唯一のテスターであることは間違っています。プログラマーは一連の仮定を念頭に置いてコーディングします。テスターに​​同じ仮定がある場合、予期しない部分を実行せず、多くのバグを見逃します。
dbkk

5
独自のコードをテストすることは、間違いなく大きなことです。プログラマーは他の多くのものをカバーできますが、実際の機能テスト(単体テストを行わないのであれば、プログラマーではないかもしれません)自身のコードは非常に悪い考えです。それを使ったドッグフーディングは良いことです。
グレナトロン

3
+1-プログラマーは、プログラムの使用方法の点で、非プログラマーとは明らかに異なると考えます。「ファイル->保存」メニュー項目にバグを発見したことがありますか?

26

あなたはオフィスのハードウェアの問題の頼れる男になることに注意する必要があります。これには、PCのトラブルシューティング、サーバー管理、バックアップ、さらには電話システムの作業も含まれます。以前のハードウェアエクスペリエンスについて言及するのを間違え、最終的にはハードウェア/トラブルシューティングの義務がプログラミングの義務と激しく対立しました。


犯人に上司からの許可が必要であることを伝え、これに使用されるすべての時間を登録します。

@Thor私のボスから来たハードウェアの仕事の方向。オフィスにとっては助かりましたが、その時点で気に入っていたほど、キャリアをプログラミングに集中させることはできませんでした。
ジョンオンストット

@ジョン、上司があなたがそれをする必要があると言ったら、まあ...あなたはそれをする必要があります。その後、これが満足のいくものであるかどうかを彼と話し合うことができます。合意に達することができない場合は、辞める時です。

+1同じことが私にも起こりました。彼らは私にコードを書くだけでなく、ネットワークの問題に対処するベンダーと一緒に対処することを望んでおり、それは多くのストレスにつながっています。
リッチ

16

プログラマーが自分のコードの唯一のテスターであってはなりません。

開発者は一連の前提条件でコードを記述します。テスターが同一の仮定セットを持っている場合、それらの境界の外側で予期しない機能を実行せず、多くの問題が検出されないままになります。

さらに、前進するために、開発者は物事を壊そうとする意欲はあまり高くありませんが、テスターは(おそらく無意識のレベルで)です。

これは、開発者テストが役に立たないことを意味するものではありません。まったく逆です-優れた開発者テストにより、テスターはより深い問題の発見に集中できます。ただし、開発者テストは専用のテスターに代わるものではありません


10

すぐに考えられる2つ。

  1. 技術サポート。クライアントが新しいサイトで作業したり、機能の使用方法を教えたりするのを助けるためにここにいるわけではありません。
  2. プロセスのさまざまな時点でクライアントとやり取りする必要があるかもしれませんが、管理プログラマーでない限り、機能や設計の実装についてクライアントと直接やり取りするべきではありません。

CSS / UIの開発はプログラミングの「領域」の外にあると言えますが、私の経験では、今日では必要なスキルです。テーブルだけでなく、他の人に頼って正しく実装することはできません。デザインを実装したり、新しいデザインを処理するためにコードを変更したりするのは好きではないかもしれませんが、それは仕事の一部です。

クエリの作成は問題ありませんが、Q / Aテストは問題ありません(また、IMO プログラマの仕事であり、外部部門に見つけてもらうことが必要ですが、最初にテストする必要があります)。サーバー管理は少し灰色の領域です。プロジェクトの規模に応じて、または専用のサーバー管理者がいる場合は、プロジェクトが必要な場合とそうでない場合があります。


7
ポイント2については、コードを書いている人が顧客と直接話をするべきであるという設立原則を持っている会社が少なくとも1つあります。
フランクシェラー

10

一般的に、ほとんどのプログラマーはユーザーインターフェイスのルックアンドフィールを開発すべきではないというのが私の経験でした-私は確かにUIを開発することができます(そして、プロトタイプまたは概念実証を構築するときにしばしばUIを作成します)が、これはヒューマンファクターの人に任せたほうがよいでしょう(私たちの小さな会社では、スクリーンレイアウトも行い、ほとんどのマニュアルとパンフレットを作成するグラフィックアーティストです)。

また、開発者はQAテストを行うべきではありません-それはQA部門の仕事です(私が働いている会社は組み込み医療機器を製造しているため、これはテストを別の部門で行う必要があります)。

一方で、開発者がデータベースを設計してSQLを書くことができない理由はありません。そうする背景があれば、私は何度もやりました。


2
+1それを書いた開発者によるQAテストが目的に反することに同意しました。
スポンジ

2
@JoshK 一部の QAテストは開発者が実行できますが、メインのQAテストは他の人が実行する必要があります。作成した独自のアプリをテストする場合、潜在的な問題を無意識のうちに歩き回ります。要点は、開発者が見つけることができない問題を発見することです。これは、いわば新鮮な目です。
スポンジ

2
@JoshK @ChaosPandion Agreed、開発者による事前のテストをいくつか行う必要がありますが、信頼するべきではないため、開発していない人によるQAテストを分離します。
-spong

5
-1:プログラマがGUIを設計すべきではないことに同意しません。私は小さな会社で8年間働いており、すべてのユーザーインターフェイスを設計しました。私は常にMicrosoftの優れたデザインガイドラインに従っており、HMIのデザインに関する書籍をいくつか読んでいます。外部のイラストレーターのみにグラフィックを外部委託しました。
Wizard79

3
ここで私を悩ますことの1つは、グラフィックスの人がUIを設計するのにプログラマよりも適しているという意味です。あなたのグラフィックアーティストはインターフェイスの設計に非常に優れているかもしれませんが、一般的なケースでは、ステレオタイプのプログラマーから得られる混乱し、ほとんど使用できない、いインターフェイスとは対照的に、混乱し、使用できず、きれいなインターフェイスに縮退する可能性があります。
デビッドソーンリー

8

技術サポート

私の一日の多くは、技術サポートの呼び出しに費やされています...

人気のあるものは次のとおりです。

  • 「私のアカウントはロックアウトされています」または「パスワードを忘れました」
  • 「[電話|キーボード|マウス|コンピューター]が機能しません」
  • 「私のコンピューターは遅いです。何か異常なものがないかチェックしてください。」
  • 「このボタンをクリックするとXが発生するのはなぜですか?Yを実行する必要があります」
  • 「これらのポップアップが表示される...」または「ウィルスに感染していると思う」
  • 「この人はもうここにいません。すべてのものを無効にできますか?」
  • 「新しい従業員がいます。ログイン、セキュリティカード、内線電話、電子メールなどでセットアップできますか?」

6

彼が自分で管理できるようにする役割。小規模なチームでは、シニア開発者の1人をプロジェクトマネージャーにする傾向がありますが、プログラマーとしてチームに残ることもあります。この男はプログラマーとして基本的に管理されていないため、これはあらゆる種類の問題につながります。他のチームメンバーにすべてのタスクを委任する代わりに、彼は多くのタスク、特に最も難しいタスクを自分に割り当てるように誘惑されることがよくあります。したがって、最も困難なタスク、問題を引き起こす可能性が最も高いタスクは、プログラマとして50%しか利用できない人に割り当てられ、そのような人は誰にも報告しません。他のチームメンバーが、お尻を蹴るのではなく、引き渡すことができない場合、プロジェクトマネージャーとして成功する責任があり、それを達成するための最も安全な方法は自分でやることであるため、彼はタスクを実行しようとします、そうではありませんか?


5

開発、展開、保守に手を携えておらず、トレーニングを受けておらず、主要な変更について最新の状態に保たれていないものに対する技術サポート。私の仕事の一部は、インターネットが機能していない理由について電話をかけるクライアントに電話に出ることになりました。私はそのビジネスの半分を扱っていないので、彼らに何の有用性を伝えることはできません。

テクニカルサポートを行う必要はありません。問題はありません。物事を開発しようとしている間、それは秘書/技術サポートの男です。

一日中文句を言う人に耳を傾け、何も話せないということは、かなりの負担となります。これを避けることをお勧めします。


はい、一日中何度も性格を変えなければならないのは負担です。絶えず中断されている場合、集中力を必要とするタスクに取り組むことは困難です。
リッチ

5

販売

一部の貧弱な盗聴者はそれをしなければなりませんが、開発者であってはなりません。


4

私は年をとったので、開発者が独自の展開を行わない場合に最適であることに気付きました(これを一本一本やりました)。選択権限を除き、本番データベースに対する権限を持たないようにする必要があります。私たちのコードはバグがはるかに少なくなりました(また、変更はprodでのみ行われ、その後のdevデプロイメントで再度上書きされたため、同じことが何度も発生しませんでした。展開するために他の人にそれを提供し始めなければならず、展開が適切ではなかったため、本番環境の迅速な修正を行うことを許可されませんでした。さらに、これらの偶発的な「テーブル内のすべてのレコードを変更するwhere句が強調表示されていない更新」問題の発生を停止しました。


はい、はい、はい。開発者に本番環境へのアクセスを許可しないでください。他に何もなければ、彼らがさらされるストレスを減らす。
ElGringoGrande

1
はい!私は開発者であり、これらすべての製品にアクセスたくありません。そして、ソフトウェアの展開を行う他の人々と、それは展開プロセスのもう1つのテストです。(そしておそらくdesasterの回復は、同様にこのうち改善されます。)
うんざり

3

アーティストおよびユーザーインターフェイスデザイナー

ほとんどのプログラマーはアートワークが非常に苦手ですが、企業はアーティストが製品の画像やアイコンを描くためにお金を払う必要はなく、「プログラマーアート」を使用するだけで恐ろしい結果になります。(Windows Vistaまでは、これがMacとPCの最も明白な差別化要因でした-Macは美しくてフレンドリーで、PCは目障りでした)

同様に、多くのプログラマーはユーザーインターフェイスにあまり興味がありません-彼らは主に自分のコードを気にします。メンバー変数の内容をいくつかの編集可能なフィールドに直接公開するだけで、フォーム上のボタンやフィールドを配置する場所を気にせず、これで十分であると見なされ、ソフトウェアが使用できなくなります。(iPhoneが登場して実際に使いやすい電話UIを実際に作成できることを示すためにiPhoneが登場するまで、携帯電話業界全体が非常に有罪でした)

ロータスノーツは、プログラマを支援するプロのデザイナーを取得しなければ、これらの両方がどれほど悪いものであるかの素晴らしい例です。


2
「ほとんどのプログラマーはartwookが非常に苦手です」と「多くのプログラマーはあまり興味がありません」は「プログラマーは興味がない」と「すべてのプログラマーが悪い」と同じではありません。私は実際にかなりうまくやっているカップルを知っています。
MIA

1
@ジムレオナルド:確かに。だから私は「すべて」ではなく「ほとんど」と「たくさん」と言った。:-)
ジェイソンウィリアムズ

3

全体的なテストとテスト計画を作成します。真剣に、私は自分でテスト計画を書くことができますが、それは、物を書いている間に私が犯した誤解、誤った仮定、認識の誤りを製品に焼き込むことを意味します。それは私が働いていたある会社について嫌った唯一のものでした。今のところ、少なくともこのようなものをキャッチするコードレビューがあります。


うん、コードを作成する前に、ほとんどのテストを仕様と一緒に作成する必要があります。開発者が触れたことの知識に基づいて追加のテストを追加することは悪いことではありませんが。
ピーターボートン

3

合理的に処理できて快適な「帽子」を着用しないでください。ABをしてはいけないと言って穴の開発者をハトしようとしますすることは、優れたUIデザイナーがプログラマーから遠ざかるべきだと考えるため、気付かれない可能性があることを意味します。 UI。

結局のところ、誰もが長所と短所を持つことになります。優秀なマネージャー/監督者/チームリーダーは、人材が適切に使用されるように、彼らのために働く人々を導く最良の方法を知っておく必要があります。同様に、UIの設計やエンドユーザーへの対応に不安がある場合は、チームに知らせて、その分野での役割を最小限に抑えることができます。ただし、別の領域で追加の作業を行う準備をする必要があります。

また、あまりにも多くの帽子(プログラマー、UIデザイナー、テスター、ビジネスアナリストなど)を着用している場合、それらのいくつかでうまくいかないか、燃え尽きてしまいます。処理できる帽子の数がわかっていることを確認し、そのレベルの負荷を維持するようにしてください。

それを超えて、開発者がその役割で優れたスキルを持っている場合、開発者が着るべきではない「帽子」は本当にありません。


1

次の場合にのみ、私に投げられる仕事に就く傾向があります。

  • 私は事前に自分のスキルレベルと考えられる影響について警告し、上司はそれが受け入れられると判断します
  • 私が予期しない何かに対処するのを助けることができる(そしておそらく何らかの段階で)グルのレベルの人がいます
  • いくつかのドキュメントやオンラインでの質問などを読んでください

このように、私は主に上司に対して保険をかけられ、誰かがうまくいかない場合は少なくとも修正可能です。


1

開発者は、状況における顧客(所有者など)であるため、意味のある仕事を期待する権利があります。私の意見では、それはあなたの強みで働く機会を意味します。

そのため、開発者は、エネルギーを与えず、個人の成長に寄与し、最高のパフォーマンスにつながる帽子を身に着けてはなりません。

自分のコードをテストする唯一の人ではないことを除けば、帽子をかぶっている開発者にとって意味のある仕事であれば、どんな「帽子」でも大丈夫だと思います。


1

「デザイナー」または「創造的な男」。x_xを知る前に、アプリケーションのインターフェイスのモックアップを無邪気に組み立ててから、次のオンライン広告キャンペーンのマーケティングテキストを作成したり、「正しい」青の色合いについての無限の議論を行ったりします。


0

ストローが付いている側のビール缶が付いているその帽子。捕まったら悪い考えだ。

編集:

ここに私が嫌いな帽子がありますが、それは素晴らしい報酬です-これがあなたのせいであるなら、それがあなたのせいだということを示す大きなサインです... are-地下室に戻りましょう...いい子...それだけです。

非難の帽子。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.