私はシステム全体がOracle Formsで作成されたプロジェクトに関与しましたが、ドキュメントはありませんでした。テクノロジーは簡単にPerlであった可能性があります。システムをOracle ADFに移行するための攻撃計画は次のとおりです(他のプラットフォームと同じくらい簡単にできます)。
- ビジネス要件(機能、バグ、検証、UIなど)のコードカテゴリのセットを作成します。
- 画面のカテゴリのセットを作成します(同様の機能でグループ化します)。
- アプリケーション全体のすべての画面のリストを作成し、スプレッドシート内で列挙します。
- 各画面にコードカテゴリとコードタイプ(ビジネスルール、システム要件、技術など)を割り当てます。
- コードをリバースエンジニアリングしてビジネス要件を抽出し、各要件を1文で記述します。
この時点で、アプリケーションのビジネスルールが文書化されています。これだけで、次にシステムを維持しなければならない人にとっては金になるでしょう。さらに、システムのどの部分が複製されているかを確認する機会が与えられます。(私の場合、コードベースの60%以上が重複していることがわかりました。)
ここから、管理を使用してビジネス要件を分類できます。たとえば、ユーザーストーリーの作成が必要になる場合があります。これにより、高レベルの重複機能が明らかになり、移行中にシステムを簡素化および強化する機会が提示されます。要件の追跡と文書化を行う1つの方法を示すために、スプレッドシートのスクリーンショットを含めました。
Perlをブラッシュアップする必要があるかもしれません。;-)
プロジェクトをリバースエンジニアリングしたら、ソフトウェア開発ライフサイクルを支援する一連のツールを使用できます。(私たちはJIRAを使用していますが、機能する他の多くのソフトウェアスイートがあります。)いくつかの戦いが必要になるかもしれませんが、要件が下がったら、次の環境に移動する必要があります。
- ドキュメンテーション環境を作成します(例:wiki)。
- 開発(DEV)環境を作成します。Webサーバー、データベースサーバー、ソースリポジトリなど
- 開発を反映したテスト(TEST)環境を作成します。
- 本番環境を正確に反映し、本番システムのフェイルオーバーとして機能できる本番前環境(PREPROD)を作成します。
- 実稼働(PROD)環境を作成します。
コミュニティ指向のサービスを使用して、エンドユーザーのドキュメントの要件に取り組むことを検討してください。StackExchangeスイートに似た優れたソフトウェアパッケージはOSQAです。ユーザーにヘルプシステムを構築させます(これは非常に賢い戦略です)。
SDLCは次のようになります。
- 開発者はDEVでアプリケーションの変更を行い、テストします(リポジトリを使用)。
- システムツールは、通常のビルドをTESTに自動的に展開します。
- テスターがアプリケーションに満足したら、アプリケーションはPREPRODにデプロイされます。これにより、展開プロセスもテストできます。PREPRODでさらにテストが行われます。
- テスト担当者がPREPRODに満足すると、アプリケーションは最終的にPRODに組み込まれます。
これは、さまざまな開発方法論でうまく機能する高度に組織化されたアプローチであると思います。ここで説明した最初のパスは、「幅広いブラシストローク」と見なす必要があります。この時点では、テクニカルマニューシャで細かくなりすぎないようにしたくありません。(たとえば、ユーザーインターフェイスの要件は各画面でキャプチャされます。画面が列挙されている限り、すべての入力フィールドを繰り返す必要はありません。スクリーンショットまたは作業URLにリンクするだけです。)
最後に、ソースコードを確認するために、一連のWebページ(機能的な「画面」ごとに1つのWebページ)を自動生成しました。PL / SQLコードを個別のファイルに分割し、構文を強調表示して自動的にHTMLに変換できるため、これはうまくいきました。Perlの場合、これはうまく機能しない可能性があります。ただし、アイデアは、ビジネス要件を適用するコードのセクションに戻るアンカーリンクをスプレッドシート内に作成できるということです。(余談ですが、これにより、複数の開発者がシステム要件を並行してリバースエンジニアリングすることもできます。各開発者が同時に異なる画面に取り組むことができるためです。)
ソースコードスニペットの例(+はアンカーリンクです):
分析タスクを支援するために、いくつかのPerlグルを雇うことをお勧めします。
他の人が「くだらない仕事」をしていることを指摘するのはあまり生産的ではないと思います。むしろ、製品を改善し、人々にこの目標を手助けする機会を与えるべきです(そしておそらく、プロセスにおけるスキルを改善する方法を学ぶべきです)。つまり、他の開発者が何を知っているのか、システムを開発したときにそこにいなかったのです。このアプローチにより、プロセス全体がオープンになり、誰もが貢献できるようになります。
正直に言うと、マネージャーは自分が本当に役に立っていて、改善したいと思っていることを自分で確かめます。