An important thing to remember is to get feedback from the end users of the system as quickly as possible. 

I have seen more than one feature that has been released only to discover that there is no actual demand for it! 

A company can waste a lot of development time and therefore money by not getting feedback at an early stage. 

Show the product to the end user as soon as is practical/possible! A lot of companies are scared of doing this as they fear clients will compare the quality of an iteration with what they had in mind for the final product. Of course we don't want to show software that is error prone and terrible in appearance, but we really don't want to "polish" features that are never going to be used! We should be able to avoid error prone code by ensuring that all work committed to an iteration is "Done".

{jcomments on}