I've been in many projects that died from perfection (perhaps another AntiPattern -- DeathFromPerfection). You would be quite surprised at what will suffice. As one example, I worked on a cumbersome project at an insurance company that was disbursing lump-sum payments. A gigantic systematic infrastructure was put in place to calculate the amounts of the checks, record the disbursement and its subcomponents in the general ledger, and provide reconciliation to state auditors. The system was so thoroughly overbuilt that numerous transactions simply failed to post, for one good reason or another. When it came time to finalize all outstanding transactions, a couple hundred items were still outstanding. Rather than hassle with bug fixes and patching datasets, however, we finally hit upon a simple and more elegant solution. We simply asked the Accounts Payable department to create manual checks, and then did manual journal entries to the proper accounts. It was simple and much cheaper than fixing the bugs. Do the best you can, but always keep a larger perspective of the objectives and purposes of your organization. Never lose sight of alternatives that might be simpler and still achieve your purpose. Yes, we know that one of the major objectives of an IT project is to KeepPeopleGainfullyEmployed, but sometimes it just makes more sense to hand-type a check.