There's some very interesting follow-up to a blog entry called If you’re an architect… on Edward Williams' blog and one of the questions that has just been posed is this.
Is defining the development process (agile, waterfall - XP/Scrum/DSDM/Lean etc) the responsibility of the technical architect or does it come under the enterprise architect / CIO / CTO's umbrella?
This may sound controversial, but I've met very few IT managers (project managers included) who understand that software doesn't have to be developed according to the waterfall model, and fewer still that have actively shaped projects to take advantage of those other approaches.
It's a really interesting question. As an architect on a software project, the overall development process is always something that *I* try to have some influence over. My reasons for this are (a) I've seen too many waterfall style projects fail and (b) you can use iterative and incremental approaches to help with many of the challenges you face as an architect. For example, rather than get freaked out by some complex requirements and head into analysis paralysis, why not structure the project in iterations and tackle those things first, perhaps by doing some lightweight architecture/design and writing some code that you can load test.
To be honest, I usually get involved in shaping the overall project because nobody else has considered it and the project is bumbling along in a fairly ad hoc, waterfall-ish fashion. I like to inject some structure into the way that software is built and the architectural drivers can really help to define what that structure should be. There are certainly some challenges to be overcome once you start getting involved in shaping the overall process though. These range from project managers that "just want a normal project plan" through to those that agree with your use of timeboxes but "still just want a normal project plan". These sorts of issues are relatively easy to overcome, but I do often find myself doing some just-in-time training about the different types of development process.
Should architects define the software development process? Who defines the software process on your projects?
Simon is an independent consultant specializing in software architecture, and the author of Software Architecture for Developers (a developer-friendly guide to software architecture, technical leadership and the balance with agility). He’s also the creator of the C4 software architecture model and the founder of Structurizr, which is a collection of open source and commercial tooling to help software teams visualise, document and explore their software architecture.