Over a week ago, a friend of my asked me to review their proposal to the project they wanted to participate. They had some three options, and they couldn’t decide which one is the best to propose to their potential a new client. I received the document, and we had some short discussion about project, company and client. When I started revving this deck, I was reading it with great pleasure because it was a typical technical document, unfortunately only a technical document…
Depending on the environment where you are working, making a technical decision is hard because you need to consider many different things. For instance, when I make a technical decision, I mainly need to consider project requirement/ company/client / multiple teams etc.. So below I decided to share with you some example questions I asked myself when I need to decide on technology or some key project library. Not every question can be suitable for you but choose those that you feel fit to your current situation.
My knowledge & project:
- Will this framework/technology allows us to fulfil business requirements in a reasonable time and money.
- Do we really need it? Are we able to solve the problem using currently used libraries/technologies?
- How often this library/technology will be used? Only once or more often?
- Do I know this library/technology?
- Do I know anyone who knows this library/technology?
- Are there any other similar libraries/technologies that can be used instead?
- How long will take to learn this new library/technology?
- Do we have time to learn this new library/technology?
Library / technology:
- Is this library/technology popular?
- What is an opinion about other people about library/technology?
- Is this library an open source?
- Is it paid?
- Is the license acceptable?
- What kind of support is available?
- If open source then when was the last commit? How many open issues exist? How often are merges accepted?
- Are there any books describing this technology?
- Are there any course available on the internet describing this library/technology?
- Do I have a person on a team who knows this library/technology?
- Do other architects or teams accept it?
- What is the team’s opinion about library/technology?
- Is the team capable of learning new things? 😉
- Will team like this framework/technology?
- Do I have a person who can introduce this library/framework into the projects and make some internal knowledge sharing? Depending on teams size specific amount of leaders is required.
- Do I know that company want to invest in this technology? If yes I can count on trainings.
- Do we have other projects where we think about using this library/technology?
- Does client use this library/technology?
- Do I have anyone on a client side who can share some thoughts regarding this library/technology?
- Does client have some preferences how to solve specific business requirements?
- Will client accept chosen library/technology?
- Does client need to accept chosen library/technology? How hard will it be?