“[…] software design and the software product generally may be “wicked” problems – problems where the solution changes the nature of the original problem, which requires another solution, and so on. The analogy is to social enginnering and the failure of housing projects. This is not something that could be done away with by better planning.
There are other factors that make the problem “wicked”: problems are always essentially unique; there is no defined stopping point for solutions; there are too many alternatives and alternatives which, at one point, were possibilities, once implemented are too costly and risky to reverse.”
“[wicked problems] have the following characteristics: 1). There is no definitive statement of the problem; in fact, there is broad disagreement on what ‘the problem’ is. 2). Without a definitive statement of the problem, there can be no definitive solution. In actuality, there are competing solutions that activate a great deal of discord among stakeholders – those who have a stake in the problem and its solution. 3). The problem solving process is complex because constraints, such as resources and political ramifications, are constantly changing. 4). Constraints also change because they are generated by numerous interested parties who “come and go, change their minds, fail to communicate, or otherwise change the rules by which the problem must be solved”
“[In software,] we fail even on un-wicked problems”