How to choose a Framework

There are so many frameworks to pick from when starting on a project. And what do you get when you search on which framework to use? Half the people say that framework A is bad and B is good, the other half say that framework A is good and B is bad! How do you decide which one to use?

Picking a framework isn’t easy, and the way you do it is going to depend on several different factors. What is your deadline? Is there a somewhat decent chance you’ll have to expand on this later? Does it need to integrate with other systems? How familiar are you with the concepts around each framework?

These are all valid questions, but let’s try to break them down one by one.

Timeline

Once, again things fall back to the Timeline Dilemma. How much time do you have for this project? If you’ve got a tight deadline, you probably want to stick with your familiar framework and language, or whatever your organization currently uses. There are two many risks with trying to learn a new framework. If you have time, and you’re not satisfied with your current framework, you may want to explore another one.

Scope

Why are you working on this project? Is it for work or is it a fun personal project? If it’s a work project, chances are you’ll need to stick with your current framework. If its a personal project, you could probably take a look at an unfamiliar framework.

Learning Resources

How popular is the framework you’re using, and how many learning resources are available? Depending on the complexity of your project, you may need thorough documentation. Also, take into account the previous experience of yourself and anyone who you might be working with, and how apt they are to picking up new frameworks.

Concepts

Narrow down a few frameworks and look at how they approach problems. Depending on your experience level and preferences, do you agree with how they approach organization? Are you able to understand the concepts and plan out your project? Some frameworks have a steep learning curve and have a large array of software design concepts. This is good, but sometimes it can be over the top depending on your project, or it may just not align well with your project. If the framework doesn’t align with your project and starts to get in the way of your work, your velocity is going to tank.

Work Project?

If it’s a work project, you probably need to integrate your solution with other existing code. In that case, you probably want to stay with existing frameworks to make sure other people on your team can also work on it. If you’re working on a totally new area, you may be able to pick through other solutions. Check with other people you may be working with and see if they’re familiar with anything in particular that could help or if they have any preferences.

Personal Project?

Personal projects tend to have more flexibility associated with them, and will allow you to grow your knowledge and expertise. This is really up to you. If you’re newer to software development, learning new frameworks can be a strength to help you be more flexible and knowledgeable with future jobs, but you also don’t want to know only a little about a bunch of languages and frameworks. Try to learn a few frameworks well, and then learn the concepts around other frameworks to help you be more flexible in the future.

What else?

Choosing a framework isn’t easy. If there is something you’d like me to go more into, leave a comment below. Also, feel free to subscribe to my newsletter where you’ll hear when I make new content.