-> Client Choice/Preference
Step 1- Client's choice/alignment with technology platform
Step 2- Existing infrastructure client has in place to support any of the suggested technology platform.
Step 1- Implications on hardware and software requirements (like hosting platform cost, infrastructure cost etc)
Step 2- implications on resource requirements (availability of resources, training cost etc)
Step 3- Cost comparison of inhouse development vs outsourcing for each technology
-> Existing Dependancies and code base
Step 1- Is this an end to end project, re-write, take over or a migration?
Step 2- If not end to end, do you have any existing dependancies and code base
-> Platform maturity
Step 1- Find out whether the suggested platform can cover all requirements and future requirements.
Step 2- Can satisfy interfacing requirements? (eg. RoR is not mature for handling web services)
-> Available frameworks
Step 1- Any existing frameworks/open source tools are already available? (Eg: OSCommerce/PHP for E-Com).
Step 2 - If Step 1, what is the investment for building expertise in this existing framework to reduce TCO?
Step 3- Do you have any existing frameworks/reusable components to reduce TCO?
-> Complexity and size (Estimated using FP or something)
Step 1 - Estimated size of the project
Step 2- What is the cost comparison between platforms? (based on finding out time to execute for each platform based on total FP)
Step 3- Do you have any existing practices successfully applied earlier to execute the project in a technology platform?
-> Project model (Time and expense/Fixed bid etc)
Step 1 - If Fixed Bid, which platform is suitable for quickest development and deployment?
Step 2- Do you have any existing practices successfully applied earlier to execute the project in a technology platform?
-> Project Type (Desktop/web App/Services etc)
Step 1 - Feasibility analysis of candidate technology platforms for this project (eg. RoR is not suited for a Windows Service application)
Step 2- Eliminate technologies that are not feasible
-> Interfaces to deal with
Step 1 - Feasibility analysis of candidate technology platforms for interface support (eg. If you are consuming REST services, RoR has a weightage)
Step 2- Identify platform specific interface requirements.
-> Expected Scalability And Performance
Step 1 - Identify support for OLAP/OLTP scenarios in the project.
Step 2- Identify minimum response time requirements.
Step 3- Weightage based on POCs constructed under various technologies or existing data or previous experience.
-> Internal expertise availability
Step 1 - Weightage based on our internal expertise and resource availability
Step 2- Training costs incurred