Since back in 2001 when I wrote my first program in C, I thought programming language choice was what determined whether a software project succeeded. Many projects later, it was apparent there was a lot more to it than that. Projects stalled and became incredibly difficult after a certain size, no matter the programming language. So I enrolled in an MSc. in Software Engineering at Heriot-Watt Dubai. I got accepted, flew over there, and got started late 2018.


I’m almost done now, and I got my answers. Programming language choice is at most 20% of what determines a Software Engineering project’s success. 80% is understanding the stakeholder’s needs, good design, project management, and collaboration between the stakeholders and the Software Engineering team. [1] The programming language and other platform choices like database, type of application (web-based, mobile-app e.t.c) and operating system it will run on are fruits of the requirements-analysis and design phases.

But the platform does matter. Some forms of application for example dictate the programming language that will be used, but for web-applications for example, there’s flexibility. The whole Software Engineering states all need to work for the project to work, and the wrong platform choice can cause a project to fail. [2] Making a research-based choice, and success stories of teams that have made similar software is a good place to start.


Bottom line though, Software Engineering, like all Engineering, is about solving problems for people. Making their lives better, happier, and more fun. Programming Languages, just like hammers, screwdrivers, cranes, bulldozers and concrete are tools, a means to this end.


[1] Principles behind the Agile Manifesto
[2] The 18 Mistakes That Kill Startups