The CTO of the blogosphere asks: What kind of software would you like developed?
Option 1: Build a product in 12 months that is simple and easy to use but only meets basic requirements. Upon completion, this company will only fix bugs and provide minimal updates every six months; training through FAQs and some simple documentation; and support through basic email, forums, but no phone contact.
The cost to you to pay for the development and ongoing support of this product is low.
Option 2: Build a product in 24 months that meets all the requirements including features that you might want to use in the future but is complex to configure and use. Upon completion, this company will fix bugs and provide enhancements or new functionality through a elaborate support agreement that includes frequent updates every three months; extensive training through onsite, manual and online and support through 24/7 phone,email and web. However, the cost to you to pay for the development and ongoing support of this product is high.
Option 3: Build a product in 18 months that is simple, basic and easy but an open architecture is developed that will allow others such as end users or other developers to make it as complex as they would like it through the development of addons and extensions. Upon completion, this company will fix bugs or enhance existing functionality only and provide moderate updates, training and support through a combination on in-house and community resources. The cost to you to pay for the development and ongoing support of this product is a little more expensive than Option 1. In addition, you will be on your own regarding support and future development of any additional functionality that is provided by third parties.
Only an idiot or a dinosaur would build software under Options 1 and 2.