AntiPatterns Tik110'498 Seminar on Design Patterns HUT 18'05'2001 Vesa Krpijoki Softplan Oy - PowerPoint PPT Presentation

1 / 13
About This Presentation
Title:

AntiPatterns Tik110'498 Seminar on Design Patterns HUT 18'05'2001 Vesa Krpijoki Softplan Oy

Description:

50 years of software development still the same fundamental problems are ... occurring solution to a problem that generates decidedly negative consequences. ... – PowerPoint PPT presentation

Number of Views:164
Avg rating:3.0/5.0
Slides: 14
Provided by: ATKke
Category:

less

Transcript and Presenter's Notes

Title: AntiPatterns Tik110'498 Seminar on Design Patterns HUT 18'05'2001 Vesa Krpijoki Softplan Oy


1
AntiPatternsTik-110.498 Seminar on Design
PatternsHUT 18.05.2001Vesa KärpijokiSoftplan
Oy
2
Introduction
  • 5/6 of software projects are regarded as failures
  • 1/3 of software projects are canceled
  • 50 years of software development
    gt still the same fundamental
    problems are encountered over and over again
  • no generic preventive actions for avoiding the
    problems
  • no generic countermeasures for mitigating the
    effects of the problems
  • Possible solution AntiPatterns?

3
Background for AntiPatterns
  • AntiPattern is a literary form that describes a
    commonly occurring solution to a problem that
    generates decidedly negative consequences.
  • Design Patterns define an ideal solution to a
    problem, while the AntiPatterns describe two
    solutions
  • AntiPattern solution the unwanted, problematic,
    existing solution
  • refactored solution the good solution (target of
    the AntiPattern)
  • Purpose is to give the IT industry a common
    vocabulary and means to discuss and mitigate the
    common problems
  • Developed to complement the existing fundamental
    software patterns (GoF, Buschmann, Analysis,
    CORBA)
  • AntiPatterns have arisen from the discussion and
    proposals by patterns experts on the Internet (
    1996-)

4
AntiPattern Fundamentals (1/2)
  • Three groups of AntiPatterns
  • Software Development AntiPatterns
  • Software Architecture AntiPatterns
  • Software Project Management AntiPatterns
  • Root causes for AntiPatterns
  • haste
  • apathy
  • narrow-mindedness
  • sloth
  • avarice
  • ignorance
  • pride

5
AntiPattern Fundamentals (2/2)
  • Primal forces management of
  • functionality
  • performance
  • complexity
  • change
  • IT resources
  • technology transfer
  • Software Design-Level Model
  • Object level
  • Micro-architecture level
  • Framework level
  • Application level
  • System level
  • Enterprise level
  • Global/Industry level

6
AntiPattern Template
  • Possible templates Pseudo-AntiPattern,
    Mini-AntiPattern and Full AntiPattern template
  • Mini-AntiPattern template consists of
  • compact, unique and unambiguous name
  • description of the AntiPattern solution
  • description of the refactored solution
  • Full AntiPattern template includes also for
    instance
  • scale and scope of the AntiPattern
  • root causes practical description of the typical
    causes
  • misused primal forces
  • symptoms of the problem (negative) consequences
  • variation

7
Software Development APs
  • Concentrates on lowest layer of IT business
    programming, code management and (mis)use of DPs
  • Groundwork by Mike Aykroyd in 1996
  • Most famous software development APs include
  • Blob
  • Spaghetti Code
  • Cut-and-Paste Programming
  • LavaFlow
  • Golden Hammer
  • Mushroom Management

8
Mini AntiPattern Robot
  • I believe the power of the holy scripts (TM)!
  • Why would you do the two replacements with
    Notepad?? Let me code a script that does it for
    you.
  • No, that doesnt need to be reviewed or tested.
    I ran a script that modified all the 4527
    try-catch clauses recursively. It works, I
    guarantee that.
  • Problem A person who believes that almost
    anything can (and should) be automated. Often an
    administrator who wants to play in his own
    sandbox.
  • Root causes Sloth, Pride
  • Refactored solution interaction, mentoring,
    constant peer reviews, pair programming,
    management control

9
Mini AntiPattern Lonely Rider
  • Oh no we cannot do anything to the module before
    John comes back from his two-month holiday (in
    Bali)!
  • I am a guru. Id like to work alone, its just
    my way of doing things.
  • I dont know about it. Ask John, he has written
    the code for almost all of our key components.
  • Problem A seemingly irreplaceable person who
    intentionally or unintentionally becomes the
    single point of failure and bottleneck in the
    software project
  • Root causes Avarice, Pride
  • Refactored solution interaction between
    developers, constant peer reviews, competence
    transfer, mentoring help to less experienced and
    busy developers

10
Software Architecture APs
  • Software architecture focuses on
  • Partitioning the system into well-defined modules
  • Interfaces between the modules
  • Technology applied to implement the interface
    connections
  • Well-known architecture APs include
  • Stovepipe System
  • Cover Your Assets
  • Architecture by Implication
  • Design by Committee
  • Swiss Army Knife
  • Reinvent the Wheel

11
Project Management APs
  • Project management focuses on
  • Controlling the software process
  • Management of human and IT resources
  • Management of external interfaces (customers and
    partners)
  • Common project management APs are e.g.
  • Analysis Paralysis
  • Death by Planning
  • Corncob
  • Project Mismanagement
  • Fire Drill
  • Smoke and Mirrors

12
Mini AntiPattern Jekyll Hyde
  • Mr. Jekyll in private conversation, 801 AM
    (gentle voice) Yes, I think your idea is great,
    lets talk it over in the lunch. Its on me.
  • Mr. Hyde in project meeting with the subordinates
    and the big boss is listening, 8.03 AM (furious)
    What the.. Thats a poor idea. And why no one
    has done anything to think about this beforehand?
    I cant stand this kind of incompetence!
  • Problem A (typically opportunist) person whose
    behaviour is totally dependent on the audience.
    Jekyll transforms to and from Hyde in a
    nanosecond.
  • Root causes Ignorance, Pride
  • Refactored solution a good long talk in a proper
    and non-offending environment (pizza?) a
    transfer to other projects departments

13
Discussion
  • AntiPatterns define a well-known and publicly
    recognized way to identify and prevent the common
    mistakes and problems in software development
  • AntiPatterns describe commonly known and tested
    countermeasures to an AntiPattern solution in the
    form of a refactored solution
  • AntiPatterns are available for anyone (Internet)
  • Also non-software -related AntiPatterns exist
  • Anyone can write and propose new AntiPatterns
  • AntiPattern must be encountered at least in three
    different occasions (forms) before accepted
    officially
Write a Comment
User Comments (0)
About PowerShow.com