Tuesday, November 24, 2009

Impact of Software Documentation


"The guy who knows about computers is the last person you want to have
creating documentation for people who don't understand computers. "

I had an interesting discussion on today's game development class. We were discussing the prospects and advantages of joining a game development company. One of the classmates told that he prefers game development companies over traditional companies because there is less documentation in game development companies.

It was a bit surprise to me that I never expected such a point. I requested him to eloborate on the topic. His overall argument was:

1. Documentation is an unncessary work. It is a hurdle to programmer.
2. Programmers could do a better job i.e. programming instead of documentation.
3. Game development companies require very less documentation.

Usually, I do not like to argue or contradict others personal opinions. But, in this case alone, I think the whole concept of documentation has been misunderstood. I have seen several people of this same opinion. They argue that documentation is a secondary grade work compared to programming.

Unfortunately (or actually fortunately), I could not agree with them. To me, documentation is a part of programming. I would consider it as one of the most important part of programming. I believe:

1. Documentation lets a programmer to have a blueprint for the implementaion of a project.
2. Documentation lets a programmer to prioritize the goals.
3. It lets a programmer to analyze his own work.
4. It helps in developing the test cases and ensures that all possibilities are tested.
5. It validates the program, tests for quality and much more.
6. More than everything, It helps the future developers.

As a developer for 4 years, I have used so much documentation, as a part of our project, such as:

1. Business Requirements Document
2. Preliminary Analysis Document
3. Project Estimate Document
4. Project Plan
5. Business Analysis Document
6. Technical Design Document
7. Unit Test Plan
8. Unit Test Logs
9. Integration Test Plan
10. Integration Test Logs
11. Stress & Performance Test Plan
12. Stress & Performance Test Logs
13. Implementation Plan

I do agree that all these documentation is a lot of work.

But, Practically, I have seen and realized that this documentation and a disciplined process of Software Development will create a High Quality product and make the life of a developer easier.

3 comments:

Saravana Pandi said...

well, it depends.

If you or your company really need it. you can make note of points with precise details.

The problem here, every organaization own has their own format and you have to write everything like writing novel. Programmers doesn't neccessarily have that skills.

"creating documentation for people who don't understand computers"..

There is always difference b/w objective type questions essay type.

My vote is to your classmate

Sarangan Rajamanickam said...

Pandi,

My point precisely is that every company needs process and documentation. They are the tools with which you can create quality products.

Anonymous said...

Saranga, R u sure you did so much of documentation in your 4 years of company life. I dont think so :)