POM L14 Flashcards
What are root causes for Antipatterns (Most common mistakes in software
project management and development) ?
- Insufficient communication with the client
- Unfulfilled requirements
- Insufficient testing
- Cost overruns and schedule slips
Reason for these mistakes: “The 7
deadly sins” ?
#Haste: Solutions based on hasty decisions #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 generates overwhelming negative consequences b) The Refactored Solution: describes how the problematic solution can be reengineered to avoid these negative consequences and lead to benefits again
What are 3 types of Antipatterns (Anti Pattern
Taxonomy) ?
Development Antipatterns
• Focus on the viewpoint of the software developer
• Issues: Software refactoring,
#Architecture Antipatterns
• 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
management,
Why using Antipatterns ?
Patterns are good for problems which have no solution yet
#Patterns emphasize the use of proven good design
principles
#Antipatterns are good for emphasizing the recognition of
mistakes in existing systems, software projects and
software processes
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 of antipatterns
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
end point
#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, Narrow-Mindedness # 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
. 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
developers.
## Refactored solution:
- Introduce incremental and iterative development
- Include a user in the development process
What is Pseudo-Analysis
Analysis that takes place without end-user participation.