If you develop software for a medium or big system you will find documentation to become an increasing challenge.
If you try to work on a document with 800 or more pages in a normal office word processing software you will come across problems
of speed, breakdowns due to too large files, loss of formats in sections of the file which you believed to be settled, etc.
To be honest these word processing software is made to write a single page or an article of 30 pages, but then the limits are
reached. Even if you have the latest computer equipment it still remains a challenge.
Additionally to the tool issue you will have to face the problem of redundancies in documents. Imagine you have a requirements specification or a design document where you want to hand out a part of it to the customer, but the other part should remain confidential. Or you have a data table for variables and constants in the design document and at the same time you need a data dictionary. The design document should only contain a part of the data description but the data dictionary should contain all. From these problems it is at hand that a good solution would be to have the textual data in a kind of data base from which you can selectively print documents for various use cases. well, SGML actually is such a kind of database. The contents can be structured very well and by using different style sheets for publishing you can generate various documents with selective contents out of the same source of data. I recommend that you read the further information in this section of our web-site.