On 12/2/2013 6:13 PM, Ihe Onwuka wrote:Anyone who has been in engineering or manufacturing for any significant time should know that things ... systems ... whatever that has any complexity ... hardly ever work as expected right off the bat. Things have to be tweaked, fixed, redesigned, reworked before they work right. A new ship, for example, will likely have thousands if not tens of thousands of item on its punch list when first launched.
That would be Gall's 3rd System Axiom.
http://www.laetusinpraesens.org/docs/systfail.php
Even with a good clear set of requirements, analysts and designers
dilligent and good enough not to specify/implement an over-engineered
solution are thin on the ground.
That's true about software, too. Anyone who thinks a software system is going to work right at first is a fool, there's no way around it. But the contractual and managerial means that would provide for the evolution to a correctly working system - and these means have to work all during the project, not just near the end - we hardly ever have them.
This would be true even if the requirements were fully known and properly worked out from the start, and the development team were totally capable and understood how to use the tools provided. But we know that's hardly ever the case, too.
When legal and political matters are involved, they make it much harder because they can't be flexible where flexibility is needed.
As I think about this, it seems to me that what is needed is research into new methods of contracting for and managing software systems. It's not that a new methodology will solve everything. It's not that a new modeling tool or a new programming language will solve everything. It's not even that better programmers will solve everything. The social/managerial/contractual base is completely inadequate.
Hopefully what emerges will be simple. Enterprise Architecture was a apparently good idea that grew out of control into an unmanageably complex monster. And yet at its simplified core, it still can have value.