In most companies there is demand for custom made software solutions for a problem that they have. In these cases companies will approach a independent sofware developer, or a developing company, to try and solve the problem. I as developer then interview this company to try and find out what the current situation is and how I can improve this by designing and implementing a software solution.
So why do companies choose this method instead of just purchasing a package that's already on the market. The main reason I suppose is because the solutions designed by use are more suited to the situation in you're company then the packages on the market. In other words we only care about making it fit to your wishes, not to the entire world's wishes.
In the world of software engeneering there are two ways to run a project, you have the 'fixed price' solutions and the 'hour wages'
solutions. The first is the most commen for a few abvious reasons like knowing the price in advanved and having deadlines set
before the beginning of the project. Lets look at the two different methods a bit closer to clarify any commen mistakes.
The Fixed Price solution has, as the name suggest, a fixed price that is set at the beginning of the project. Next to this it is commen to set a couple of deadlines through out the project with milestones that have to be met. In short it means that there will be development phases and each phase will result into a document or code.
In this way of developing there will be fewer meetings between developer and customer, as most of the milestones are fixed and only they need to be discussed. Of course there are progress meetings at the end of each phase of the development to discus how far the development has progressed and any problems that have been encountert.
This method of developing may appear more expensive, and usally will be more expensive then fixed price solutions. However in some cases you might require the project to change to fit you're needs even better. Or in a more likely reason is that you as customer have changed you're mind about the working or requirements of the solution. In this method each phase will conclude in a document for the design followed by the first increment of implementation. After each phase the customer and developer discus what the next phase will bring. This gives the customer more power to make changes and makes the solution more flexible at times.