The issue of the responsibilities of the agile architect versus the software engineer goes towards deep issues with how software is best developed. Having architects easily brings a connotation of a document centric approach where producing documents is more important than producing working code to the benefit of the customer. However, it is also obvious that there can be no such thing as a complex software system without some measure of architecture. Some people say that having lead developers and not architects is the solution.
Bill Gates, the chief software architect at Microsoft, delivers keynote speech to UK advertiser by iabuk, on Flickr
Follow link for Create Commons licensing information.
A lead developer is a very senior and experienced software engineer who creates the architecture by doing design spikes and documenting them for emulation by the other engineers only if they actually work. (A colleague was once heavily criticized for taking this approach.) It could be that the difference between a lead developer and an architect is not that big. Try searching for both terms and you will find lots of job ads for architect/lead developer. So, lets leave behind the discussion of if there should be architects or not and if there should be architecture first of code first.
If there are roles that are overlapping or if there are roles where the opposite (underlap?) what is the true agilist solution? Is the solution to make the roles more clear as Tang et al. concludes? I would say that it is not the solution. The solution is to require that the required artifacts hold the required quality as a sprint-end criteria. This should in turn generate appropriate tasks which can be tracked in the usual manner. I do not believe that there is any room for people who care more about their role descriptions than about getting the job done in an agile team.