As part of the course on Software Engineering that I teach at UAX, we engaged in a research review and debate about how can agile methods and architecture coexist, and which one is better for particular cases.
To prepare the debate, we read a set of papers, most of them from IEEE Software, about software architectures and agile methods. From the list of papers that I preselected, the students decided to read the following:
We also read a IEEE Spectrum's paper about the Virtual Case File, a (in)famous example of software project that failed, partly because of the lack of flexibility that agile methods foster:
The debate was quite intense, and we finally ended up concluding that there is no silver bullet, sometimes it is better to use agile methods, sometimes it is not, and it is always good to know that there are different approaches to software development, and that new projects should be faced without prejudices. I also tried to highlight that software development is a social activity, and that code, documentation, etc, are all important, but it is even more important to be open to the rest of people, and to communicate with the rest of the team.
I am very happy with the results, everybody enjoyed the activity, and I am very glad that they all read so many papers in English (being most of them Spanish, and one French), with a critical look, and using them as arguments for the debate. We also "discovered" the IEEE Software magazine, and other sources of information, that are available to anyone through the institutional suscription of the university, and that contain very useful practical information for the software professionals that they will soon become.