A couple days ago Olaf Lewitz compared the work of a real Architect (the guy responsible for actual buildings) with the work of an so called Architect in a software development project. He concludes with

this role description, as sketchy as it is, fits even less into my view of software development than I had thought.

I strongly disagree. The tasks Olaf describes are exactly the tasks the architects do in a healthy software development project (at least in my opinion):

I currently work on a team of 8. 8 architects. We make important decisions on a daily basis. We talk to the client (the product owner) to understand the requirements. We write programs and build scripts which are the equivalent of highly detailed plans of architects. We carefully tune all things which the customer will see. Most notably the GUI, but also performance, stability, maintainability. We plan when the software gets build (right after every change to the plans and again at 1o'clock in the morning) and control that it is build as intended. It's build by jenkins and his team: maven, javac, buckminster, junit and cmd.

There is no human construction worker involved. That is the part of the metaphor that falls apart. All the building happens by software and each developer is an architect. Some of them might make the big decisions, while other have a smaller area for which they are responsible.

By the way Olaf is write when he qutes architects

“when the workers begin to think, things start going wrong”

Maven does that from time to time. Each and every time it causes problems.