Taking a few "obvious" cases (eg, the team that will be developing is already formed, and all the professionals only dominate a single platform), what is the best time to make that decision? In college, I learned that it is best to do it at the end of the elaboration phase (ie when specification and analysis of requirements is complete), when any design constraints are already identified. But in practice I do not know if this would work - given the tendency to adopt agile methodologies over traditional ones . Still, it seems a mistake to say "Let's program in X" before even knowing the particular features of the application.
If there is no particular reason to choose between one technology and another, should you "hit the hammer" before it even starts? Or is there a more specific point in the project where this decision is most appropriate?
Note: For the question not to be too broad, I am looking for arguments of a technical nature, not market (eg availability of professionals with specific training for hiring, average salary of the same, etc. ).