Flashcards in POM L14 Deck (15):
What are root causes for Antipatterns (Most common mistakes in software
project management and development) ?
1. Insufficient communication with the client
2. Unfulfilled requirements
3. Insufficient testing
4. Cost overruns and schedule slips
Reason for these mistakes: “The 7
deadly sins” ?
#Haste: Solutions based on hasty
#Pride: Not invented here
#Ignorence : Failure to seek understanding
#Narrow-Mindedness: The refusal to use solutions
that are widely known
#Sloth: poor decisions based on easy answers
Wha is a pattern ?
A pattern has two parts: A
Problem and a Solution
What is an Antipatterns ?
#Antipatterns consists of a
problem and two solutions:
a) The Problematic Solution:
describes a commonly
occurring solution that
b) The Refactored Solution:
describes how the problematic
solution can be reengineered to
avoid these negative
consequences and lead to
What are 3 types of Antipatterns (Anti Pattern
• Focus on the viewpoint of the software developer
• Issues: Software refactoring,
• Focus on the viewpoint of the software architect
• Issues: Partitioning of subsystems and components, platform
• Focus on the viewpoint of the software project manager
• Issues: software project
Why using Antipatterns ?
#Patterns are good for problems which have no solution yet
#Patterns emphasize the use of proven good design
#Antipatterns are good for emphasizing the recognition of
mistakes in existing systems, software projects and
What is Incremental Reengineering (Refactoring) ?
#The process of incrementally changing the bad structure of a
system, project or organization into a better structure with the use
Explain Analysis Paralysis Antipattern (also Symptoms & Causes, refactored solution)!
• Goal to achieve perfection and completeness of the analysis phase
• Generation of very detailed models
• Assumption, that everything about a problem can be known a priori
# Sympthoms: Cost of analysis exceeds expectation without a predictable
#Causes :Management assumes a waterfall progression of phases.
#Refactores Solution: iterative development, vertical prototryping
Explain Plan-Driven Software Development !
#Linear, Phase-oriented software development, no itteration
#Goal: Minimize risk by upfront planning
#Analysis >>Design >> Implementation
#eg. Waterfall modell
Explain Functional Decomposition Antipattern !
# Every thing is a function
# Management of complexity, change management is difficult
# Symptoms: Code is hard to understand
# Causes : Designers trained with a functional decomposition method
####Refactored solution : Object oriented analysis
Explain Corncob Antipattern !
# Corncobs are difficult people
# Corncobs usually create additional stress in what may be an already overstressed environment especially in the software projects
#Reasons: Individual personality
#Root causes : Pride, Avarice, Ignorance,
# Corncobs focus much more on
politics than technology
#Refactored Solution :
a) Transfer the responsibility
b) Corrective interview with person:
c) Friendly outplacement
Explain Death By Planning !
# Many projects fail from either over-planning or underplanning.
Name and explain two types of plans by Death By Planning!
#Glass Case Plan: Gives the management a ‘comfortable
view’ of delivery, often before the project starts
- symptom: lack of an up-to-date project plan
- Consequence : cost overrun,
-Causes: Overambitious initial planning
#Detailitis Plan: Over-planning in projects, resulting in
delays, staff attrition, and project failure.
Effective delivery is assumed to be achieved by a high
degree of control via continuous planning
-Symptoms: A lot of time is spent on planning
-Causes : Overambitious continuous planning
###Refactored Solution :
. Estimate the tasks in terms of effort and elapsed time
• Evaluate captured against the project plan
Explain Mushroom Management Antipattern ( Pseudo-Analysis) !
#Requirements change frequently
#Bad understanding of the requirements leads to the poor design decisions
# Management policy isolates
the developers from the
system’s end users , Management assumes that
the requirements are stable
and well understood by
## Refactored solution:
- Introduce incremental and iterative development
- Include a user in the development process