In 2006 Madsen mentioned software development has evolved from many forms of the past and today, almost daily, new and much simpler but effective techniques are being introduced in software development areas. Software development is a process which requires many steps and procedures within a single cycle that’s why software development is considered one of the biggest tasks in its developing industries. In literatures of software engineering, many software development models are present and no one of them is able to qualify the maximum level in development feasibility.
No matter any software development philosophy you consider, the one phase which always gains the top priority is the resource gathering phase. More than 30 to 40 percentage of time in software development process is consumed gathering resources by many software vendors as mentioned by Leon in 2008.
Resource or requirement gathering phase is one of the key phases in software development process. Different software organizations follow different strategies in requirement gathering phase but Sanjay (2005) mentions that sometimes either clients or software vendors fail to deliver their best in gathering requirements mainly due to their buried efforts. As far as traditional way is considered for software development it involves a number of meetings among software vendors and clients in order to decide projects common point of view according to availability of requirements. In many cases it comes a stage where changes in work done are required and requirements are frozen and the main cause behind most cases are miscommunications in meetings while the requirement gathering stage is on. All of this results in a lot of rework with respect to project and project delivery dates are affected too.
Miscommunication and less interaction are the two events if happen in requirement gathering phase in most cases result to project failure according to Korson (2008). It also results in issues between clients and software vendors at the end of failed projects. Thus a requirements gathering phase always has lots of issues hidden and in order to avoid any of those issues its required clients and software vendors explain their requirements in details and every step of software must undergo discussion in order to reduce requirement changes or software modification in future. However issues are a part of software development and it mainly cannot be fully avoided but one can reduce them as there are many tools present for implementing perfect requirement gathering methods.
If you consider Vliet (2008) views, its true requirement gathering is the most important step in software development and one must also consider the presence of a whole separate area says requirements engineering in which different procedures and frameworks are tested and introduced to enhance requirement gathering phase by all factors and introduce new requirement gathering techniques for this phase.