Explain how you determine which technologies or programming languages to use when starting a new software project.