SlideShare a Scribd company logo
1 of 9
Code Smells
Prasad Narasimhan – Technical Architect
System starts
 All the business & technical stakeholders
brainstorm a lot.
 They want to start somewhere rather than
getting into more of design paralysis.
 Core level classes gets created, Utility
classes, Exception classes…
System grows
 System grows based on the usage ,
features gets added either by extending
or changing current code.
 Structure is maintained, silos and
monolithic code gets created.
 With minimal documentation and fear of
touching core & utility its duplicated.
System expands
 Now more features are needed in short
time.
 No time to take stock of what is already
available how the design could be
extended.
 If it works don’t touch it syndrome.
 Some piece of code which lies dead , Silos
in method and class level.
 Duplicates at class level and variables
level
System explodes
 Now the business wants maximum use of
system , invites users through campaigns
and various launch pads.
 Application is perfectly scalable to optimum
level no issues. The Variables – scope, life
time.
 Collection handling – creation of collection
based on items, customer details which was
small now its rapidly increasing.
 Loop which process the collection becomes
bottleneck.
Explosion handled
 Giga bytes of processor, clustered system.
 Failover mechanism, Caching large
amount of data with latest caching
mechanism.
 Persist the data when failure happens.
 Predictive recovery approach.
Code Smells patterns
 Particular main functionality gets
enhanced without proper refactoring of
the base classes and dependent classes
 Class & methods violating SRP – Single
Responsibility principle.
 Open & Closed principle – Base class
should be open for extension and closed
for changes.
Some thoughts
 Refactoring when needed.
 Test Driven development.
 Inline Documentation for proper piece.
 SQALE based cost remediation and code
correction at periodic intervals.
 Code and design audit at periodic
intervals
Thanks

More Related Content

Viewers also liked

Copyright Review Workshop
Copyright Review WorkshopCopyright Review Workshop
Copyright Review WorkshopPaul Jacobson
 
Hannah cöch collage
Hannah cöch collageHannah cöch collage
Hannah cöch collagejuan paez
 
Become a software technical architect
Become a software technical architectBecome a software technical architect
Become a software technical architectPrasad Narasimhan
 
What gets into Software code after some time
What gets into Software code  after some timeWhat gets into Software code  after some time
What gets into Software code after some timePrasad Narasimhan
 
2014-04-16 Protection of Personal Information Act Readiness Workshop
2014-04-16 Protection of Personal Information Act Readiness Workshop2014-04-16 Protection of Personal Information Act Readiness Workshop
2014-04-16 Protection of Personal Information Act Readiness WorkshopPaul Jacobson
 
El Barco O Barco
El Barco  O BarcoEl Barco  O Barco
El Barco O BarcoAster
 
Html5 (looks ready for everything)
Html5 (looks ready for  everything)Html5 (looks ready for  everything)
Html5 (looks ready for everything)Prasad Narasimhan
 
모바일삼국지 20140701
모바일삼국지 20140701모바일삼국지 20140701
모바일삼국지 20140701Taboola
 
ARRIVEDERCI ROMA !!!!!
ARRIVEDERCI ROMA !!!!!ARRIVEDERCI ROMA !!!!!
ARRIVEDERCI ROMA !!!!!sokoban
 
omul care ne trebuie
omul care ne trebuieomul care ne trebuie
omul care ne trebuiesokoban
 
Muito Bem! ¡Muy Bien!
Muito Bem! ¡Muy Bien!Muito Bem! ¡Muy Bien!
Muito Bem! ¡Muy Bien!Aster
 
Social media: Legal and business challenges
Social media: Legal and business challengesSocial media: Legal and business challenges
Social media: Legal and business challengesPaul Jacobson
 
Curiozitati
CuriozitatiCuriozitati
Curiozitatisokoban
 
Popi becomes law briefing slides
Popi becomes law briefing slidesPopi becomes law briefing slides
Popi becomes law briefing slidesPaul Jacobson
 
Funny accidents
Funny accidentsFunny accidents
Funny accidentssokoban
 
Noul Paraclis Al Sfantului Nectarie
Noul Paraclis Al Sfantului NectarieNoul Paraclis Al Sfantului Nectarie
Noul Paraclis Al Sfantului Nectariesokoban
 

Viewers also liked (20)

romania
romaniaromania
romania
 
Copyright Review Workshop
Copyright Review WorkshopCopyright Review Workshop
Copyright Review Workshop
 
Hannah cöch collage
Hannah cöch collageHannah cöch collage
Hannah cöch collage
 
Become a software technical architect
Become a software technical architectBecome a software technical architect
Become a software technical architect
 
What gets into Software code after some time
What gets into Software code  after some timeWhat gets into Software code  after some time
What gets into Software code after some time
 
2014-04-16 Protection of Personal Information Act Readiness Workshop
2014-04-16 Protection of Personal Information Act Readiness Workshop2014-04-16 Protection of Personal Information Act Readiness Workshop
2014-04-16 Protection of Personal Information Act Readiness Workshop
 
El Barco O Barco
El Barco  O BarcoEl Barco  O Barco
El Barco O Barco
 
Html5 (looks ready for everything)
Html5 (looks ready for  everything)Html5 (looks ready for  everything)
Html5 (looks ready for everything)
 
모바일삼국지 20140701
모바일삼국지 20140701모바일삼국지 20140701
모바일삼국지 20140701
 
ARRIVEDERCI ROMA !!!!!
ARRIVEDERCI ROMA !!!!!ARRIVEDERCI ROMA !!!!!
ARRIVEDERCI ROMA !!!!!
 
omul care ne trebuie
omul care ne trebuieomul care ne trebuie
omul care ne trebuie
 
Muito Bem! ¡Muy Bien!
Muito Bem! ¡Muy Bien!Muito Bem! ¡Muy Bien!
Muito Bem! ¡Muy Bien!
 
Social media: Legal and business challenges
Social media: Legal and business challengesSocial media: Legal and business challenges
Social media: Legal and business challenges
 
Curiozitati
CuriozitatiCuriozitati
Curiozitati
 
Roma
RomaRoma
Roma
 
Popi becomes law briefing slides
Popi becomes law briefing slidesPopi becomes law briefing slides
Popi becomes law briefing slides
 
Funny accidents
Funny accidentsFunny accidents
Funny accidents
 
Internet of things
Internet of thingsInternet of things
Internet of things
 
Stars
StarsStars
Stars
 
Noul Paraclis Al Sfantului Nectarie
Noul Paraclis Al Sfantului NectarieNoul Paraclis Al Sfantului Nectarie
Noul Paraclis Al Sfantului Nectarie
 

Similar to Code maintainability

Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringSaqib Raza
 
Building Maintainable PHP Applications.pptx
Building Maintainable PHP Applications.pptxBuilding Maintainable PHP Applications.pptx
Building Maintainable PHP Applications.pptxdavorminchorov1
 
Architecting a Large Software Project - Lessons Learned
Architecting a Large Software Project - Lessons LearnedArchitecting a Large Software Project - Lessons Learned
Architecting a Large Software Project - Lessons LearnedJoão Pedro Martins
 
Tech challenges in a large scale agile project
Tech challenges in a large scale agile projectTech challenges in a large scale agile project
Tech challenges in a large scale agile projectHarald Soevik
 
Agile Development unleashed
Agile Development unleashedAgile Development unleashed
Agile Development unleashedlivgeni
 
Information systems development methodologies (autosaved)
Information systems development methodologies (autosaved)Information systems development methodologies (autosaved)
Information systems development methodologies (autosaved)Vaska Shefteroska
 
Workshop - The Little Pattern That Could.pdf
Workshop - The Little Pattern That Could.pdfWorkshop - The Little Pattern That Could.pdf
Workshop - The Little Pattern That Could.pdfTobiasGoeschel
 
Technical Webinar: Patterns for Integrating Your Salesforce App with Off-Plat...
Technical Webinar: Patterns for Integrating Your Salesforce App with Off-Plat...Technical Webinar: Patterns for Integrating Your Salesforce App with Off-Plat...
Technical Webinar: Patterns for Integrating Your Salesforce App with Off-Plat...CodeScience
 
Large scale agile development practices
Large scale agile development practicesLarge scale agile development practices
Large scale agile development practicesSkills Matter
 
Techcello at a glance
Techcello at a glanceTechcello at a glance
Techcello at a glancekanimozhin
 
Techcello at a glance
Techcello at a glanceTechcello at a glance
Techcello at a glanceTechcello
 
Software development process models
Software development process modelsSoftware development process models
Software development process modelsMuntha Ulfat
 
API-driven Legacy Migration: Results from Project Winterfell
API-driven Legacy Migration: Results from Project WinterfellAPI-driven Legacy Migration: Results from Project Winterfell
API-driven Legacy Migration: Results from Project WinterfellKeith McFarlane
 

Similar to Code maintainability (20)

Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
L12 GRASP
L12 GRASPL12 GRASP
L12 GRASP
 
Building Maintainable PHP Applications.pptx
Building Maintainable PHP Applications.pptxBuilding Maintainable PHP Applications.pptx
Building Maintainable PHP Applications.pptx
 
Architecting a Large Software Project - Lessons Learned
Architecting a Large Software Project - Lessons LearnedArchitecting a Large Software Project - Lessons Learned
Architecting a Large Software Project - Lessons Learned
 
Lect7
Lect7Lect7
Lect7
 
Lect7
Lect7Lect7
Lect7
 
Tech challenges in a large scale agile project
Tech challenges in a large scale agile projectTech challenges in a large scale agile project
Tech challenges in a large scale agile project
 
So You Bought Oracle Ecm
So You Bought Oracle EcmSo You Bought Oracle Ecm
So You Bought Oracle Ecm
 
Agile Development unleashed
Agile Development unleashedAgile Development unleashed
Agile Development unleashed
 
Information systems development methodologies (autosaved)
Information systems development methodologies (autosaved)Information systems development methodologies (autosaved)
Information systems development methodologies (autosaved)
 
Workshop - The Little Pattern That Could.pdf
Workshop - The Little Pattern That Could.pdfWorkshop - The Little Pattern That Could.pdf
Workshop - The Little Pattern That Could.pdf
 
Technical Webinar: Patterns for Integrating Your Salesforce App with Off-Plat...
Technical Webinar: Patterns for Integrating Your Salesforce App with Off-Plat...Technical Webinar: Patterns for Integrating Your Salesforce App with Off-Plat...
Technical Webinar: Patterns for Integrating Your Salesforce App with Off-Plat...
 
Large scale agile development practices
Large scale agile development practicesLarge scale agile development practices
Large scale agile development practices
 
Day1
Day1Day1
Day1
 
Techcello at a glance
Techcello at a glanceTechcello at a glance
Techcello at a glance
 
Software process model
Software process modelSoftware process model
Software process model
 
Techcello at a glance
Techcello at a glanceTechcello at a glance
Techcello at a glance
 
Software development process models
Software development process modelsSoftware development process models
Software development process models
 
software engineering
software engineering software engineering
software engineering
 
API-driven Legacy Migration: Results from Project Winterfell
API-driven Legacy Migration: Results from Project WinterfellAPI-driven Legacy Migration: Results from Project Winterfell
API-driven Legacy Migration: Results from Project Winterfell
 

More from Prasad Narasimhan

Technology needs to be disruptive
Technology needs to be disruptiveTechnology needs to be disruptive
Technology needs to be disruptivePrasad Narasimhan
 
Data visualization representation of Analytics data
Data visualization representation of Analytics  dataData visualization representation of Analytics  data
Data visualization representation of Analytics dataPrasad Narasimhan
 
Art of creating good software
Art of creating good softwareArt of creating good software
Art of creating good softwarePrasad Narasimhan
 
Internet of things & predictive analytics
Internet of things & predictive analyticsInternet of things & predictive analytics
Internet of things & predictive analyticsPrasad Narasimhan
 
Application of predictive analytics
Application of predictive analyticsApplication of predictive analytics
Application of predictive analyticsPrasad Narasimhan
 
Software engineering at the speed of technology
Software engineering at the speed of technologySoftware engineering at the speed of technology
Software engineering at the speed of technologyPrasad Narasimhan
 
Challenges in adapting predictive analytics
Challenges  in  adapting  predictive  analyticsChallenges  in  adapting  predictive  analytics
Challenges in adapting predictive analyticsPrasad Narasimhan
 
Predictive analytics in marketing
Predictive analytics in marketingPredictive analytics in marketing
Predictive analytics in marketingPrasad Narasimhan
 
Predictive analytics in financial service
Predictive analytics in financial servicePredictive analytics in financial service
Predictive analytics in financial servicePrasad Narasimhan
 
Predictive analytics in health insurance
Predictive analytics in health insurancePredictive analytics in health insurance
Predictive analytics in health insurancePrasad Narasimhan
 
360 degree view of architect
360 degree view  of architect360 degree view  of architect
360 degree view of architectPrasad Narasimhan
 
Information + insight = action
Information + insight = actionInformation + insight = action
Information + insight = actionPrasad Narasimhan
 
What is happening in Information Technology
What is happening in Information TechnologyWhat is happening in Information Technology
What is happening in Information TechnologyPrasad Narasimhan
 
Code how it matures in syste
Code how it matures in systeCode how it matures in syste
Code how it matures in systePrasad Narasimhan
 

More from Prasad Narasimhan (20)

Single Page Application
Single Page ApplicationSingle Page Application
Single Page Application
 
Analytics
AnalyticsAnalytics
Analytics
 
Technology needs to be disruptive
Technology needs to be disruptiveTechnology needs to be disruptive
Technology needs to be disruptive
 
Riseof technology
Riseof technologyRiseof technology
Riseof technology
 
Information as commodity
Information as commodityInformation as commodity
Information as commodity
 
Data visualization representation of Analytics data
Data visualization representation of Analytics  dataData visualization representation of Analytics  data
Data visualization representation of Analytics data
 
Art of creating good software
Art of creating good softwareArt of creating good software
Art of creating good software
 
Internet of things & predictive analytics
Internet of things & predictive analyticsInternet of things & predictive analytics
Internet of things & predictive analytics
 
Application of predictive analytics
Application of predictive analyticsApplication of predictive analytics
Application of predictive analytics
 
Software engineering at the speed of technology
Software engineering at the speed of technologySoftware engineering at the speed of technology
Software engineering at the speed of technology
 
Challenges in adapting predictive analytics
Challenges  in  adapting  predictive  analyticsChallenges  in  adapting  predictive  analytics
Challenges in adapting predictive analytics
 
Predictive analytics in marketing
Predictive analytics in marketingPredictive analytics in marketing
Predictive analytics in marketing
 
Predictive analytics in financial service
Predictive analytics in financial servicePredictive analytics in financial service
Predictive analytics in financial service
 
Predictive analytics in health insurance
Predictive analytics in health insurancePredictive analytics in health insurance
Predictive analytics in health insurance
 
3D printing
3D printing3D printing
3D printing
 
360 degree view of architect
360 degree view  of architect360 degree view  of architect
360 degree view of architect
 
Where business meet’s IT
Where business meet’s ITWhere business meet’s IT
Where business meet’s IT
 
Information + insight = action
Information + insight = actionInformation + insight = action
Information + insight = action
 
What is happening in Information Technology
What is happening in Information TechnologyWhat is happening in Information Technology
What is happening in Information Technology
 
Code how it matures in syste
Code how it matures in systeCode how it matures in syste
Code how it matures in syste
 

Recently uploaded

Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 

Recently uploaded (20)

Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 

Code maintainability

  • 1. Code Smells Prasad Narasimhan – Technical Architect
  • 2. System starts  All the business & technical stakeholders brainstorm a lot.  They want to start somewhere rather than getting into more of design paralysis.  Core level classes gets created, Utility classes, Exception classes…
  • 3. System grows  System grows based on the usage , features gets added either by extending or changing current code.  Structure is maintained, silos and monolithic code gets created.  With minimal documentation and fear of touching core & utility its duplicated.
  • 4. System expands  Now more features are needed in short time.  No time to take stock of what is already available how the design could be extended.  If it works don’t touch it syndrome.  Some piece of code which lies dead , Silos in method and class level.  Duplicates at class level and variables level
  • 5. System explodes  Now the business wants maximum use of system , invites users through campaigns and various launch pads.  Application is perfectly scalable to optimum level no issues. The Variables – scope, life time.  Collection handling – creation of collection based on items, customer details which was small now its rapidly increasing.  Loop which process the collection becomes bottleneck.
  • 6. Explosion handled  Giga bytes of processor, clustered system.  Failover mechanism, Caching large amount of data with latest caching mechanism.  Persist the data when failure happens.  Predictive recovery approach.
  • 7. Code Smells patterns  Particular main functionality gets enhanced without proper refactoring of the base classes and dependent classes  Class & methods violating SRP – Single Responsibility principle.  Open & Closed principle – Base class should be open for extension and closed for changes.
  • 8. Some thoughts  Refactoring when needed.  Test Driven development.  Inline Documentation for proper piece.  SQALE based cost remediation and code correction at periodic intervals.  Code and design audit at periodic intervals