私はエンジニアリング会社でソフトウェア開発の役割を果たしました(開発されたすべてのソフトウェアは内部使用のみです)。同社には、過去の開発者による約60の個別プログラムがあります。問題は、過去の開発者がすべていなくなって、ソフトウェアの約半分がなぜ構築されたのか、誰がそれを使用するのか、あるいはその一部が何をするのかさえ誰も知らないということです。私たちはSVNを使用していますが、過去の開発者はコメントを書いたり、ドキュメントを作成したりしていません。
私がこれらすべてを理解していると仮定すると、このすべての情報を追跡するために使用できるプログラム/システム/メソッドはありますか?同社はExcelに傾倒しているので、もっと良いものがあると思います。 Word Docにドキュメントを記述し、それをsvnにコミットして、コードのすぐ隣に配置した方がよいでしょうか?
私はテキストファイルを使用しますプロジェクト内そのようなことのために。それらは保守が簡単で、見つけやすく、置き忘れが困難です。共有する必要がある場合はWordまたはExcelでも同様に機能しますが、何がいつ変更されたかを簡単に判断できるように、ある種のログ形式で書き込むにはより多くの規律が必要になります。
余談ですが、私は積極的にこれらのプロジェクトのできるだけ多くを廃止しようとしています。20プロジェクトを管理する方が60プロジェクトよりもはるかに簡単です。
あなたが説明していることから、あなたがここで何を扱っているのかをよく理解するために、いくつかの作業をしなければならないことは避けられません。
SVNは単なるリポジトリです。これは、大きな問題につながることなく間違いを犯すことができる方法で作業を保存することを目的としています。プロジェクト管理の面倒を見るのに使用すべきではありません!
いくつかのソフトウェア開発プロジェクト管理/ ALMソフトウェアを実行している安価なサーバーにある種の資金を得ることができれば、開発とユーザークエリの追跡という点で、すべてがリポジトリにリンクされていることに役立ちます。私はALMソフトウェアの大ファンです。これは、人間とのつながりを依存性から解放する方法で、開発を伝達および計画するのに役立ちます。適切に使用すれば、プロセスを構造化するのに役立ちます。 (それはいくつかの規律が必要です)
Windowsサーバーを実行するための資金がある場合は、TFSにアクセスしてください。あなたが説明していることにぴったりのようですが、FOSSツールに比べて費用がかかります。一方、これは非常にうまく統合されたツールのセットであるため、学習曲線が浅い、うまく統合された環境でプロジェクトを管理できます。 (特別なものは必要ないと仮定します。TFSは高度に構成可能ですが、以前に関与した技術者と一緒に作業したことがない場合は、PITAで構成できます。)
私が気に入っているFOSSの選択肢は、trac、redmine、またはchilliprojectです。 redmineを除いて、私はそれらをユーザーとしてのみ使用したので、それらをセットアップするのがどれほど簡単かは本当にわかりません。
管理がExcelを超えない場合は、運が悪いです。その場合は常識次第です。プロジェクトごとに、バグ追跡用に1ページ、リリース計画用に1ページ、リリースの文書化用に1ページの、ある種の概要シートと1つのワークブックを用意することをお勧めします。 (今それを作り上げたばかりですが、仕事をするための適切なツールを手に入れることができない場合は始まりのようです)
誰がそのソフトウェアを使っているのか?それは誰の推測でもあります。ネットワーク管理者の助けを借りてスキャンできるネットワーク経由の接続がない限り、潜在的なユーザーをポーリングすることが唯一の方法です。ソフトウェアが何をするかを伝える限り、利用可能なドキュメントがなく、誰もその情報を提供できない場合は、それを分析する必要があります。高速ですが不正確な方法は、ある種のサンドボックスで実行して確認することです。遅くても完全な方法は、コードを確認することです。 (構造の概要をすばやく確認するために、ラウンドトリップ機能を備えたUMLツールを使用してリバースエンジニアリングすることもできます)
ドキュメンテーションなしの部分も。これは、ドキュメンテーションの必要性を指摘する良い機会のようです。ドキュメントには2つの側面があります。コードのコメントと概要/使用方法のドキュメントの作成です。
もちろん、各プロジェクトをできる限り文書化する必要がありますが、サービス/製品のカタログがある一元化された「場所」も必要です。指摘したとおり、プロジェクトの「メタデータ」を記述します。どの部門が使用しているかそれ?誰がそれを維持する責任がありますか?何に使うの?他のプロジェクトとの依存関係はありますか?
その「場所」は、ドキュメントやExcelシートなど、あなたとあなたの会社にとってうまくいくものなら何でもかまいません。しかしもちろん、ウィキ、ドキュメント管理システム、または問題に特化した製品など、より「複雑な」ツールや製品を使用することもできます。
ITILを見てみることをお勧めします。ここでは、ITILサービスカタログと呼ばれるものが定義されています。 https://www.google.com/search?q=itil+service+catalog アイディアがある。
Danが指摘するように、プロジェクトにreadme.txtを含めることは重要です。厚くする必要はありませんが、訓練を受けた人がコードを作成してデバッグするのに十分な量をカバーする必要があります。カバーする重要なことは、外部構成と依存関係、およびその他の地雷のようなものです。
SCM統合でプロジェクト追跡ツールを使用することもお勧めします。個人的には、最近はレッドマインが苦手です。適切に使用すれば、時間の経過とともに、すてきで簡単な、自己供給型のドキュメントストアになる傾向があります。 Redmineから学べることは他のプロジェクトツールからは学べないことがあるので、私たちのRedmineは、長い間休眠していたプロジェクトに飛び込む必要がある場合に特に貴重だと思います。
単純なスプレッドシートやテキストファイルの代わりに、 TiddlyWiki のようなものをお勧めします。これは完全にブラウザ内で実行される単純なウィキであるため、インストールまたは構成する必要はありません。公共の場所に貼り付け、定期的にバックアップします(ファイルをSubversionリポジトリにコミットするだけです)。これは、(うまくいけば)制限しすぎずに、少し構造を提供します。さらに何かが必要な場合は、 Liferay がオープンソースのポータルベースの「コラボレーション管理」ツールを提供します。私はいくつかのプロジェクトでそれを使用しましたが、あなたがやろうとしていることにはおそらくやり過ぎです。
アプリケーションの「ポートフォリオ」を管理するために参照しているのは、プロジェクトポートフォリオ管理(PPM)またはアプリケーションライフサイクル管理(ALM)、あるいはその両方です。低コストのシンプルな管理からハイエンドの管理まで、数多くのツールがあります。
ファイルベースのソリューションの問題にバンドエイドをかけようとしないことで、あなた自身とあなたの組織を支持してください。いくつかのPPMクライアント用に実装したツールは次のとおりです。
AtTask -低層、SaaS利用可能、簡単で制限された構成可能性
Planview -上位層、SaaS利用可能、究極の構成可能性
明快さ -ミッドティア、SaaS不明、限定的な構成可能性
Redmine 。
プロジェクトごとにプロジェクトを作成し、それぞれをコードを含むSVNセクションに接続して、そこから移動します。各プロジェクトには、バグトラッカーとWikiがあり、情報が何であるかを判断するときに、各プロジェクトに関する変更と情報を追跡する方法があります。さらに、プロジェクトを構成するコードを確認し、それをバグやドキュメントに関連付けることができます。
2つ目のボーナスは、非常に優れたプロジェクト管理ツールを無料で入手できることです。
Redmineを使用すると、プロジェクトの階層を構成でき、各プロジェクトには独自のwikiがあります。 wikiのフォーマットは非常にシンプルなので、それに夢中になる必要はありません。私たちが作成するほとんどのウィキは単一のページであり、外部参照へのリンク、貧弱なコードについてのいくつかの段落、そして重要な@todos
。
また、ソースコードの統合もサポートしており、プラグインによって提供されるwikiからコードに直接リンクするための構文があります。