on leave today on account of a festival and thought of penning down my thoughts on something I have been thinking about a lot. Just other day, a young millennial asked me on why should a framework be used as its something existing and limiting the creativity. While I do understand that many of us would like to work on something from scratch, having a framework has its own advantages. In this blog, I share few of my thoughts below:
- Consistency and Standardization: When the product or team is small, perhaps manually consistency can be ensured by lot of effort from people involved. However once the product is enhanced further, is being widely used, the team size grows and different people get involved. Thus it becomes very difficult to ensure consistency. Customers and users would like the solution to be consistent, to behave in same way even if they use different parts of the product or across products. Having a framework ensures consistency and brings in standardization.
- Speed : Once a framework is in place, adding a new piece of functionality takes lesser time and can be released to market in shorter spans as compared to developing everything from scratch.
- Cost of Development : Since the new piece of functionality can be delivered faster, it automatically brings down the cost of development.
- Productivity Gain: Since the developer can deliver the functionality faster using frameworks, it also increases his productivity.
- Agility: If any change needs to be made across the solution, it can be done in the framework and all applications benefit from this change. No need for each of the application to adopt the change separately. Thus reducing the time to make a change consistently across all applications.
- Code Reuse : Using a framework ensures re-usability of the code.
For sure, there are some cons as well:
- At times, when a new feature is needed in the framework, one needs to wait until the framework is enhanced. This can sometimes slow down the development and it seems that creating something from scratch could have been faster.
- With frameworks, the users learn the framework and may feel that they haven't mastered the language yet.
- For small projects, setting up a framework can take more time than developing the small project one-selves.
Frameworks or no frameworks, choose based on the size of your project and the direction you want to move forward to. Why direction? In case a project is small now, but has the potential of becoming a product and to be reused across clients with enhancements in future, one may like to go for frameworks instead. Alternately, if it is a very small one time project with very less scope of enhancements , one may chose no frameworks instead.
Thats all for now. As always, awaiting your feedback.