The broad aim of our research is to improve the software developer’s productivity and developer experience, in order to better deal with software development complexity. We use Evidence-Based, Empirical Software Engineering, and User Experience evaluation techniques to identify the strengths and shortcomings of languages, tools, and approaches. We use these quantitative and qualitative assessments not only in the evaluation of Software Engineering claims but also as an objective input to help to devise improvements to fix the identified shortcomings. We are particularly interested in improving the understandability of Requirements Engineering and Domain-Specific Languages (and of specifications built with those languages), to empower developers and other stakeholders to more effectively read and write software specifications. More recently, we have also been working as a member of the COST Action on Multi-Paradigm Modeling for Cyber-Physical Systems.