時代遅れの技術で開発する利点は何ですか?[閉まっている]


28

少しの背景

私は大企業で働いており、Windows XPを使用し、VB6 / VB.NetでWinformsをコーディングし、VB.NetでいくつかのWebFormsをコーディングしています(95%のメンテナンスコード)。4:3 19インチの画面が1つあります。Windowsの最新バージョンは近日中にリリースされる予定ではありません。

入社時にこれについては何も言われていませんでしたが、もっと最新のテクノロジーやフレームワークを使って作業することになると誤解されていました。

私は以前の仕事で、より現代的なフレームワークと他のプログラミング言語の両方でより多くの最新の経験があり、他の会社の開発者の友人に追いつくとき、彼らが最新のASP MVCフレームワークをどのように使用しているのかを耳にしますVagrant / Ruby on Rails /など、私は緑色の目をしています!

私は別の仕事でかなり早く自分を整理することができましたが、これにもう少しチャンスを与えるべきだと感じています。

質問

私は自分の現在の仕事がそれほど悪くないことを自分自身に納得させようとしています。それでは、このような役割の利点は何ですか?時代遅れのテクノロジーを使用する利点はありますか?おそらく、私はもっと新しいものを使って作業するのを拾わないいくつかのテクニックですか?または、これは職業が死ぬ場所であり、私はまだ魂を持っている間に出るべきです?


1
質問の本文を書き直し、個人的な履歴を核となる質問から明確に分離することができます。
ダグ

2
あなたはロケットを作っているふりをしたり、航空管制に取り組んでいるふりをすることができます。それらのフィールドは一般的に本当に古い技術を使用しています。その時点までにすべてのバグは修正されているか、既知です。しかし、ロケットや航空交通管制のエンジニアでさえ、10フィートのポールでVB6に触れることはありません。:)
DXM

3
雇用保障?....
ロバート・ハーヴェイ

2
私は10年以上前にDelphiでコーディングしていました。私はそれを楽しんだ、それは良い言語であり、VB yardy yardyよりも優れていたが、それは物事が進んでいるようには見えなかった。私は跳んだ。しかし、今日に至るまで、Delphiの仕事は増え続け、彼らは良いお金を払っています!それをやった。
MrWhite

11
私はあなたが悪い状況を最大限に生かそうとしているという事実を賞賛しますが、あなたの現在の仕事がそれほど悪くないことをあなた自身に納得させようとしないでください。経験から言えば、時代遅れのテクノロジーを使用した仕事に長く留まると、簡単に職務から抜け出すのが非常に難しい穴になりやすくなります。少なくとも、可能であれば、より現代的なテクノロジーを試してみてください。
エヴィカトス14年

回答:


26

私が耳にするのは、最新のASP MVCフレームワーク、またはVagrant / Ruby on Rails / etcをどのように使用しているかだけで、緑色の目をしています。

ああ、でも彼らは自分のおもちゃで遊んでいるし、解決策を達成するための仕事をするツールを使って実際の仕事をしているあなたがいる。

それはあなたが考慮すべきことです-ソフトウェアはあまりにも頻繁に1つのクールな新しい技術から次の最新のファッションにジャンプする人々とのアマチュアの問題です。次に、作成する製品やソリューションほどツールが重要ではない、はるかにプロフェッショナルなキャリアとしてそれを扱う他の人がいます。

古い技術を新しいものに交換する必要がある場所もありますが、一般的には単なるアップグレードであり、大規模な交換ではありません。たとえば、VB6はVB.NETにアップグレードされ、Visual Studio 2002はVisual Studio 2012にアップグレードされます。完全に書き直した人は、新しいツールでは物事がそれほど素晴らしいものではないことに気づきます。(だからこそ、ジョエルは書き直しは常に間違った答えだと言うのです)

だから物事の達成に集中し、可能な限りゆっくりと慎重にアップグレードしてください-最新のおもちゃで遊ぶことを望んでいるわけではありません(とにかくすぐに捨てられます、そしてあなたが望む絶対的な最後のものは維持することです昨年のクールな技術でコーディングした人々によって書かれたシステム)


1
VB6は、DOSがWindows NTにアップグレードされたのと同じように、VB.NETにアップグレードされていません。FWIW。
ダグ14年

21

実際、企業が時代遅れのテクノロジーに固執することには、いくつかの利点があります。

  1. レガシーのものは時々新しいものでは動作しません

    企業は、新しい言語やオペレーティングシステムでは動作しないシステムに多額のお金を投資した可能性があります。古典的な例は、IE6およびIE6のみと互換性のある多くのイントラネットWebアプリです。Windows XP + IE6を使い続けるか、動作中のシステムを捨てるか、新しいシステムに投資するかの選択は明らかではありません。

  2. 変更のために変更することは賢明な選択ではありません

    例:多くの銀行は、元々COBOLで作成されたアプリケーションを引き続き維持しています。ものが機能するとき、大規模なビジネスクリティカルなシステムを書き換えるコストと、それを間違えるリスクがあり、多数の新しいバグが発生することを考えると、ビジネスはなぜ別の言語で書き換えることを決めるのでしょうか?(理由の1つを以下に説明します)

  3. ライセンス高価です

    会社にWindows XPを使用するデスクトップが数百あるとしましょう。彼らはWindows 8に移行したいと考えています。Windows8 Enterpriseの単一ライセンスの費用はいくらですか?このコストにマシンの数を掛けるとどうなりますか?

    サーバーではさらに悪化します。OracleまたはMicrosoft SQL Serverの単一ライセンスのコストは約3万ドルから4万ドルです。たとえば、企業がデータベースサーバーを50台持っている場合、ボリュームライセンスでもすぐに非常に高価になります。

    私の会社では、Visual Studio 2010にこだわっています。多くのバグに悩まされており、Microsoftがこのバージョンを放棄したため、それらが解決されることはありません。しかし、13,000ドル(他のバージョンでは使用できない独自の機能のためにUltimateバージョンが必要だとすると)は、Visual Studio 2013に更新するには高すぎます。

とはいえ、重要な欠点もあります。

  1. レガシーなものは新しい才能を引き付けません

    これは、COBOLアプリを保守している企業の問題の1つです。安価な開発者を見つけるのに苦労しています。また、メインフレームでの作業やCOBOLコードの作成は、創造的な人にとって魅力的なものではありません。

    堅牢性を維持する必要があるバックボーンシステムには適していますが、これらのシステムと言語は、絶え間ない革新を必要とする製品には適していません。

  2. 古いことは安全を意味しません

    製品を新しい言語で書き直すと新しいバグが発生する可能性があるため、サポートされなくなった古いシステムを維持することも危険です。Windows 98でバグが見つかり、システム全体が危険にさらされる可能性があると想像してください。Microsoftはそれを解決するためのアップデートをリリースしますか?

  3. レガシーはバイラル

    従来のシステムと新しいシステムとの非互換性は、多くの場合、古い製品、言語、またはインフラストラクチャに固執していると、他の場所でアップグレードできないことを意味します。IE6でのみ動作する古いイントラネットアプリは、すべてのデスクトップでWindows XPにつながります。つまり、新しいActive Directoryバージョンに移行できません。つまり、最新のActive Directoryバージョンを必要とする新しいアプリを使用できません。など。

  4. 生産性

    製品の新バージョンは、生産性を向上させる新機能をもたらします。Visual Studio 2013および.NET Framework 4.5は、Intellisense、Entity Framework、およびコードを削減する他の何千もの改善をもたらすため、Visual Basic 6.0で1時間かかるタスクはVisual Studio 2013で1時間未満で実行できます。書くには、コードの記述速度を上げ、バグを引き起こすリスクを減らします。

    例が十分に明確でない場合、ここに別のものがあります。Windows 3.1では、システム管理者がすべてのマシンを1つずつ手動でセットアップしていました(私が知らない自動化がない限り)。今日、彼らはPXEとWindowsアセスメント&デプロイメントキットを使用して、数千台のマシン上に新しいOSとソフトウェアを数千台のマシンに自動的にデプロイしました。

    古いバージョンを使用すると、コストが非常に高くなる場合があります。Windows 95の使用に満足している一部のユーザーには明らかではないかもしれませんが、開発者、システム管理者、設計者、科学者、およびハードウェアとアプリケーションのパワーに大きく依存している他の人にとってははるかに明白です。


LinuxとEclipseまたはMonoDevelopを使用します。ライセンス費用:0ドル。
デミ

7

時代遅れのテクノロジーを使用して開発することにはいくつかの利点がありますが、それらの代替品で流encyさを失い、それらを使用する苦痛を犠牲にするコストを上回るかどうかは、あなたと彼らの間の個人的な選択です。

時代遅れの、置き換えられた技術を使用することの3つの利点を考えることができます。

  1. 古いテクノロジー自体に精通している

    まだ使用されている古い技術は、どこかで誰かが交換するよりも維持する方が安いと判断したものだけです。そのような古いテクノロジーでの仕事の経験をリストできることは、それ自体で、同じ分野で働く別の仕事を得るのに役立ちます。そして、ますます多くの開発者が進むにつれて、そのような作業に課金できるプレミアムは上がります。

  2. 新しいことを学ぶ練習をするチャンス

    他の人が教えた言語でしかプログラムできないなら、あなたは本当にプログラマーではありません。技術やモデルを古いテクノロジーに適応させるには、新しいテクノロジーに適応するために必要なスキルとまったく同じスキルが必要です。

  3. それらが置き換えられた理由のより深い理解

    VB.NETまたはC#がVB6より優れている理由をプログラマー以外のHRまたはエグゼクティブタイプに説明するのは、テクノロジー自体に精通していない場合は困難です。また、後者に完全に精通していない場合は、置き換えられた内容を知ることで、置き換えがどのように書かれたのかを理解するのに役立ちます。


上記のすべては、企業が非常に時代遅れになった技術で書かれたアプリケーションのメンテナンスに固執する理由は絶対にありません。

文書化されていないバグが原因でランタイムが失敗するまでそのままにしておくことができるのはそれだけです。しかし、開発者が移行計画なしで古い技術に費やす時間は、企業が最終的に支払わなければならない技術的負債です。


9
「時代遅れになったテクノロジーで書かれたアプリケーションのメンテナンスを続ける必要がある理由はまったくありません。」会社が維持に要する費用よりも多くのお金を稼いでいるなら、彼らはそれを維持すべきです。彼らはそれをより近代的なソリューションに置き換えることを探しているはずですが、それはお金を稼いでおり、簡単に交換することはできませんが、維持されるべきです。
スティーブン

時には真実ですが、ソフトウェアがお金を「節約」するのではなく「お金を稼ぐ」場合、誰かが同じように顧客にサービスを提供します。
ダグ14年

ソフトウェアは顧客のお金を節約し、それを開発する会社のためにそれを作ることができます。すべてが社内アプリケーションではありません。まあ、ソフトウェアも顧客のためにお金を稼ぐことができます。Visual Studioを見てください。それは売り手(Microsoft)と買い手(ソフトウェアハウス)の両方のためにお金を稼ぐ。
スティーブン14年

はい、だからそう言ったのです。繰り返しになりますが、10年経過したプラットフォームで構築されたソフトウェアを販売している場合は、顧客に損害を与えています。
ダグ14年

1
私は同意しません。開発者として、私は常に最新のテクノロジーを使用したいと思っています。しかし、ユーザーの観点からは、保守されている古いVB6プログラムから大きな価値を得る可能性があります。ゼロから再開発することは経済的または実用的ではないかもしれませんが、維持する価値があるかもしれません(これは、非常に小さなニッチ市場しかない特殊ソフトウェアに特に当てはまります)。
スティーブン14年

6

ある時点で、会社はVB6のサポート終了を心配する必要がありますが、悲しいことにVB.NETには息が残ります。

単一の小さなモニターで作業する必要がある関連する理由はありますか?十分にテストされたテクノロジーを心配するよりも、会社が安くなっているように思えます。いくつかの21インチモニターにバグが発生することはありません。

あなたのスキルを鋭く保ち、それに対価を得るために、私はあなたのビルドを見て、セットアップをテストしてデプロイすることをお勧めします。これは、ビルドと展開にrake、powershell、および/またはnantを使用することにより、いくつかの新しいテクノロジーの導入を開始する機会になる可能性があります。単体テストがない場合は、追加を開始します。

結局のところ、会社がテクノロジーの分野にいない場合、それは常に彼らにとって二次的です。コアビジネスオペレーションを保護するために、安定性を維持することは完全に理にかなっています。

キャリアに関するアドバイスをすることは避けます。他の人がベースをカバーしていると確信しています。



3

複数の利点があります。

1)広く使用されていない不明瞭なものでない限り、テクノロジーに利用できるリソースはたくさんあります。

2)会社の他のメンバーが技術に精通していることを願っています。

3)新しい開発がそれほど多くない場合は、古いコードをリファクタリングして、よりクリーンまたは高速にすることができます。この古い技術を保持している店のタイプは、恐らくどれほどひどいものであっても、「機能する」コードを変更することに反対するでしょう。


5
コードが動作する場合、それはいけません、あなたがそれを避けることができれば変更すること。開発者が変更を加えるたびに、新しいバグが発生する可能性があります。新しいバグは、古いコードを使用する利点をほとんど無効にします。
ダグ

それのための変更は明らかに良いアイデアではありません。ただし、ソフトウェアが一定の成熟度に達すると、アプリケーションの低速部分のチューニングに注意が向けられることがよくあります。
ロビーディー14年

3

古い質問の利点は他の回答で十分に取り上げられているため、この質問の裏返し、つまり新しい技術を使用することの欠点に集中します。

まだ大きなVisual Studio 6コードベースがあり、すぐに置き換えられるようには見えません。

しかし、私たちは新しい開発のためにできる新しい技術を推し進めています。

ほのめかしているように、COMを使用してレガシーVB6コードと非常にうまくインターフェースするVB.NETを書くことができます。

最先端のテクノロジーを使用すると、生産性が大幅に向上することが多いため、間違いなく楽しいです。ただし、逆に、バグ/グリッチに遭遇すると、数日/数週間戻る可能性があります。それは理由のために最先端と呼ばれています!

たとえ会社がソフトウェアをアップグレードするために多額の資金を調達したとしても、これは(個人的な経験からわかったように)会社が選択する方法に関係なく、多少の抵抗になります。

ソフトウェアポート

ソフトウェアは書き直されますが、ユーザーを混乱させないために、古いソフトウェアとまったく同じに見える必要があります。新しいテクノロジを使用する喜びは、新しいGUIウィザードを使用できないという事実によって上書きされます。

Visual Studioの更新

スタジオの1つのバージョンでは問題なく動作し、他のバージョンでは動作しないコードの不具合を解決するのに多くの時間を費やすため、実際には新しい機能を適切に使用できません。

機能の移行

コア機能を維持したままソフトウェアを移行します。これにより、開発者の観点から最大限の自由が得られますが、新しい付加価値機能も含まれていない限り、このような演習の価値に疑問を抱かせるバグが導入される可能性があります。

ほとんどの開発者向けのNirvanaは、最新のテクノロジーに関する質の高いトレーニング、学んだことを実践する機会、そして歯を磨くためのグリーンフィールドプロジェクトです。

あなたがすべきことは、主にあなたのタイプによって異なります。ネオフィールは常に新しいものを使いたいと思うでしょうが、ラディットは古い技術がベストだと考えています。私たちのほとんどはその中間のどこかにいます。あなたが快適に感じる場所で解決する必要があります。現状のままで生きることができると思うなら、それ以外の場合は、とりあえずコインを取り、より適切な位置に半分目を向けてください。


1

これは正確にはあなたが求めているものではないかもしれませんが、いくつかの提案があります:

最大のメリットは、最終的に移行する必要があることに気付いたときに、雇用主に専門知識の面で提供できるものだと思います。XPは廃止されます今年ので、IT部門はすでに移行戦略を検討していると思います。(そうでない場合、彼らの会社は長くは続かないので、履歴書を準備してください。)

それを念頭に置いて、OS /プラットフォームの移行と併せて主要なソフトウェアツールセットを移行するための利点のリストのコンパイルを開始するのが賢明かもしれません。新技術に関するROIに関して、技術的に未熟な管理チェーンの教育を支援します。あなたのマネージャーは、ウィズバンフレームワークとハイテク玩具についての発言をしませんが、彼らは非常に継続的なメンテナンス費用、将来の開発などの比較コストに関する長期的な予測興味。

これらと同じ方針に沿って、この機会に顧客(ソフトウェアを使用している従業員)の満足度を調べることもできます。彼らはどのような改善を期待していますか?どのバグが彼らを夢中にさせますか?どの機能が効率を大幅に改善しますか?テクノロジーへの新しい投資が収益に明らかに影響を与えることを雇用者に示すことができれば、Technical Migration Managerの称号を獲得できます。

そして、それはどんな履歴書でも似合います。

更新:業界であなたが一人ではないように見えます:「世界のATMの95%がXPを実行しています」。誤解しないでください:XPは素晴らしい-私はいつもファンでした。しかし現実には、セキュリティパッチとアップデートが終了すると、XPは銀行にとって実行可能な製品ではなくなります。(銀行の顧客のために)あなたの仕事は、退職日を過ぎてもXPを維持するために(拡張サービス契約または攻撃緩和で)はるかに多くのお金を払うことになることをマネージャーに丁寧にしかし永続的に通知することです。@RobbieDeeのリンクが指摘したように、あなたは2015年7月14日まで持っています。それは、交換システムを設計、実装、および展開するのに十分な時間です(今すぐ始める場合)。

(ただし、企業全体のXPインストールでサインオフしたばかりの人にこのアイデアを売ろうとしないでください。彼はあなたの味方ではありません。そのような判断で、その役割での日々は数えられます。より賢い頭が勝ちます。)


参考までに、(少なくとも部分的に)サポートは当初の2014年の期限を超えて延長されました。bbc.co.uk
ロビーディー14年

こんにちは、対応ありがとうございます。これは悲しいことではありません。最近(2013年後半)、会社(銀行)はPCの更新を行いました。この更新では、チェーン内のすべてのコンピューターをDellの新しいキットに交換するために多額の費用を費やしました。その後、これらのマシンをすべてワイプし、XPをインストールするためにIBMから人々に支払いました。彼らがより現代的なOSにアップグレードしたいなら、それは絶好の機会でした。通常、あなたの答えは確かなアドバイスですが、+ 1
囚人

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