業界では、ソフトウェア開発者が会社自身が使用するコードを作成する「社内開発」環境と、ソフトウェアを販売/配布するために構築される適切な「ソフトウェア開発」環境とが区別されます一般に。
とりわけ、この2つの間の明らかな違いの1つは、ソフトウェア開発指向の企業は通常、仕様の記述、テスト、構築などのある種のソフトウェア開発ライフサイクルを遵守するのに対し、社内指向のショップは通常、彼ら自身がエンドユーザーであり、正しく行われなかったことをいつでも修正できるので、よりカジュアルな方法で物事を行います。
学生として(他のほとんどの学生と同じように)、ソフトウェア開発環境で働くことを期待していたのですが、結局、社内で運営している会社で最初の地位を得ました。
ときどき、本格的なソフトウェア開発体験を逃していないかと思います。この気持ちの根拠はありますか?適切なソフトウェア開発環境に参加しようとする必要がありますか?
私の経験では、「社内」と「配布可能製品」の違いは誤りです。
ソフトウェア開発プロセスを真剣に考えている企業とそうでない企業があります。 「社内」、「オーダーメイド」、または「シュリンクラップ」のいずれであっても、それほど多くは入らない傾向があります(「シュリンクラップ」プロバイダーの場合は、プロセスがない場合、おそらくビジネスに関与しません)長いです)。
探している開発の基準がある場所を探す必要があります-面接するときは、これらの質問をして、この点(およびその他)で自分の好みに合った場所であることを確認する必要があります。
あなたはこの記事を読むことができます
http://www.joelonsoftware.com/items/2007/12/04.html
ジョエル・スポルスキーの質問です。
私はここ数年、中型ソフトウェア製品の販売と社内ソフトウェアの両方に取り組む必要があった立場にいます。その経験から、これら2つのプラットフォームには違いがあることがわかりますが、Joelが説明したように、状況はそれほど悪くありません。
たとえば、社内ソフトウェアのほとんどは、非常に制限された環境でのみ実行する必要があります。特定のスプレッドシートまたはデータベースバージョン、特定のネットワーク環境、限られたユーザー数、インストールルーチンなどを必要としない多くのツール。これにより、に導入された新機能と比較して、多くのことが簡単かつ迅速に開発できます。私たちの出荷製品。一方、「社内」プログラムのコードの品質が低い、または「カジュアルな方法」で書かれているという意味ではありません。
昔、私はアジャイルプロジェクト管理に関する本を読んで(タイトルを思い出せたらいいのに)、著者はシステムの欠陥に対する許容度に基づいてシステムを区別しました。欠陥の許容範囲は、非常に高いものから、たとえば、他の開発者が使用するユーティリティ(バグは単なる不便なもの)から非常に低いものまで、たとえば宇宙飛行士の生命維持を実行しているシステム(バグが発生する可能性があるもの)までさまざまです。生命を脅かすこと)。
著者のポイントは、開発方法論(および形式)は、システムの耐障害性(または重要性)に限定する必要があるということでした。社内開発と一般的な配布用のソフトウェアを区別するのではなく、この区別が最も重要なものだと思います。
社内の開発者が医療の質に影響を与える可能性のある医療記録システムを構築している病院を想像してみてください。この場合、社内のショップは、一般の人々が使用するWeb製品を構築しているWebサイトのコンサルタントよりも厳格になる可能性があります。
私はソフトウェアハウス、マーケティングエージェンシー、携帯電話会社、銀行で働いてきました。1つ言えることは、適用されるプロセスのレベルを決定付ける会社の文化と産業です。私が今まで経験した中で最も厳しく、遅く、制限され、テストされた環境は、銀行の社内開発でした。最もカジュアルなのはマーケティングエージェンシーでした。
この経験から学び、次の仕事の将来の方向性を決定するためにそれを使用することをお勧めします。ソフトウェア開発業界は科学ではなく、芸術/科学であるため、企業ごとにばらつきや違いがあります。コードに関して正しいことを学ぶことはより重要です。失敗やプロセスの欠如をメンタルに記録することは有用ですが、マネージャーが適切なプロセスを実装できるようになると、.