Does a software architect have a role in agile, esp. Scrum? [closed]
Asked Answered
P

15

23

I'm reading the book "The Software Architect's Profession" by Marc and Laura Sewell (Amazon link) and it got me wondering whether a software architect is a part of the old non-agile BDUF approach.

Is there a place for software architects in an agile approach? I'm especially interested in Scrum.

BTW I currently am the Unix Application Architect for a major company.

cheers,

Rob

Portemonnaie answered 7/10, 2008 at 9:36 Comment(0)
M
11

Sure.

Remember - agile isn't a 'bring me a rock' approach. There are still requirements, still a design and still a need for a solid architecture.

When you are building a product or product line and employing Scrum or some other agile approach to managing your project, one of the key ideas is developing a short iteration cycle, prioritizing the backlog of tasks to accomplish, determining what is going to be in iteration A, B, C, etc. There is where an architect can really be valuable. Having someone with a clear idea of how X, Y and Z all will fit together can make your Scrum iterations that much more productive.

Mciver answered 7/10, 2008 at 9:52 Comment(4)
"There are no titles on teams. Teams self-organize to turn the requirements and technology into product functionality. This type of state-less, ego-less, development team is flexible to address any word that arises. Scrum avoids people who refuse to code because they are systems architects, or designers. ... No titles, no exceptions." - Agile Software Development with Scrum - Ken SchwaberRiplex
It should be pointed out, all software development contains a design. Whether the design was foreordained by some 90's model non-coding software architect role, emerged from a guided set of best practices, or is whatever the resultant state of a bunch of monkeys slinging code for a month happens to be, there is a design. Most software endeavors benefit from having experienced engineers on the team which can help guide the architecture, but having a specific Architect role works against the overall goals of agile principles in general.Riplex
@DerekGreer Which goals from the agile manifesto does the architect role work against? Just curious. I am a firm believer that, with willing participants, the self organizing groups/pairs works well and can really help. But it has been my experience that having individuals with the ability to architect a system - and then engage in writing at least a part of that system - is valuable. I think the challenge can be that having people who can sling code - maybe very well - isn't necessarily the same thing as having people who can envision larger systems. Thanks for you comments Derek.Mciver
The Agile Manifesto statement proper doesn't speak to specifics, but I would say this relates to both Individuals and interactions over processes and tools as well as Responding to change over following a plan. The Twelve Principles speak more directly to this. As far as architecture is concerned, don't confuse the advocation of flat teams with the lack of need for skilled engineers to be part of the team. The team still needs members skilled at design. They just don't need to be in a fixed dictatory position above other members.Riplex
W
50

My role as architect in Scrum includes the following.

  1. Technical spikes -- proofs of concept -- how will we do that. ("It would be simpler if you'd simply using the SMTP library directly, it already wraps the existing SMTP libraries; writing your own wrapper around our wrapper doesn't help much. We can add the method you want.")

  2. Coordination among the developers to fit the intended architecture. ("Ummm... why are you using your own properties file?"

  3. Working with users to prioritize the backlog appropriately. ("These three are related, if we do one, we get the other two at almost zero extra cost.")

  4. Working with managers to cost the backlog. (No, a project manager can't do this; they don't have the technical depth. No, the programmers can't do this, they don't have the overview.)

  5. Articulating why the package names are that way, and why the data model has those features.

  6. Finding the things we're missing and reprioritizing the backlog on technical grounds ("We're going to need this additional sprint to integrate [X], upgrade [Y] and replace [Z] or we'll never get those sprints done.")

Whorehouse answered 7/10, 2008 at 10:2 Comment(3)
+1 on S. Lott's answer. The architect's role is important, but an agile approach begs for the architect to come down from the ivory tower and get his/her hands dirty with the team. This can be hard, as ivory towers too often lead to disconnectedness with that place where the rubber hits the road.Libelee
Technical spike is actual development work. Real code. Real unit tests. I'm not sure how much less ivory tower it gets than that.Whorehouse
"No, the programmers can't do this, they don't have the overview." - do you mean assigning story points? The programmers should absolutely be involved in that.Ky
M
11

Sure.

Remember - agile isn't a 'bring me a rock' approach. There are still requirements, still a design and still a need for a solid architecture.

When you are building a product or product line and employing Scrum or some other agile approach to managing your project, one of the key ideas is developing a short iteration cycle, prioritizing the backlog of tasks to accomplish, determining what is going to be in iteration A, B, C, etc. There is where an architect can really be valuable. Having someone with a clear idea of how X, Y and Z all will fit together can make your Scrum iterations that much more productive.

Mciver answered 7/10, 2008 at 9:52 Comment(4)
"There are no titles on teams. Teams self-organize to turn the requirements and technology into product functionality. This type of state-less, ego-less, development team is flexible to address any word that arises. Scrum avoids people who refuse to code because they are systems architects, or designers. ... No titles, no exceptions." - Agile Software Development with Scrum - Ken SchwaberRiplex
It should be pointed out, all software development contains a design. Whether the design was foreordained by some 90's model non-coding software architect role, emerged from a guided set of best practices, or is whatever the resultant state of a bunch of monkeys slinging code for a month happens to be, there is a design. Most software endeavors benefit from having experienced engineers on the team which can help guide the architecture, but having a specific Architect role works against the overall goals of agile principles in general.Riplex
@DerekGreer Which goals from the agile manifesto does the architect role work against? Just curious. I am a firm believer that, with willing participants, the self organizing groups/pairs works well and can really help. But it has been my experience that having individuals with the ability to architect a system - and then engage in writing at least a part of that system - is valuable. I think the challenge can be that having people who can sling code - maybe very well - isn't necessarily the same thing as having people who can envision larger systems. Thanks for you comments Derek.Mciver
The Agile Manifesto statement proper doesn't speak to specifics, but I would say this relates to both Individuals and interactions over processes and tools as well as Responding to change over following a plan. The Twelve Principles speak more directly to this. As far as architecture is concerned, don't confuse the advocation of flat teams with the lack of need for skilled engineers to be part of the team. The team still needs members skilled at design. They just don't need to be in a fixed dictatory position above other members.Riplex
A
7

Agile development does not means anarchist development, it still need to be coordonate in order to stay maintanable over time.

But... Maybe the biggest difference between waterfall methodologis and agile methodologies, is that where you'll find a software achitect PERSON in the waterfall, you'll probably software achitect SKILL in agile developpments. I mean, as people are working more tidely toeghether, there is a high chance that skills become over time more shared accros the hole team, which is good.

Of course the software architect "leader" will be the one that keep the big picture in place and ensure that all the building blocks are consistent, but he won't be the only one to refer over the time, as his knowledge will be teach to the others.

Ascension answered 7/10, 2008 at 9:55 Comment(1)
+1 for "agile development does not mean anarchist development"Zionism
P
6

Absolutely yes, especially on medium to large projects. An architect provides technical direction by having a bird's eye view of the project and is responsible for assessing and mitigating technical risk. Developers tend to have a narrower focus and are less exposed to high level concerns.

Paranymph answered 7/10, 2008 at 9:50 Comment(0)
M
4

Totally.

The development/project process that you have mentioned are for building the things that the architect as designed.

So the often used analogy, the architect designs and plans the - city, the roads, the buildings.

The developers build the city, the roads, the buildings.

The developers can use what ever project managment system they need to get the building up, cars on the road and the city functioning.

Just as building architects are on hand to oversee the building with the engineers, so too should the software architect be on hand to oversee the development process.

Both roles Architect and Developer are related - but can follow different process to achive their own work programme.

Macario answered 7/10, 2008 at 9:49 Comment(0)
R
4

Absolutely - an architect is desired and required in a scrum team. Perhaps you'll not hear that from scrum/agile evangelists, trainers etc. but any experienced product owner will tell you that. An architect's role in scrum is very important.

Redmond answered 1/2, 2012 at 18:41 Comment(0)
U
2

I would say that there certainly is. Even though the focus in agile is on developers being free to deign their own code there is still a need for an overall program design at a higher level than an individual developer would be working.

Undeniable answered 7/10, 2008 at 9:41 Comment(0)
P
2

However... Agile is best for small projects, and specialized Architects normally are more useful in large projects.

The way I think with would work well, is if the Architect lays down the over all road-map and defines the necessary modules along with team leaders in a Scrum fashion. However then the Team leaders and their Scrum teams do the the actual development.

Kind of a two-staged Scrum.

Propend answered 7/10, 2008 at 10:0 Comment(3)
"Agile is best for small projects..." Do you have any evidence to support this claim?Zionism
Agile was born because Japanese developers foumd that a small team that worked in an "agile" manner were more productive than the larger waterfall teams, so by definition true agile is a phenomenom observed in small teams. But of course since then the snake-oil sellers have bottled anything as agile, when in reality agile was the emergent behavior of small teams, nothing elsePropend
Agile is indeed best for small teams, so the approach followed for large projects is to have lots of small teams. Here, architecture is vital as otherwise nobody is co-ordinating.Estancia
W
1

I would think that this is more a skills issue than an approach issue. So yes he may have a role even if he has that title.

Warmblooded answered 7/10, 2008 at 9:39 Comment(0)
B
1

Even in an Agile methodology, which may not have a strict hierarchy, programmers are not going to be equal. You will have seasoned campaigners, beginners, those who know the codebase and the problem domain backwards and combinations of the above.

I think that although there may be not "formal" architecture on a truly agile project, there are always architectural concerns that need to be addressed and it is generally the more experienced team members that will have the knowledge to address some of these things.

And also keep in mind that the internal project method may be separate from the pay-grade - so a title may largely be ignored "on the job" so to speak.

Bonspiel answered 7/10, 2008 at 10:4 Comment(0)
M
1

We've been practising Scrum successfully for 1 year and what we've experienced is that there are two things that have to be balanced: -System Architecture is an important "counterweight" in a purely feature driven development environment. Strategic and mid-term planning on technical level has to be done explicitely as Product Owners focus on the next features they want to be implemented (which is of course ok for their part) -On the other hand being truly agile means that -System Architects should not sit in ivory towers (as mentioned in several previous posts) and design things that work in theory only -Knowledge should be distributed so that every team has sufficient architectural skills

Our solution was the following (we are working in a multi-team environment): We created a virtual team lead by the Lead Architect (who is not part of a Scrum team). Each team decides for each issue that has to be discussed which members want to take part in the discussion. The team makes a common decision. If additional work is necessary this is either done via a new user story or if it is small outside of Scrum. The team members who comitted themselves to the decision are responsible to communicate the decision and control its execution within their teams.

Meagher answered 24/10, 2008 at 7:39 Comment(0)
I
0

Absolutely. No reason the architecture has to be done all up front anyway.

Ideally answered 7/10, 2008 at 15:46 Comment(0)
G
0

Yes very much so

‘Architect’ was a term software stole from the construction industry with the intentions to describe someone who oversaw the project as a whole. An architect in the construction industry is someone who consults Structural Engineers on the appearance and ‘human interface’ of the project. A closer parallel can be drawn between the construction “architect” and the “UX designer” of a software project. The term that I believe more closely describes what a Software Architect does, is Systems Engineer.'

So what is the role of software architecture in agile development? To understand this, it is important to understand the principles of agile software development. These principles can be found in the Manifesto for Agile Software Development here http://agilemanifesto.org

  • Individuals and interactions over processes and tools

  • Working software over comprehensive documentation

  • Customer collaboration over contract negotiation

  • Responding to change over following a plan

More information here: http://carlospliego.com/2016/10/08/agileSoftwareDevelopmentAndArchitecture/

Groenendael answered 9/10, 2016 at 15:30 Comment(3)
Working software over comprehensive documentation?Sher
Customer collaboration- for technical (!!!) reasons, Solution/Product manager is for whatSher
Technical (!)responsibility for changes in planSher
S
0

First of all: Scrum team is self organized. That means that technical management roles are not so much expressed. Yes, team cans elect/invite a member for a role. But in this hiring role also should be delegating to the team. Yeah..it is not really.Besides team's activity are strongest in meeting and sprint parts, mainly.Technical architecture provides solutions of the level of epics and, at least, requires building road map, approving technologies, feed back to stakeholders and other specific operations are our of topic scope. Besides, technical architects acts in corporate development interests of company, especially for keeping DRY and other principles of solutions reuse,quality and so on.Of coarse sprints can be and must be interrelated in multi team company, that requires also arrangement on leadership level. In these aspects, architect is on behalf of stakeholders, and, furthermore, a technical elements, constraints, pattern, technologies, which are the subject for implementation, are a right section in user story. Basically, when necessary, architect cans write code in a sprint frames if it is in interests of business (this strongly depends on leadership code in a concrete company, I do not see here nothing to be out of range). But, defined role of architect is technical solutions on behalf of stakeholders to conduct business to technical definitions translation and technical guideline control

Sher answered 21/2, 2017 at 11:46 Comment(0)
G
-3

I dont think there is the need as the SCRUM guide written by the original formants of SCRUM Dr Jeff Sutherland and Ken Schwaber doesnt mention the need for one.

Gellman answered 11/1, 2013 at 10:29 Comment(1)
The question was not "is an Architect specified in the holy texts" :) but "What does an architect do/ how does his role change in this framework."Clay

© 2022 - 2024 — McMap. All rights reserved.