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
Structural Design Patterns
Behavioral Design Patterns
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
Structural Design Patterns
- Adapter Pattern
- Composite Pattern
- Proxy Pattern
- Flyweight Pattern
- Facade Pattern
- Bridge Pattern
- Decorator Pattern
Behavioral Design Patterns
- Template Method Pattern
- Mediator Pattern
- Chain of Responsibility Pattern
- Observer Pattern
- Strategy Pattern
- Command Pattern
- State Pattern
- Visitor Pattern
- Iterator Pattern
- Memento Pattern
The three basic approaches applied to software development methodology frameworks.