Nitin Agrawal
Contact -
  • Home
  • Interviews
    • Secret Receipe
    • InterviewFacts
    • Resume Thoughts
    • Daily Coding Problems
    • BigShyft
    • CompanyInterviews >
      • InvestmentBanks >
        • ECS
        • Bank Of America
        • WesternUnion
        • WellsFargo
      • ProductBasedCompanies >
        • CA Technologies
        • Model N India
        • Verizon Media
        • Oracle & GoJek
        • IVY Computec
        • Nvidia
        • ClearWaterAnalytics
        • ADP
        • ServiceNow
        • Pubmatic
        • Expedia
        • Amphora
        • CDK Global
        • CDK Global
        • Epic
        • Sincro-Pune
        • Whiz.AI
        • ChargePoint
      • ServiceBasedCompanies >
        • Altimetrik
        • ASG World Wide Pvt Ltd
        • Paraxel International & Pramati Technologies Pvt Ltd
        • MitraTech
        • Intelizest Coding Round
        • EPAM
    • Interviews Theory
  • Programming Languages
    • Java Script >
      • Tutorials
      • Code Snippets
    • Reactive Programming >
      • Code Snippets
    • R
    • DataStructures >
      • LeetCode Problems
      • AnagramsSet
    • Core Java >
      • Codility
      • Program Arguments OR VM arguments & Environment variables
      • Java Releases
      • Threading >
        • ThreadsOrder
        • ProducerConsumer
        • Finalizer
        • RaceCondition
        • Executors
        • Future Or CompletableFuture
      • Important Points
      • Immutability
      • Dictionary
      • URL Validator
    • Julia
    • Python >
      • Decorators
      • String Formatting
      • Generators_Threads
      • JustLikeThat
    • Go >
      • Tutorial
      • CodeSnippet
      • Go Routine_Channel
      • Suggestions
    • Methodologies & Design Patterns >
      • Design Principles
      • Design Patterns >
        • TemplatePattern
        • Adapter Design Pattern
        • Decorator
        • Proxy
        • Lazy Initialization
        • CombinatorPattern
        • RequestChaining
        • Singleton >
          • Singletons
  • Frameworks
    • Apache Velocity
    • Spring >
      • Spring Boot >
        • CustomProperties
        • ExceptionHandling
        • Issues
      • Quick View
    • Rest WebServices >
      • Interviews
      • Swagger
    • Cloudera BigData >
      • Ques_Ans
      • Hive
      • Apache Spark >
        • ApacheSpark Installation
        • SparkCode
        • Sample1
        • DataFrames
        • RDDs
        • SparkStreaming
        • SparkFiles
    • Integration >
      • Apache Camel
    • Testing Frameworks >
      • JUnit >
        • JUnit Runners
      • EasyMock
      • Mockito >
        • Page 2
      • TestNG
    • Blockchain >
      • Ethereum Smart Contract
      • Blockchain Java Example
    • Microservices >
      • Messaging Formats
      • Design Patterns
    • AWS >
      • Honeycode
    • Dockers >
      • GitBash
      • Issues
  • Databases
    • MySql
    • Oracle >
      • Interview1
      • SQL Queries
    • Elastic Search
  • Random issues
    • TOAD issue
    • Architect's suggestions
  • Your Views

Project Methodologies & Design Patterns

8/15/2014

0 Comments

 
Methodologies...Frameworks...Design Patterns...we hear these fancy terms in our day to day professional life.
I too have heard these terms million times in my career & believe me, till date I can't understand why we emphasis on these at the very start of the project. Though I understand to decide on the framework at the start itself but methodologies & design patterns are some kind of guidelines to do the work in proper way but I feel that no single methodology or design pattern fits for our requirements.
Now most projects are being executed in Agile way but they themselves don't know many times about how to manage the Agile process many times causing spikes in budget plans. If waterfall model is difficult so Agile also. Both models work for the same cause, there is difference in the way of looking the underlying process. Agile also works the same way at its molecular level. Agile breaks one single big waterfall cycle into many smaller ones which generally is called Sprint. In Agile, we are just making the feedback cycles shorter & doing lesser documentation else I don't think Agile is better or Waterfall is not, both are good methodologies till we follow these strictly & logically else both cause project failures.
Same for design patterns, why one needs to constrain himself in certain design pattern. For me, I would like to go for implementing the requirements rather thinking about the design pattern being followed first. I like to get a good & capable solution for the requirements first, then will see about the kind of deign pattern in that implementation. So I never suggest to think about the design pattern to be followed to implement a solution, first implement the solution in best possible way then see what design pattern was followed. As I understand, at the course or high level during the start of your project one can suggest to use particular design patterns depending on the requirements but during the implementation things change, so the design patterns being followed there, so I suggest don't think too much about the design patterns initially rather think to get the optimal & long lasting solution, as thats what every one needs finally. Else you might have observed architects trying to tweak the requirement to fit it in underlying design patterns.
Only Fools compare Agile & Waterfall.
Only educated illiterates plan to follow a design pattern in the start.

Below is some data, I took from various sources -
​
Creational Design Patterns


  1. Singleton Pattern
  2. Factory Pattern
  3. Abstract Factory Pattern
  4. Builder Pattern
  5. Prototype Pattern
 

Structural Design Patterns


  1. Adapter Pattern
  2. Composite Pattern
  3. Proxy Pattern
  4. Flyweight Pattern
  5. Facade Pattern
  6. Bridge Pattern
  7. Decorator Pattern
 

Behavioral Design Patterns


  1. Template Method Pattern
  2. Mediator Pattern
  3. Chain of Responsibility Pattern
  4. Observer Pattern
  5. Strategy Pattern
  6. Command Pattern
  7. State Pattern
  8. Visitor Pattern
  9. Iterator Pattern
  10. Memento Pattern


Picture
The three basic approaches applied to software development methodology frameworks.
Picture
0 Comments



Leave a Reply.

    Author

    Nitin Agrawal

Powered by Create your own unique website with customizable templates.