11
When a project is designed (i.e. a need is identified, and it is decided to develop a computerized solution for it) one of the first things the customer asks: on which platform should the software be developed? In what programming language? As we know, there is no single answer, but it is difficult to explain this to those who are laymen on the subject. And we’re often charged for a definition before the project even starts.
Apart from some "obvious" cases (e.g., the team you are going to develop is already formed, and all professionals only master a single platform), what is the best time to make this decision? In college, I learned that the ideal is to do it at the end of drafting phase (i.e. when the specification and review of requirements is completed) when any design restrictions will already be identified. But in practice I don’t know if that would work - in view of tendency to adopt agile methodologies to the detriment of traditional ones. Still, it seems to me a mistake to say "let’s program in X" before even knowing the particular characteristics of the application.
If there is no particular reason to choose between one technology and another, should one "hammer" it before it all begins? Or is there a more specific point in the project where that decision is more appropriate?
Note: For the question not to get too wide, I’m looking for arguments of a technical nature, and not market (e.g.: availability of professionals with specific training for hiring, average salary, etc).
But you is answering the question! : ) It is this kind of questioning that I need, because (in my particular case) all I have is a very general view of what the system is going to be, and the client [in potential] already wants to go out choosing the platform. Establish parameters to guide the choice, and mainly communicate these parameters, this is the X of the question! (and reiterating: market characteristics count yes, and a lot, I only left out of the scope of the issue so that it is not too wide)
– mgibsonbr
@mgibsonbr It is that I did not go directly to the title of the question :) I know this situation you are in, it is difficult to control the anxiety (or meddling) of the client. Let me know if you want me to extend the answer with other considerations.
– Andre Calil