What Does an Architect Do in an Agile Shop? An Agile Architect Explains
adtmag.com
adtmag.com
Perhaps my biggest advantage is that, while I do spend some time coding, when I think about our software I am not constrained by the fear that I will have to implement my own ideas. It may seem crass, but as someone who has worked long years in the trenches I know that there is a subconscious tendency to discount ideas that may have huge long-term benefits if it means a lot of work in the short term.
Hate to admit it, but it's true. It's something you fight against.
I haven't worked on a project with more than 4 people for ages, but I don't think I would mind this.
Often it's reasonable to incur some technical debt with the short term solution, and then switch to the long term solution later on.
Delaying work gets you to market faster, costs less, and means you understand the problem better for less effort.
Obviously, if it's not a feasible roadmap to go with option a first and migrate to option be later, it's the techie's job to make this abundantly clear to the pm / business.
If architecture is one person's job, it means it's suddenly not anybody else's job. Software architecture is a pervasive concern, so everybody should be thinking about it. I think that's much more likely if anybody can notice an architectural issue and is encouraged to take the lead on sorting things out.
You are simply not a well-rounded programmer if you can't architect an application / piece of functionality to do whatever it needs to do.
Designating someone to be the architect just causes strife / encourages 'normal developers' to shut up about architecture because there is no credit to be made.
The problem with 'appointing' a formal architect is as the parent said: the architecture becomes the sole responsibility of the architect.
There is plenty of room for a mediator without having to call him the architect.
1. Design.
2. Supporting the implementation effort of the design.
3. Governance, i.e. making sure that what was designed is what is delivered.
Of course there are many other tasks that a software architect in particular has to carry out, but in my day job I never stray too far from the three fundamentals above.
Sure, they write code and get things done while we talk about how awesome our Ruby code is, but hey, All the cool kids use ruby[1].
-- Send from my iPad