Andrés, thank you for taking the time to talk with me. Let’s start with an introduction. Where do you live and what is your occupation?
I’m a professor in computer science at the National University of Central Buenos Aires (UNICEN) in Argentina. I’m also an Independent Researcher at the National Scientific and Technical Research Council (CONICET), which is similar to the National Science Foundation in the US. For the last fifteen years, my area of research has been related to software architecture.
What was the purpose of your most recent visit to CMU?
I was a visiting scholar for the Spring 2020 semester. I co-taught the Architectures of Software Systems course with Matt Bass, and participated in David Garlan’s software architecture research group, ABLE.
What motivated your visit?
I wanted to spend my sabbatical from UNICEN rethinking how I teach software architectures. Not only in terms of a course for undergraduates at UNICEN, but teaching software architecture to professionals, to people who have been out of university and in the job for a couple of years. I wanted to look at how a practitioner could apply the concepts in a more professionally oriented view of architecture. And to incorporate into my course some practical experiences from projects I’ve worked on through my consultation work.
Why did you select the MSE?
From 2007 to 2010, I was a member of the technical staff at the Software Engineering Institute (SEI) working on the software architecture initiative. While at the SEI I developed connections to the greater architecture world, and specifically to the community within CMU.
Because I wanted to divide my sabbatical between teaching and research, the first thing I did was to contact David Garlan. I thought that if David was still teaching in the MSE, working with him would be a good way for me to achieve both.
David pointed out that Matt Bass was now teaching the Architectures for Software Systems course. I knew Matt from my time at the SEI, but had a closer relationship with his father Len. I reached out to Len who put me in contact with Matt.
During our discussions about co-teaching the course, Matt told me that he wanted to restructure the contents of the course. So we started to look at how to restructure the course in different ways, as well as how to reorient the course and try a different approach to teaching. And then this year the program curriculum was also restructured, so that led to further ideas of how the course could be restructured and refined to fit within the new structure. With the move to minis, we thought of the course as a semester long course in two parts.
How will you apply what you learned during your time as a visiting scholar?
The next time I teach software architecture — whether it's at the university or for developers who are at a company and would like to improve their career path, or maybe change positions, or explore a different approach to architecture — I will add new material, and maybe change the sequencing of topics.
One of the things I observed through my interactions with the students in the MSE programs, is that they respond well to real-world examples. They are interested in the content, of course, but are eager to know about the real experience of applying the concepts that we teach. Given that most of the students are practicing architects, or practicing developers, they also have real-world experiences that they bring to the classroom.
What did you enjoy about your time at CMU?
The opportunity to talk to lots of different people from many different areas of research. It’s been a great way to amplify my network beyond software architecture. CMU has the characteristic that you can reach out and talk about many different things. It’s something I really like about the environment. I liked being able to stop by someone’s office to talk, or go to a meeting and have that face-to-face interaction.
What advantages are there to studying abroad for a masters degree?
For students in South America it is an opportunity to become a global citizen. An opportunity to keep your own culture, but to grow in your perspective, to gain a wider perspective of software development, software architecture.
Of course there is always the option to try to remain in the US after graduation. But I think there are more individuals who will want to return to South America; it’s more of a cultural thing. The experience of studying at CMU helps you to become a global citizen, and gives you a global perspective of IT. You could be based in a large South American city and have connections all over the world.
Studying at CMU amplifies your connections and it puts you in contact with other development experiences, other cultures. Which I think is very valuable. As you can tell, I am a big fan of CMU! I think, if you have a chance to go, you should take it.
I saw that the MSE alumni are still very connected to the program. That there are many ways to remain connected to the community, to the program, to stay up-to-date with developments.
I hope to continue to be connected, one way or another, with the MSE and CMU.
What advice would you give to a student in Argentina who wants to study in the US?
You should have some proficiency in English. It will help you to communicate with your peers and other members of the program.
Don’t be put off by the cost. The university system in many countries in South America is very different than it is in the US. Students in Argentina are not used to the idea of paying for education. And the cost of the program and the exchange rate could feel prohibitive.
One solution would be to get a company or government sponsor for the program. Maybe only half of the tuition is covered, but at the end of the program you have a job, a way to apply your new experiences. After the program your career will grow quickly. So the money may seem like a concern at the beginning, but you will recoup your investment fairly quickly. And if you can get a sponsor it will be that much easier.
I cannot speak for all of South America, but students from Argentina shouldn't worry too much about their technical background. From my experience, a student with a university background will have enough knowledge to enter the MSE program. While the programs are about technical subjects, it's also about working with people. Working as a team is more important in some cases than how strong your technical background is. Of course you have to have a strong background, but that is not the only thing the admissions committee looks for.
Quality work experience is also important. It’s not enough to have been in the workforce for two years; you need to have strong technical experience to get the most of the program. To have your own real-world experiences to draw upon, to start building a reflective practice.
Why would you recommend the MSE?
If you are looking to improve only your technical abilities, the MSE is not the best option for you. It will not turn you into a super programmer. In addition to technical content, the MSE programs focus on leadership, management, team work, exploring different ways of articulating your work to align with business objectives, developing a reflective practice.
When you come out of the MSE programs, you are more likely to be in a position of leadership, and be someone with a global view of how development projects work.