Architects Need a Pragmatic Software Development Process
javacodegeeks.com
javacodegeeks.com
And laughable.
What architects need to do, is write lots of production code, so they recognize that none of those things is easily achievable, if even possible.
I've been an "architect" since 2001 and the thing that slaps me in the face again and again is that most architects I encounter can't code, or haven't bothered to for years.
First, the word architect is just a fancy word for design. And yet most architects don't know the difference between a layer and a tier. The best way to get your head around those concepts is to write code using separation of concerns, and deploying it. Yourself.
Next, process. Seriously? Process was solved in the 80's. The agile movement brings nothing new here. There's a basic process that starts way before you write code -
Envision (your idea)
Plan (how)
Build (write the code - you can use SCRUM et al here if that's your bag)
Stabilise (bug fix - if your dev methodology permits then this merges with build, but an architect/project manager/program manager should still identify milestones for release readiness)
Deploy
Operate
Companies like Thoughtworks (whom I admire for their technical ability) will tell you to screw any process, and that the software will evolve itself. This is bad, because it will result in an app that's never finished.
So as an architect remember to begin with the end in mind. There's no point in starting if you don't know how to know that you've finished.
If process is new to you, check out version 3.1 of Microsoft's Solution Framework. Both the team and process models are good, but neither are gospel.
Stay VERY VERY far away from frameworks like TOGAF. They're a prime example of how to kill a project through process. The Zachman Framework is only good as a documentation guide, but offers little that the Microsoft Solutions Framework doesn't cover. The Unified Process, or whatever that crazy process is called that came out of the UML world is just as bloated and useless.
In closing, if you want to be a good architect, learn to code better than anyone else you work with. Be that guy that's done it all and has the war stories to prove a point, like why server push won't work on an ADSL network.
And don't call yourself an architect. You design software. That's kind of it.
I think you pretty much hit the nail on the head there :)
The amount of other architects I have to deal with from big well known organisations over the last few years is scary. My team are the only guys I have met who get outside of Word, Project and Excel and actually put pen to paper so to speak.
Avoid ALL process frameworks entirely though, including MSF which is a rotten turd. The only process I've seen that works is:
backlog (arc/business) -> design/review (arch) -> build (arch/dev) -> test (arch/test) -> deploy (arch/operations).
Note the total involvement of architecture teams.
Anyone new to process should similarly understand and (ideally) have used all the other usual suspects, from RUP to Waterfall. The premise being that you can't really argue against something if you've not experienced it for yourself.
We've settled finally on a hybrid Kanban approach. It's simple, everyone understands it, there are no power trips, it just works.
backlog -> arch -> dev -> test -> deployed
There is no agile ceremony or SCRUM-wankery (pigs, chicken shit) - we binned all that and just did work.
The irony of this is that I think all software engineers should carry these traits. Having software architects just stuffs this role into a handful of people instead of spreading it throughout the organization.
I would say that it's pointless ego stroking, but I know a lot of actual architects, and they'll be the first to tell you that it isn't exactly a high-prestige title.
In terms of actual architecture, it used to be a professional title that implied someone highly qualified to design buildings, able to take on fiduciary responsibilites just as well as any other professional. But the profession is in such a sorry state right now. Architects have a bad rep, and rightfully so. Definitely doesn't have that kind of prestige anymore that was present in the first half of the 20th century.
The new meaning of Architect: a little more pay (like gouranga said), and a lot more liability.