Software comes in all types of size and shapes. Every team has different though process, works differently and the outcome of the software depends upon various factors such as client requirement, budget, time, use of available solutions to common problems etc. And if all goes well, the application does what the user expects it to do. But modern software can be complex, which can lead to complex co