Getting a right software at right time is key challenges for every system architects and growing CTO’s .There are few simple steps i followed which always helped me to identify the right software alternatives , naming few react vs angular, redis vs memcached, java vs .net , elastic-search vs solar, flutter vs react native , aws vs gcp vs azure etc, on premise databases vs cloud database, mysql vs pgsql, self managed vs fully managed database etc
Steps :
1. very important , do you need new software in your current phase of development , focus more on core development first , it’s fancy to explore new software but most of time new softwares are not required.
2. If you are sure you need it , form a small squad , start can be done with single member, but If you get more member to support , it’s always a good idea to involve them , generally software engineers are keen to be part of such initiatives.
3. Gather as much information you can from internet, official websites and ur contacts , you can consider reading research papers, blogs, video interviews , implementation by others organisations and their experiences etc.
4. Categorised those details in benefit vs expense , expense could be money , time , lost opportunities.
5. If you are sure its going to benefit you , identify the multiple alternatives
6. consider outsourced vs build as a first vehicle , its always a good idea if software is not impacting your core , outsourced it.
7. Considering all views , If you had finalised its part of your core product and you wanted to build at ur end , divide the squad team , and ask them to gather information about alternatives independently . Ask them to focus their findings based on easy of implementation, community support ,your expertise, future roadmap, existing customer base , if its open source product consider no of forks in public repository etc.
8. If time permits get the POC done from squad teams on each alternatives , highly recommended .
9. Post POC , do pros and cons analysis for each options by seating in conference room , spending around 4–5 hours non stop , it can go beyond depend on software complexity and features you are looking for.
10. In meeting You need to narrow down one alternatives whose pros are more than cons , thats the software you are looking for.
As always I encourage people to come forward and share their experience so people can save time and do better whenever they will be in same situation