Gathering software requirement from client plays a vital role in software development, this phase actually decides the manpower & skills required, time and cost of development, specially in case of customized software solutions. The role of programmers, designers, managers to support team is more in these customized softwares as compared to already bundled ready to sell softwares.
The more detail you collect during the requirement phase, less you have to work on re-design, re-code, re-test & support.
Initially user/client has a different point of view about software solution which keeps on changing as the things goes on, his expectation keeps on increasing day by day.
The success of such project depends on how better we match client/users changing point of view.
Recently I had a chat with one of my good friend. He is a charted accountant and need a solution for his office. He want a system that can track all the task/work, their progress, list of un-assigned tasks, to whome they are assigned and what is their current status.
When I asked him about his point of view for the software solution he told me that :
Next meeting comes up with few more points, now he also need
In my next meeting he gave me some more inputs about the software he needed. This time he gave me a work flow chart that he needed. After this meeting we have to change the database, design & software work flow which we were thinking of earlier. If it has to be done after starting the work, we have to redesign & database, design & software workflow. My friend has started thinking his life with the software solution & want the solution in a couple of days.