I recently responded to a question on a newsgroup regarding what to use for persisting data - XPO (an Object/Relational Mapper (ORM) tool) or Microsoft's ADO.NET. The question was from a Delphi developer new to .NET. For posterity, I've included my response below.
It's generally acknowleged that bringing a non-trivial software project to a successful conclusion is problematic. Sadly statistics confirm that few projects can be regarded as successful when one strictly applies the criteria that a successful project is one that is delivered on time, on budget and to specification. Delays, budget overruns and the delivery of solutions that aren't actually of value to stakeholders are common symptoms.
"BPM is SOA’s killer application, while SOA is BPM’s enabling infrastructure." - Ismael Ghalimi