SlideShare a Scribd company logo
LEARN ANTIPATTERNS
KARTHIKEYAN VK
@KARTHIK3030
WHY ANTIPATTERNS?
Common
defective
process
Industry
Vocabulary
Avoid Traps
Detailed
remedy
Define
refactoring
WHAT IS ANTIPATTERNS ?
• An anti-pattern is something that looks like a
good idea, but one backfires when applied.
• An Antipattern is a pattern that tells how we go
from a problem to a bad solution.
• Identifying bad practices can be as valuable as
identifying good practices.
DIFFERENT TYPES OF
ANTIPATTERN
Development Antipatterns Architecture Antipatterns
Project Management
Antipatterns
METHOD OF LEARNING
Actual Problem Common Solution Trap Effective Solution
DEVELOPMENT ANTIPATTERNS
DEVELOPMENT ANTIPATTERNS -
• Continuous Obsolescence
• Lava Flow
• Golden Hammer
• Walking through minefield
• Mushroom Management
CONTINUOUS OBSOLESCENCE
• Problem
• Support for particular version of
software is going to be withdrawn by a
vendor. Upgrade becomes mandatory
and urgent.
CONTINUOUS OBSOLESCENCE
• Counter Productive Solution
• Let us update our technology to next version
CONTINUOUS OBSOLESCENCE
• Trap
• Obsolescence means process of becoming
obsolete or outdated and no longer used, it
becomes continuous we just upgrade our
software.
• Wasting time on only upgrading the version of
software
• Version incompatibility occurs between
dependencies.
CONTINUOUS OBSOLESCENCE
• Effective solution
• Refactor/Rearchitect your application to
better architecture, so you can skip even the
upgrade of software version because your
system is robust.
• Proper abstraction will help in upgrading
easier, so abstract first before upgrading.
LAVA FLOW
• Problem
• MVP is approved, let us add some features to
the MVP and move it market.
LAVA FLOW
• Counter Productive Solution
• Add few features with the current
MVP and move it market to test the
waters with user environment,
without rearchitecting, because time
is money.
LAVA FLOW
• Trap
• Code will become like lava from volcano
with multiple if and else.
• More new features added on the brittle
MVP architecture.
• You keep adding small features to MVP,
by the time you know it becomes full
blown project.
LAVA FLOW
• Effective solution
• You need to build a architecture driven design
and replace your MVP application with a
project.
• Key is to think in terms of architecture driven
design from the start and should be ready to
ditch the MVP and move it to a project.
GOLDEN HAMMER
• Problem
• As an architect or developer, you learn a new
technology and you get excited by the
technology
GOLDEN HAMMER
• Counter Productive Solution
• Next problem that comes to you,
you start using the technology you
learnt and solve the problem.
GOLDEN HAMMER
• Trap
• You will be bending backwards, to fit your
solution into the problem.
• You will start seeing every problem as nail
and start using the learned or known solution
as Golden Hammer.
GOLDEN HAMMER
• Effective solution
• As a senior developer or an Architect, you
should always be skeptical about your choice
of solutions.
• Always ask yourself, Am I using your golden
hammer ?.
• Think of solutions/technology that exactly fits
your problem/challenge not your knowledge.
GOLDEN HAMMER
• Effective solution
• Always play Devils Advocate for your
choice.
• This does not mean you should be
insecure about your solution
WALKING THROUGH MINEFIELD
• Problem
• Follow Agile model in your project and deliver
project faster.
WALKING THROUGH MINEFIELD
• Counter Productive Solution
• Start implementing and release feature as fast
as possible.
• Reduce the time to market and acquire more
customer base.
WALKING THROUGH MINEFIELD
• Trap
• Build a brittle system that breaks every
day.
• Latest research tells us around 2-5 bugs
are being added for every line of code
added to the System.
• No proper test plan.
WALKING THROUGH MINEFIELD
• Trap
• Fix only symptoms, not the actual cause.
• Developers are not responsible for bugs,
testers are held responsible.
WALKING THROUGH MINEFIELD
• Effective solution
• Build a proper abstraction and architecture driven
design for scaling.
• Only, then implement feature faster, your
software build on strong base and enables
extension faster.
• Developer should feel ashamed when tester find a
bug in their code. Tester are only to validate
feature and do integration testing.
MUSHROOM MANAGEMENT
• Problem
• Don’t disturb developer, let them be productive.
• Overpowering manager wants to keep all his
control, because he is not tech savvy.
MUSHROOM MANAGEMENT
• Counter Productive Solution
• Hide them from stakeholders.
• Exclude them from all meetings
• Let requirements comes down from
multiple layers.
MUSHROOM MANAGEMENT
• Trap
• Keeping them in the dark, developers don’t know
what is happening with, what they are creating and
also what to create
• They grow like a mushroom in a dark room, and
managers manage them.
MUSHROOM MANAGEMENT
• Effective solution
• Let stakeholders talk to end-users,
let them be in the loop.
• If possible, make them travel to
onsite for 15 days at least and go to
actual place where the software is
used.
ARCHITECTURE ANTIPATTERNS
ARCHITECTURE ANTIPATTERNS
• Ad Hoc Integration
• Cover your assets
• Architecture by Implication
• Swiss Army Knife
• Reinvent the wheel
AD HOC INTEGRATION
• Problem
• Let us Integrate two different existing products
together, so they work seamless.
AD HOC INTEGRATION
• Counter Productive Solution
• Expose an interface and let the application talk to
each other in REST/TCP protocol.
• Integrate as fast as possible and move to
production and see how well, it is received in
market.
AD HOC INTEGRATION
• Trap
• No proper abstraction is Thought through.
• Hell goes loose because you cannot add features in
both the application because of brittle abstraction.
• This is like going back to Monolith to
Microservices.
AD HOC INTEGRATION
• Effective solution
• Take your time to build abstraction layer.
• Abstraction should be even outside the two
applications, like a Queue/Message
Mechanism based on project.
• Integration should be a new project, by itself.
COVER YOUR ASSETS
• Problem
• Document architecture of your application.
COVER YOUR ASSETS
• Counter Productive Solution
• Add every decisions in the document.
• Address all information in a single
view.
• Try to address all stakeholders in each
and every section.
COVER YOUR ASSETS
• Trap
• Document are unclear for communication with
stakeholders including developer.
• Too much information only makes the document
tough to maintain.
• Changes becomes hard because document is brittle
with unnecessary information relevant to present
architecture.
COVER YOUR ASSETS
• Effective solution
• Compare no more than 3 alternatives, to
record your decision process.
• Use Viewpoints to communicate to different
stakeholders.
• Find a document tool that helps to update
your document easily like Confluence
documentation or WIKI
ARCHITECTURE BY
IMPLICATION
• Problem
• From experience, architects understands
documentation process is burdensome.
• Understand the Cover your assets antipattern.
ARCHITECTURE BY
IMPLICATION
• Counter Productive Solution
• Architect solutions without
documentation.
• Follows architecture by implication and
discussion with developers
ARCHITECTURE BY
IMPLICATION
• Trap
• No proper thought process creates a brittle
software patterns.
• Scaling becomes a problems
• Missing the Process of putting your thoughts in a
document is more important than the actual
document.
• Discipline of playing a devils advocate for your own
choice of technology is missed.
ARCHITECTURE BY
IMPLICATION
• Effective solution
• Use Viewpoints to communicate to different
stakeholders.
• Find a document tool that helps to update
your document easily like Confluence
documentation or WIKI
SWISS ARMY KNIFE
• Problem
• Application should provide solutions to all
domain problems. E.g.:-Retail, Logistics etc
SWISS ARMY KNIFE
• Counter Productive Solution
• Build a single monolithic application
that solves all the problem.
• Put all your corresponding logic in a
single class file.
• Build all process in a single UI.
SWISS ARMY KNIFE
• Trap
• Violation of single responsibility principle.
• Violation of Interface segregation principle.
• Application becomes too complex for a change.
SWISS ARMY KNIFE
• Effective solution
• Think in terms of number lines you can put in
a class/method.
• How small is small in a module.
• Drive your solution based on event driven and
domain driven architecture.
REINVENT THE WHEEL
• Problem
• Members in the team with great developers and
architects, they are presented with a business
problem to solve.
REINVENT THE WHEEL
• Counter Productive Solution
• Start working on the problem and start
developing the solution.
• No R&D check to see whether the
solution is already solved in the market
and how it is solved.
REINVENT THE WHEEL
• Trap
• Always going for Build choice in Build Vs Buy
decisions
• Wasting solving the problems that may be already
solved.
• Burning midnight oil because the solution is built
ground up.
• Takes a long time to build a bug free solution.
REINVENT THE WHEEL
• Effective solution
• First research on the problem, whether it is
already solved
• Is there solution that is available in market.
• How much we can build and how much we can
buy ?
PROJECT MANAGEMENT
ANTIPATTERNS
PROJECT MANAGEMENT
ANTIPATTERNS
• Blowhard Jamboree
• Death by Planning
• Intellectual Violence
• The Feud
• Fire Drill
BLOWHARD JAMBOREE
• Problem
• Technology consultant are bought into the team
for consultancy for a particular technology or
domain challenge.
• Business stakeholders attends a new conference
or reads about new technology.
BLOWHARD JAMBOREE
• Counter Productive Solution
• Developers are bought into meeting
with the consultant and developers
need to explain their problem and
listen for solution.
• Developers answers the concerns of
stakeholder with respect to new
technology.
BLOWHARD JAMBOREE
• Trap
• Developers spend too much time answering the
concerns of managers and decision makers.
• Experts are misinformed; occasionally, they
represent biased viewpoints.
• Rarely is there any hands-on research and
experience backing up their conclusions.
BLOWHARD JAMBOREE
• Effective solution
• An in-house expert on each key technology is
an invaluable asset to every organization
• Give developers time to do POC and propose
solution in structured manners.
• Ask questions and incentivize innovative and
collaborative ideas.
INTELLECTUAL VIOLENCE
• Problem
• When someone who understands a theory,
technology, or buzzword uses his knowledge to
intimidate others in a meeting situation.
INTELLECTUAL VIOLENCE
• Counter Productive Solution
• Developers consult them as a final
step, if they cannot solve a problem.
• They put up with the ill-treatment
because they need them.
• Defensive culture
INTELLECTUAL VIOLENCE
• Trap
• Non-collaborative environment is created.
• Gangs formed.
• People are de-motivated when they want to learn
anything new. They feel they are good enough.
INTELLECTUAL VIOLENCE
• Effective solution
• Talk to the intimidator and tell him to become
a mentor rather than being antagonist
• Knowledge imbalance should be brought
down by proper training.
• Make sure intimidator does not feel insecure
about his position otherwise it will backfire.
THE FEUD
• Problem
• Conflicts between managers.
THE FEUD
• Counter Productive Solution
• Developers tend to take a calculated
risk when addressing concerns.
• Co-operation seems to be ambiguous
in presence and absence of the
manager.
• Emails are used extensively for every
communication.
THE FEUD
• Trap
• Waste of time.
• Unproductive environment.
• Hostile environment where co-operations between
teams are punished directly or indirectly.
THE FEUD
• Effective solution
• More office gatherings.
• Effective plan to tear down the wall by the
higher management.
• Facilitate new relationship formation.
• If nothing works, separate them.
FIRE DRILL
• Problem
• Project is started and not much of the decisions
are finalized.
FIRE DRILL
• Counter Productive Solution
• Management asks the developers to
wait.
FIRE DRILL
• Trap
• Waste of time.
• Compromises are willingly made in software quality
and testing.
• In a perverse way, the emergency situation makes
the job easier for some software developers, as
management will accept almost any software.
FIRE DRILL
• Effective solution
• Use internal and external models technique.
• Internal models will be almost concrete, so
start working on them until external models
are finalized.
• Start the project after a certain stage of initial
discussion and then demo to stakeholders so
they can think by looking rather than thinking
in paper.
SUMMARY
• Antipatterns helps to avoid the common
solution traps
• Three types of antipatterns
• Antipatterns improves your vocabulary.
• Think of antipatterns as checklist when
taking up known solutions and the
problem that comes with it.
REFERENCES
• https://wiki.c2.com/?AntiPattern
• https://sourcemaking.com/antipatterns

More Related Content

What's hot

Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
Ryan Riley
 
Keynote: A Roadmap for Domain-Specific Low-Code Platforms
Keynote: A Roadmap for Domain-Specific Low-Code PlatformsKeynote: A Roadmap for Domain-Specific Low-Code Platforms
Keynote: A Roadmap for Domain-Specific Low-Code Platforms
Obeo
 
Domain Driven Design (DDD)
Domain Driven Design (DDD)Domain Driven Design (DDD)
Domain Driven Design (DDD)
Tom Kocjan
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
Ürgo Ringo
 
Domain Driven Design 101
Domain Driven Design 101Domain Driven Design 101
Domain Driven Design 101
Richard Dingwall
 
Domain driven design
Domain driven designDomain driven design
Domain driven design
Mustafa Dağdelen
 
Domain Driven Design (Ultra) Distilled
Domain Driven Design (Ultra) DistilledDomain Driven Design (Ultra) Distilled
Domain Driven Design (Ultra) Distilled
Nicola Costantino
 
Domain Driven Design: Zero to Hero
Domain Driven Design: Zero to HeroDomain Driven Design: Zero to Hero
Domain Driven Design: Zero to Hero
Fabrício Rissetto
 
Event storming
Event storming Event storming
Event storming
AgileDenver
 
Modelling a complex domain with Domain-Driven Design
Modelling a complex domain with Domain-Driven DesignModelling a complex domain with Domain-Driven Design
Modelling a complex domain with Domain-Driven Design
Naeem Sarfraz
 
Clean architecture
Clean architectureClean architecture
Clean architecture
Travis Frisinger
 
Enterprise Software Architecture styles
Enterprise Software Architecture stylesEnterprise Software Architecture styles
Enterprise Software Architecture styles
Araf Karsh Hamid
 
Extending OutSystems with Javascript
Extending OutSystems with JavascriptExtending OutSystems with Javascript
Extending OutSystems with Javascript
RitaDias72
 
Clean architecture
Clean architectureClean architecture
Clean architecture
Lieven Doclo
 
Onion Architecture / Clean Architecture
Onion Architecture / Clean ArchitectureOnion Architecture / Clean Architecture
Onion Architecture / Clean Architecture
Attila Bertók
 
Domain Driven Design Demonstrated
Domain Driven Design Demonstrated Domain Driven Design Demonstrated
Domain Driven Design Demonstrated
Alan Christensen
 
Building Applications with a Graph Database
Building Applications with a Graph DatabaseBuilding Applications with a Graph Database
Building Applications with a Graph Database
Tobias Lindaaker
 
Clean architecture: Android
Clean architecture: AndroidClean architecture: Android
Clean architecture: Androidintive
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
Andriy Buday
 

What's hot (20)

Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Keynote: A Roadmap for Domain-Specific Low-Code Platforms
Keynote: A Roadmap for Domain-Specific Low-Code PlatformsKeynote: A Roadmap for Domain-Specific Low-Code Platforms
Keynote: A Roadmap for Domain-Specific Low-Code Platforms
 
Domain Driven Design (DDD)
Domain Driven Design (DDD)Domain Driven Design (DDD)
Domain Driven Design (DDD)
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Domain Driven Design 101
Domain Driven Design 101Domain Driven Design 101
Domain Driven Design 101
 
Domain driven design
Domain driven designDomain driven design
Domain driven design
 
Domain Driven Design (Ultra) Distilled
Domain Driven Design (Ultra) DistilledDomain Driven Design (Ultra) Distilled
Domain Driven Design (Ultra) Distilled
 
SOLID Principles
SOLID PrinciplesSOLID Principles
SOLID Principles
 
Domain Driven Design: Zero to Hero
Domain Driven Design: Zero to HeroDomain Driven Design: Zero to Hero
Domain Driven Design: Zero to Hero
 
Event storming
Event storming Event storming
Event storming
 
Modelling a complex domain with Domain-Driven Design
Modelling a complex domain with Domain-Driven DesignModelling a complex domain with Domain-Driven Design
Modelling a complex domain with Domain-Driven Design
 
Clean architecture
Clean architectureClean architecture
Clean architecture
 
Enterprise Software Architecture styles
Enterprise Software Architecture stylesEnterprise Software Architecture styles
Enterprise Software Architecture styles
 
Extending OutSystems with Javascript
Extending OutSystems with JavascriptExtending OutSystems with Javascript
Extending OutSystems with Javascript
 
Clean architecture
Clean architectureClean architecture
Clean architecture
 
Onion Architecture / Clean Architecture
Onion Architecture / Clean ArchitectureOnion Architecture / Clean Architecture
Onion Architecture / Clean Architecture
 
Domain Driven Design Demonstrated
Domain Driven Design Demonstrated Domain Driven Design Demonstrated
Domain Driven Design Demonstrated
 
Building Applications with a Graph Database
Building Applications with a Graph DatabaseBuilding Applications with a Graph Database
Building Applications with a Graph Database
 
Clean architecture: Android
Clean architecture: AndroidClean architecture: Android
Clean architecture: Android
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
 

Similar to Anti patterns

How Software Developers Destroy Business Value.pptx
How Software Developers Destroy Business Value.pptxHow Software Developers Destroy Business Value.pptx
How Software Developers Destroy Business Value.pptx
Aaron Stannard
 
Whats my MVP?
Whats my MVP?Whats my MVP?
Whats my MVP?
Ardita Karaj
 
Ten Advices for Architects
Ten Advices for ArchitectsTen Advices for Architects
Ten Advices for Architects
Eberhard Wolff
 
Customer Development Fast Protyping
Customer Development Fast ProtypingCustomer Development Fast Protyping
Customer Development Fast Protyping
Serdar Temiz
 
10 Hinweise für Architekten
10 Hinweise für Architekten10 Hinweise für Architekten
10 Hinweise für Architekten
adesso AG
 
Cleaning Code - Tools and Techniques for Large Legacy Projects
Cleaning Code - Tools and Techniques for Large Legacy ProjectsCleaning Code - Tools and Techniques for Large Legacy Projects
Cleaning Code - Tools and Techniques for Large Legacy Projects
Mike Long
 
Jakub Laskowski - Prototyping: a successful IT project recipe
Jakub Laskowski - Prototyping: a successful IT project recipeJakub Laskowski - Prototyping: a successful IT project recipe
Jakub Laskowski - Prototyping: a successful IT project recipeecommerce poland expo
 
Arch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesArch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesIgor Moochnick
 
ISTQB - Software development life cycle
ISTQB - Software development life cycleISTQB - Software development life cycle
ISTQB - Software development life cycle
HoangThiHien1
 
Fast prototypes and customer development for start ups
Fast prototypes and customer development for start upsFast prototypes and customer development for start ups
Fast prototypes and customer development for start ups
Serdar Temiz
 
TDD in Agile
TDD in AgileTDD in Agile
TDD in Agile
Atish Narlawar
 
Technical Excellence Doesn't Just Happen - AgileIndy 2016
Technical Excellence Doesn't Just Happen - AgileIndy 2016Technical Excellence Doesn't Just Happen - AgileIndy 2016
Technical Excellence Doesn't Just Happen - AgileIndy 2016
Allison Pollard
 
DevOps Year One
DevOps Year OneDevOps Year One
DevOps Year One
Magnus Hedemark
 
Adopting Agile
Adopting AgileAdopting Agile
Adopting Agile
Coverity
 
2-SE Process Models.pptx
2-SE Process Models.pptx2-SE Process Models.pptx
2-SE Process Models.pptx
MaryamMahjabeenYouni
 
50500113 spiral-model
50500113 spiral-model50500113 spiral-model
50500113 spiral-modelasidharath
 
Product is Hard - Marty Cagan
Product is Hard - Marty CaganProduct is Hard - Marty Cagan
Product is Hard - Marty Cagan
Anthony Marter
 
ExumaTech Dev Process
ExumaTech Dev ProcessExumaTech Dev Process
Thin Slicing the Technology Adoption Life Cycle
Thin Slicing the Technology Adoption Life CycleThin Slicing the Technology Adoption Life Cycle
Thin Slicing the Technology Adoption Life CycleKent Richmond
 
Couples Counseling for Product Development
Couples Counseling for Product DevelopmentCouples Counseling for Product Development
Couples Counseling for Product Development
Joe Stump
 

Similar to Anti patterns (20)

How Software Developers Destroy Business Value.pptx
How Software Developers Destroy Business Value.pptxHow Software Developers Destroy Business Value.pptx
How Software Developers Destroy Business Value.pptx
 
Whats my MVP?
Whats my MVP?Whats my MVP?
Whats my MVP?
 
Ten Advices for Architects
Ten Advices for ArchitectsTen Advices for Architects
Ten Advices for Architects
 
Customer Development Fast Protyping
Customer Development Fast ProtypingCustomer Development Fast Protyping
Customer Development Fast Protyping
 
10 Hinweise für Architekten
10 Hinweise für Architekten10 Hinweise für Architekten
10 Hinweise für Architekten
 
Cleaning Code - Tools and Techniques for Large Legacy Projects
Cleaning Code - Tools and Techniques for Large Legacy ProjectsCleaning Code - Tools and Techniques for Large Legacy Projects
Cleaning Code - Tools and Techniques for Large Legacy Projects
 
Jakub Laskowski - Prototyping: a successful IT project recipe
Jakub Laskowski - Prototyping: a successful IT project recipeJakub Laskowski - Prototyping: a successful IT project recipe
Jakub Laskowski - Prototyping: a successful IT project recipe
 
Arch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesArch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best Practices
 
ISTQB - Software development life cycle
ISTQB - Software development life cycleISTQB - Software development life cycle
ISTQB - Software development life cycle
 
Fast prototypes and customer development for start ups
Fast prototypes and customer development for start upsFast prototypes and customer development for start ups
Fast prototypes and customer development for start ups
 
TDD in Agile
TDD in AgileTDD in Agile
TDD in Agile
 
Technical Excellence Doesn't Just Happen - AgileIndy 2016
Technical Excellence Doesn't Just Happen - AgileIndy 2016Technical Excellence Doesn't Just Happen - AgileIndy 2016
Technical Excellence Doesn't Just Happen - AgileIndy 2016
 
DevOps Year One
DevOps Year OneDevOps Year One
DevOps Year One
 
Adopting Agile
Adopting AgileAdopting Agile
Adopting Agile
 
2-SE Process Models.pptx
2-SE Process Models.pptx2-SE Process Models.pptx
2-SE Process Models.pptx
 
50500113 spiral-model
50500113 spiral-model50500113 spiral-model
50500113 spiral-model
 
Product is Hard - Marty Cagan
Product is Hard - Marty CaganProduct is Hard - Marty Cagan
Product is Hard - Marty Cagan
 
ExumaTech Dev Process
ExumaTech Dev ProcessExumaTech Dev Process
ExumaTech Dev Process
 
Thin Slicing the Technology Adoption Life Cycle
Thin Slicing the Technology Adoption Life CycleThin Slicing the Technology Adoption Life Cycle
Thin Slicing the Technology Adoption Life Cycle
 
Couples Counseling for Product Development
Couples Counseling for Product DevelopmentCouples Counseling for Product Development
Couples Counseling for Product Development
 

More from Karthikeyan VK

GCD ChatGPT.pptx
GCD ChatGPT.pptxGCD ChatGPT.pptx
GCD ChatGPT.pptx
Karthikeyan VK
 
DataScience-101
DataScience-101DataScience-101
DataScience-101
Karthikeyan VK
 
How to become a Software Architect.pptx
How to become a Software Architect.pptxHow to become a Software Architect.pptx
How to become a Software Architect.pptx
Karthikeyan VK
 
Blockchain workshop 101
Blockchain workshop 101Blockchain workshop 101
Blockchain workshop 101
Karthikeyan VK
 
Event Streaming Architecture - Deep Dive
Event Streaming Architecture - Deep DiveEvent Streaming Architecture - Deep Dive
Event Streaming Architecture - Deep Dive
Karthikeyan VK
 
Tips & Tricks to build software architecture document
Tips & Tricks to build software architecture documentTips & Tricks to build software architecture document
Tips & Tricks to build software architecture document
Karthikeyan VK
 
How to double your productivity as a developer
How to double your productivity as a developerHow to double your productivity as a developer
How to double your productivity as a developer
Karthikeyan VK
 
How to be an expert in Debugging .Net Applications
How to be an expert in Debugging .Net ApplicationsHow to be an expert in Debugging .Net Applications
How to be an expert in Debugging .Net Applications
Karthikeyan VK
 
Cloud Design Patterns
Cloud Design PatternsCloud Design Patterns
Cloud Design Patterns
Karthikeyan VK
 
Pillars of great Azure Architecture
Pillars of great Azure ArchitecturePillars of great Azure Architecture
Pillars of great Azure Architecture
Karthikeyan VK
 
Monolithic to Microservices - Handson
Monolithic to Microservices - HandsonMonolithic to Microservices - Handson
Monolithic to Microservices - Handson
Karthikeyan VK
 
Chat bot LUIS
Chat bot LUISChat bot LUIS
Chat bot LUIS
Karthikeyan VK
 
Cloud design pattern using azure
Cloud design pattern using azureCloud design pattern using azure
Cloud design pattern using azure
Karthikeyan VK
 
Enterprise security kubernetes
Enterprise security kubernetesEnterprise security kubernetes
Enterprise security kubernetes
Karthikeyan VK
 
Save Azure Cost
Save Azure CostSave Azure Cost
Save Azure Cost
Karthikeyan VK
 
Learning graphql .Net
Learning graphql .NetLearning graphql .Net
Learning graphql .Net
Karthikeyan VK
 
Azure devspaces
Azure devspacesAzure devspaces
Azure devspaces
Karthikeyan VK
 
Azure Event Grid
Azure Event Grid Azure Event Grid
Azure Event Grid
Karthikeyan VK
 
Machine Learning Basics using Azure ML
Machine Learning Basics using Azure MLMachine Learning Basics using Azure ML
Machine Learning Basics using Azure ML
Karthikeyan VK
 
Convert monolithic .Net Applications to microservices With Principles
Convert monolithic .Net Applications to microservices With PrinciplesConvert monolithic .Net Applications to microservices With Principles
Convert monolithic .Net Applications to microservices With Principles
Karthikeyan VK
 

More from Karthikeyan VK (20)

GCD ChatGPT.pptx
GCD ChatGPT.pptxGCD ChatGPT.pptx
GCD ChatGPT.pptx
 
DataScience-101
DataScience-101DataScience-101
DataScience-101
 
How to become a Software Architect.pptx
How to become a Software Architect.pptxHow to become a Software Architect.pptx
How to become a Software Architect.pptx
 
Blockchain workshop 101
Blockchain workshop 101Blockchain workshop 101
Blockchain workshop 101
 
Event Streaming Architecture - Deep Dive
Event Streaming Architecture - Deep DiveEvent Streaming Architecture - Deep Dive
Event Streaming Architecture - Deep Dive
 
Tips & Tricks to build software architecture document
Tips & Tricks to build software architecture documentTips & Tricks to build software architecture document
Tips & Tricks to build software architecture document
 
How to double your productivity as a developer
How to double your productivity as a developerHow to double your productivity as a developer
How to double your productivity as a developer
 
How to be an expert in Debugging .Net Applications
How to be an expert in Debugging .Net ApplicationsHow to be an expert in Debugging .Net Applications
How to be an expert in Debugging .Net Applications
 
Cloud Design Patterns
Cloud Design PatternsCloud Design Patterns
Cloud Design Patterns
 
Pillars of great Azure Architecture
Pillars of great Azure ArchitecturePillars of great Azure Architecture
Pillars of great Azure Architecture
 
Monolithic to Microservices - Handson
Monolithic to Microservices - HandsonMonolithic to Microservices - Handson
Monolithic to Microservices - Handson
 
Chat bot LUIS
Chat bot LUISChat bot LUIS
Chat bot LUIS
 
Cloud design pattern using azure
Cloud design pattern using azureCloud design pattern using azure
Cloud design pattern using azure
 
Enterprise security kubernetes
Enterprise security kubernetesEnterprise security kubernetes
Enterprise security kubernetes
 
Save Azure Cost
Save Azure CostSave Azure Cost
Save Azure Cost
 
Learning graphql .Net
Learning graphql .NetLearning graphql .Net
Learning graphql .Net
 
Azure devspaces
Azure devspacesAzure devspaces
Azure devspaces
 
Azure Event Grid
Azure Event Grid Azure Event Grid
Azure Event Grid
 
Machine Learning Basics using Azure ML
Machine Learning Basics using Azure MLMachine Learning Basics using Azure ML
Machine Learning Basics using Azure ML
 
Convert monolithic .Net Applications to microservices With Principles
Convert monolithic .Net Applications to microservices With PrinciplesConvert monolithic .Net Applications to microservices With Principles
Convert monolithic .Net Applications to microservices With Principles
 

Recently uploaded

Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 

Recently uploaded (20)

Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 

Anti patterns

  • 3. WHAT IS ANTIPATTERNS ? • An anti-pattern is something that looks like a good idea, but one backfires when applied. • An Antipattern is a pattern that tells how we go from a problem to a bad solution. • Identifying bad practices can be as valuable as identifying good practices.
  • 4. DIFFERENT TYPES OF ANTIPATTERN Development Antipatterns Architecture Antipatterns Project Management Antipatterns
  • 5. METHOD OF LEARNING Actual Problem Common Solution Trap Effective Solution
  • 7. DEVELOPMENT ANTIPATTERNS - • Continuous Obsolescence • Lava Flow • Golden Hammer • Walking through minefield • Mushroom Management
  • 8. CONTINUOUS OBSOLESCENCE • Problem • Support for particular version of software is going to be withdrawn by a vendor. Upgrade becomes mandatory and urgent.
  • 9. CONTINUOUS OBSOLESCENCE • Counter Productive Solution • Let us update our technology to next version
  • 10. CONTINUOUS OBSOLESCENCE • Trap • Obsolescence means process of becoming obsolete or outdated and no longer used, it becomes continuous we just upgrade our software. • Wasting time on only upgrading the version of software • Version incompatibility occurs between dependencies.
  • 11. CONTINUOUS OBSOLESCENCE • Effective solution • Refactor/Rearchitect your application to better architecture, so you can skip even the upgrade of software version because your system is robust. • Proper abstraction will help in upgrading easier, so abstract first before upgrading.
  • 12. LAVA FLOW • Problem • MVP is approved, let us add some features to the MVP and move it market.
  • 13. LAVA FLOW • Counter Productive Solution • Add few features with the current MVP and move it market to test the waters with user environment, without rearchitecting, because time is money.
  • 14. LAVA FLOW • Trap • Code will become like lava from volcano with multiple if and else. • More new features added on the brittle MVP architecture. • You keep adding small features to MVP, by the time you know it becomes full blown project.
  • 15. LAVA FLOW • Effective solution • You need to build a architecture driven design and replace your MVP application with a project. • Key is to think in terms of architecture driven design from the start and should be ready to ditch the MVP and move it to a project.
  • 16. GOLDEN HAMMER • Problem • As an architect or developer, you learn a new technology and you get excited by the technology
  • 17. GOLDEN HAMMER • Counter Productive Solution • Next problem that comes to you, you start using the technology you learnt and solve the problem.
  • 18. GOLDEN HAMMER • Trap • You will be bending backwards, to fit your solution into the problem. • You will start seeing every problem as nail and start using the learned or known solution as Golden Hammer.
  • 19. GOLDEN HAMMER • Effective solution • As a senior developer or an Architect, you should always be skeptical about your choice of solutions. • Always ask yourself, Am I using your golden hammer ?. • Think of solutions/technology that exactly fits your problem/challenge not your knowledge.
  • 20. GOLDEN HAMMER • Effective solution • Always play Devils Advocate for your choice. • This does not mean you should be insecure about your solution
  • 21. WALKING THROUGH MINEFIELD • Problem • Follow Agile model in your project and deliver project faster.
  • 22. WALKING THROUGH MINEFIELD • Counter Productive Solution • Start implementing and release feature as fast as possible. • Reduce the time to market and acquire more customer base.
  • 23. WALKING THROUGH MINEFIELD • Trap • Build a brittle system that breaks every day. • Latest research tells us around 2-5 bugs are being added for every line of code added to the System. • No proper test plan.
  • 24. WALKING THROUGH MINEFIELD • Trap • Fix only symptoms, not the actual cause. • Developers are not responsible for bugs, testers are held responsible.
  • 25. WALKING THROUGH MINEFIELD • Effective solution • Build a proper abstraction and architecture driven design for scaling. • Only, then implement feature faster, your software build on strong base and enables extension faster. • Developer should feel ashamed when tester find a bug in their code. Tester are only to validate feature and do integration testing.
  • 26. MUSHROOM MANAGEMENT • Problem • Don’t disturb developer, let them be productive. • Overpowering manager wants to keep all his control, because he is not tech savvy.
  • 27. MUSHROOM MANAGEMENT • Counter Productive Solution • Hide them from stakeholders. • Exclude them from all meetings • Let requirements comes down from multiple layers.
  • 28. MUSHROOM MANAGEMENT • Trap • Keeping them in the dark, developers don’t know what is happening with, what they are creating and also what to create • They grow like a mushroom in a dark room, and managers manage them.
  • 29. MUSHROOM MANAGEMENT • Effective solution • Let stakeholders talk to end-users, let them be in the loop. • If possible, make them travel to onsite for 15 days at least and go to actual place where the software is used.
  • 31. ARCHITECTURE ANTIPATTERNS • Ad Hoc Integration • Cover your assets • Architecture by Implication • Swiss Army Knife • Reinvent the wheel
  • 32. AD HOC INTEGRATION • Problem • Let us Integrate two different existing products together, so they work seamless.
  • 33. AD HOC INTEGRATION • Counter Productive Solution • Expose an interface and let the application talk to each other in REST/TCP protocol. • Integrate as fast as possible and move to production and see how well, it is received in market.
  • 34. AD HOC INTEGRATION • Trap • No proper abstraction is Thought through. • Hell goes loose because you cannot add features in both the application because of brittle abstraction. • This is like going back to Monolith to Microservices.
  • 35. AD HOC INTEGRATION • Effective solution • Take your time to build abstraction layer. • Abstraction should be even outside the two applications, like a Queue/Message Mechanism based on project. • Integration should be a new project, by itself.
  • 36. COVER YOUR ASSETS • Problem • Document architecture of your application.
  • 37. COVER YOUR ASSETS • Counter Productive Solution • Add every decisions in the document. • Address all information in a single view. • Try to address all stakeholders in each and every section.
  • 38. COVER YOUR ASSETS • Trap • Document are unclear for communication with stakeholders including developer. • Too much information only makes the document tough to maintain. • Changes becomes hard because document is brittle with unnecessary information relevant to present architecture.
  • 39. COVER YOUR ASSETS • Effective solution • Compare no more than 3 alternatives, to record your decision process. • Use Viewpoints to communicate to different stakeholders. • Find a document tool that helps to update your document easily like Confluence documentation or WIKI
  • 40. ARCHITECTURE BY IMPLICATION • Problem • From experience, architects understands documentation process is burdensome. • Understand the Cover your assets antipattern.
  • 41. ARCHITECTURE BY IMPLICATION • Counter Productive Solution • Architect solutions without documentation. • Follows architecture by implication and discussion with developers
  • 42. ARCHITECTURE BY IMPLICATION • Trap • No proper thought process creates a brittle software patterns. • Scaling becomes a problems • Missing the Process of putting your thoughts in a document is more important than the actual document. • Discipline of playing a devils advocate for your own choice of technology is missed.
  • 43. ARCHITECTURE BY IMPLICATION • Effective solution • Use Viewpoints to communicate to different stakeholders. • Find a document tool that helps to update your document easily like Confluence documentation or WIKI
  • 44. SWISS ARMY KNIFE • Problem • Application should provide solutions to all domain problems. E.g.:-Retail, Logistics etc
  • 45. SWISS ARMY KNIFE • Counter Productive Solution • Build a single monolithic application that solves all the problem. • Put all your corresponding logic in a single class file. • Build all process in a single UI.
  • 46. SWISS ARMY KNIFE • Trap • Violation of single responsibility principle. • Violation of Interface segregation principle. • Application becomes too complex for a change.
  • 47. SWISS ARMY KNIFE • Effective solution • Think in terms of number lines you can put in a class/method. • How small is small in a module. • Drive your solution based on event driven and domain driven architecture.
  • 48. REINVENT THE WHEEL • Problem • Members in the team with great developers and architects, they are presented with a business problem to solve.
  • 49. REINVENT THE WHEEL • Counter Productive Solution • Start working on the problem and start developing the solution. • No R&D check to see whether the solution is already solved in the market and how it is solved.
  • 50. REINVENT THE WHEEL • Trap • Always going for Build choice in Build Vs Buy decisions • Wasting solving the problems that may be already solved. • Burning midnight oil because the solution is built ground up. • Takes a long time to build a bug free solution.
  • 51. REINVENT THE WHEEL • Effective solution • First research on the problem, whether it is already solved • Is there solution that is available in market. • How much we can build and how much we can buy ?
  • 53. PROJECT MANAGEMENT ANTIPATTERNS • Blowhard Jamboree • Death by Planning • Intellectual Violence • The Feud • Fire Drill
  • 54. BLOWHARD JAMBOREE • Problem • Technology consultant are bought into the team for consultancy for a particular technology or domain challenge. • Business stakeholders attends a new conference or reads about new technology.
  • 55. BLOWHARD JAMBOREE • Counter Productive Solution • Developers are bought into meeting with the consultant and developers need to explain their problem and listen for solution. • Developers answers the concerns of stakeholder with respect to new technology.
  • 56. BLOWHARD JAMBOREE • Trap • Developers spend too much time answering the concerns of managers and decision makers. • Experts are misinformed; occasionally, they represent biased viewpoints. • Rarely is there any hands-on research and experience backing up their conclusions.
  • 57. BLOWHARD JAMBOREE • Effective solution • An in-house expert on each key technology is an invaluable asset to every organization • Give developers time to do POC and propose solution in structured manners. • Ask questions and incentivize innovative and collaborative ideas.
  • 58. INTELLECTUAL VIOLENCE • Problem • When someone who understands a theory, technology, or buzzword uses his knowledge to intimidate others in a meeting situation.
  • 59. INTELLECTUAL VIOLENCE • Counter Productive Solution • Developers consult them as a final step, if they cannot solve a problem. • They put up with the ill-treatment because they need them. • Defensive culture
  • 60. INTELLECTUAL VIOLENCE • Trap • Non-collaborative environment is created. • Gangs formed. • People are de-motivated when they want to learn anything new. They feel they are good enough.
  • 61. INTELLECTUAL VIOLENCE • Effective solution • Talk to the intimidator and tell him to become a mentor rather than being antagonist • Knowledge imbalance should be brought down by proper training. • Make sure intimidator does not feel insecure about his position otherwise it will backfire.
  • 62. THE FEUD • Problem • Conflicts between managers.
  • 63. THE FEUD • Counter Productive Solution • Developers tend to take a calculated risk when addressing concerns. • Co-operation seems to be ambiguous in presence and absence of the manager. • Emails are used extensively for every communication.
  • 64. THE FEUD • Trap • Waste of time. • Unproductive environment. • Hostile environment where co-operations between teams are punished directly or indirectly.
  • 65. THE FEUD • Effective solution • More office gatherings. • Effective plan to tear down the wall by the higher management. • Facilitate new relationship formation. • If nothing works, separate them.
  • 66. FIRE DRILL • Problem • Project is started and not much of the decisions are finalized.
  • 67. FIRE DRILL • Counter Productive Solution • Management asks the developers to wait.
  • 68. FIRE DRILL • Trap • Waste of time. • Compromises are willingly made in software quality and testing. • In a perverse way, the emergency situation makes the job easier for some software developers, as management will accept almost any software.
  • 69. FIRE DRILL • Effective solution • Use internal and external models technique. • Internal models will be almost concrete, so start working on them until external models are finalized. • Start the project after a certain stage of initial discussion and then demo to stakeholders so they can think by looking rather than thinking in paper.
  • 70. SUMMARY • Antipatterns helps to avoid the common solution traps • Three types of antipatterns • Antipatterns improves your vocabulary. • Think of antipatterns as checklist when taking up known solutions and the problem that comes with it.