Do architects define the software development process?

Somebody has to!

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.

Software development processes

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?

About the author

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.

You can find Simon on Twitter at @simonbrown ... see simonbrown.je for information about his speaking schedule, videos from past conferences and software architecture training.



Re: Do architects define the software development process?

I believe that the best thing to do is to follow a "per project" approach.What I mean is that a project can "tell" what approach you must follow.In some projects waterfall works just fine,in others scrum may be the best solution...

Re: Do architects define the software development process?

I agree; different processes suit different types of projects. But who decides on a per project basis?

Re: Do architects define the software development process?

Simon - very nice... I like your point about the fact that usually others haven't [fully] considered all the factors...so it falls on the architects to pick up the slack. In my mind that makes the architects invaluable - the conduit, if you will, that lets the right hand talk to the left one. As a side note, I think it's not any one process that fails but rather the communication - or lack thereof - that causes the failure. In the reply on my blog I said that there should be some sort of direction from the EA/CIO/CTO umbrella but, in the end, it still falls on the guy architecting the system to finalize the definition of the process. Many thanks for the mention and the link. E.W.

Re: Do architects define the software development process?

I think architects have a part to play in this but input must also come from other stakeholders in the delivery process. You have to have everyone on board or you waste time cutting data in different ways to give people information in a form they're happy with. My experience is that over time a team becomes proficient in executing a particular process and that changing it on a project by project basis could be counter productive.

Re: Do architects define the software development process?

I'm curious about your statement that it's relatively easy to overcome the push from management for "a normal project plan". I personally have struggled with this and I know others have too. How do you go about doing this?

Re: Do architects define the software development process?

Usually, clearly stating the benefits of taking an iterative approach is enough. This varies between projects, but for example: allows us to tackle the risky integration with X first, allows us to prove that our design will work, early visibility of progress, early feedback from testing, etc. For me, getting the risky stuff out of the way first gives software projects a massive boost and stops those situations where you find a huge problem in the "last week of development".

Re: Do architects define the software development process?

I tend to find that outlining the benefits such as tackling risk first only works to get pseudo-acceptance.

"Great idea, we'll put that stuff first on the project plan!"

Many people just have a hard time letting go of the idea that the design and schedule must be mapped out in detail before starting.

"Otherwise, how do you know if you're on schedule?"

"It's OK, we can still be agile because we'll have a change management process that lets us modify the design and plan as we go along!"

But they still want to spend enormous amounts of time creating detailed designs and plans up front, in spite of limited information, because they can't let go and "just make it up as we go along".

Re: Do architects define the software development process?

Great article! I work for a large multi-national and we (the software architects) don't get any say in the development process. It is driven by our CTO, who loves PRINCE 2 and waterfall!

Re: Do architects define the software development process?

Simon - what major companies send their employees on your architecture course? It's about time I join one of them (as they actually take professional development seriously). Thank you

Re: Do architects define the software development process?

I have to admit that I've been surprised at the companies that have sent (or perhaps, allowed) their staff to come along to my course. They include some very well-known high street brands through to smaller organisations with their own IT teams. I've even done in-house training for consulting companies. So not all "major" by any means ... some companies seem to have specific training allowances for the year while other people have needed to persuade their management to send them. I don't really have an answer for you I'm afraid although I do know that you're not alone. :-/

Re: Do architects define the software development process?

architects do not define the process. As an experienced person they can try to recommend a process. Though since architects (should) have great influence anyway so I guess it likely that they actually make a difference :) It is more important ,by the way, that architects accomodate the project's/company's processes - Agile architecture requires different measures from a waterfallish one etc.

Re: Do architects define the software development process?

An interesting question would be this - how many people work for a company that *has* a defined software development process? I mean, an actual process rather than a vague assumption that software will be built by getting requirements and writing some code.

I suspect it's a fairly low number, which leads me back to my original question. Somebody has to do it. :-)

Re: Do architects define the software development process?

I have gone with the most of articles about software architecture. I love doing programming . But these days i am more focused and concerned on the software architecture and designs before we start coding. I am still confused with the precise design process to be followed.So no i am thinking to be software architect.I will really appreciated your other efforts that can help me . Thanks

Add a comment Send a TrackBack