Software development is a challenge faced by most developers when developing medium or large sized project. Software is usually developed as a team work and even when developers are working in the same office, careful collaboration of work is of utmost importance.
The foremost importance when developing a piece of software is managing the code. If hundreds of developers are working on the same code, they need to be streamlined and taken care that no two developer’s work is in conflict with each other. In short we need Source Control Management. This source control management software should allow concurrent access while
reading and exclusive access while making changes. Source control management is not the only thing to be taken care of. To err is human and
developers too fall in this category. All software has bugs and they need to be tracked. These bugs may be due to poor testing or due to shortcoming of the code. Logical errors also go un-noticed. If this software uses networking using TCP/IP, then care has to be taken for network failures. Some of the bugs may not be a bug but a wish-list. Normal users may file bugs which
are actually features instead of bugs, which need to be addressed carefully.
(This was my BE project. You may download the design document from here )