What kind of documentation and other artifacts would you expect to get in case of taking over existing Java webapp (probably it uses JBoss Seam framework) made in-house?
I would expect to get:
- Source code in form ready to open in specified IDE.
- All external elements (i.e. DB schema as SQL scripts, installation scripts).
- Configuration files (both for devel, testing and production environments).
- All external libraries needed by project.
- All external tools used in project or at least their description (i.e. make program, version control software).
Detailed info about:
- How to compile project (IDE, libraries, their versions, compilers, OS),
- How to setup development environment (database version, OS, DB schema),
- How to install and run application -- server specification (OS, database, versions, minimal hardware, configuration both app and DB),
Probably it would be also nice to have:
- Archive of the whole version control system (to make possible checking changes from the past).
- UML diagrams or other form of big picture of application design.
- DB schema.
What I miss?
Some background details
Friend works as a lawyer for a company which needs legal agreements with people who develop applications for them. Just in case something goes wrong.
In general -- the company wants to have source code deposited somewhere. But source code is not enough to maintain or even compile and run webapp, so they also needsome documentation which helps maintain the app.
I've never taken someone else's project in a similar case (no access to previous developers), and I am not Java developer, so I expect there are a lot of things to miss.
More details added after a few answers
The bosses of company (named it A, small corporation), which ordered and uses the app and company (named it B, a few people) which writes the app, are friends.
Development is in-house. No formal spec, no written specification. All features are discussed over mail or on meetings.
Everything, including hosting the app, is managed by B.
Friend (who is also one of heavy users of the app -- let's say she is product owner) doesn't trust developers from B at all.
Friend also doesn't believe in B competencies (believe me -- she should not).
So to protect A business friend wants written legal agreement with B in case B would go away with A data and app...
As MSalters wrote -- don't laugh -- it happens :(.
A already made B to make and provides backups.