CSC/ECE 517 Fall 2010/ch7 7g ms: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 3: Line 3:
=Analysis Paralysis Anti-pattern=
=Analysis Paralysis Anti-pattern=


In software engineering, an anti-pattern (or antipattern) is a pattern that may be commonly used but is ineffective and/or counterproductive in practice.
In software engineering, an anti-pattern (or antipattern) is a pattern that may be commonly used but is ineffective and/or counterproductive in practice[[1]].


Analysis Paralysis is one of the classic anti-patterns in object oriented software development. In analysis paralysis, we over analyze (or over think) a situation until no decision is ever made, which effectively paralyzes the current process' outcome.
Analysis paralysis is one of the classic anti-patterns in object oriented software development. In analysis paralysis, we over analyze (or over think) a situation until no decision is ever made, which effectively paralyzes the current process' outcome.
 
 
This diagram is a Universal Modeling Languages (UML) diagram of how a Singleton class would look if implemented in Java.


=History=
=History=

Revision as of 20:51, 1 December 2010

Analysis Paralysis Anti-Pattern

Analysis Paralysis Anti-pattern

In software engineering, an anti-pattern (or antipattern) is a pattern that may be commonly used but is ineffective and/or counterproductive in practice1.

Analysis paralysis is one of the classic anti-patterns in object oriented software development. In analysis paralysis, we over analyze (or over think) a situation until no decision is ever made, which effectively paralyzes the current process' outcome.

History

How to Defeat Analysis Paralysis

   *Keep models small. Never integrate them. Building a bigger model doesn't add knowledge - it destroys knowledge
   *Employ a professional architect
   *Start your project with one requirement and an architectural prototype

The PDCA Model

   *Plan
   *Do
   *Check
   *Act


Causes

  • Pride
  • Narrow Mindedness
  • The lure of infinite composability and decomposability
  • Insistence on completing all analysis before beginning design.
  • Regular change of leads and their philosophies (each trashing and restarting the work of the previous)
  • Too many learning curves at once (underqualified analyst) causing incessant revisiting of prior work
  • Lack of goals
  • Increasingly conflicting goals (often political)
  • Creative speculation, when discovery and definition are required.
  • BigProjectSyndrome: this one will do it all, will use the latest tools, will use a new paradigm, will use all new developers, will start with a clean slate, will handle all use cases of two or more existing systems in the first release, etc.
  • Risk avoidance, fear of making a mistake.

References

[1] Wikipedia. (2010, November) Wikipedia - Anti-Pattern. [Online]. http://en.wikipedia.org/wiki/Anti-pattern