Architects in scrum are like mayonaise in cake
After my talk about cake mixes and how they should be avoided, several people have come to me and said that cake mixes actually turn out better cakes than the ones they make themselves, so why bother making cakes from scratch. Aiaiaiaiai, what is the world coming to? You clearly need some education, people. Luckily for you I’m here to help. Here is a wonderfully easy recipe from my mom’s good old “Joy of Cooking” classic. It’s called “Quick or Lightening cake” or something like that. Really really easy to make. I usually add a teaspoon or so of cinnamon and lots of apple slices to make it more interesting, but you don’t have to. Here are the ingredients:
1/2 cup of butter (add a pinch of salt (if the butter isn’t salted)
1 cup of sugar
2 eggs
1/2 cup (+ few teaspoons) of milk
1 1/2 teaspoons baking powder
1 3/4 cup of flour
Oh, right… butter… I live in Norway - country of butter shortages - so I have gotten out of the habit of keeping butter in the fridge. But it’s ok. I’m pragmatic. I’m agile. (Who isn’t now-a-days?) I’ve got other stuff in the fridge. I can just use them. Mayonaise for example. Norwegians have a clever trick that ensures that their mayonaise will never run out. We hide it from all foreigners and make sure only REAL norwegians can find it. How? We make it look like tooth paste! Tubes FTW! Who is going to think to look for mayo in a tube?

But I digress.
Some people say mayonaise doesn’t work in cake. It HAS TO BE butter or maybe margarine. Come on people, there is no need to be that anal about it. I’m just one of these people who don’t use butter or margarine, I don’t have any, OK? And there is nothing wrong with my mayo. It’s very tasty. I made excellent potato salad with it just the other day. And anyway, what do you suggest I do with my mayo? I can’t just throw it away now can I? It’ll be ok, I’ll just put a new label on it. A butter-label. You won’t see that it’s mayonaise at all, I promise.
I’m kidding of course. Using mayonaise in cake is not being pragmatic. It is being disgusting. You can’t just pick a recipe and then make it with whatever you have lying about in the fridge. Apple pie requires apples, Banana split does not work with cucumbers; and scrum teams, do not work with managers or architects.
In scrum training people quickly catch on to the fact that the project manager role does not feature in scrum. The cry goes out: “But - but - but - what do we do with the project managers then???” Oh shit; I have mayonaise in the fridge, but my cake recipe does not call for mayo! What to do?!? Well, who cares what you do with it? Use it in sandwiches; make egg salad, rub it on your back. Whatever. Just don’t put it in the cake. It may be unfair to compare managers to mayonaise, after all it is easy to think of uses for mayo. But even if you can’t think of anything useful for managers to do, you can at least keep them out of the way. Let them have meetings with each other. Let them hold power point presentations at each-other. They’ll be fine.
Every scrum training session I’ve been part of, the role (or lack of one) of the manager has been raised as a topic for debate. So even though everyone still uses project managers, they at least know they aren’t meant to. But I haven’t heard anywhere near as much talk about the architect. Either the architects don’t realize that they aren’t wanted in scrum - or they just keep quiet and hope no one else realizes. Either way - most “scrum” teams I know, have an architect. People don’t seem to find this controversial at all. I admire their capacity for doublethink.
What is a software architect after all? It’s a guy who’s responsible for the design and architecture of the software being built. He’s the one who makes decisions about how things should be done. Now, what is a self-organizing team? It’s a team who figure out how things should be done BETWEEN THEMSELVES. It means that every team mate feels empowered, capable and responsible for providing solutions and driving the project forwards. If there is an architect on the team, the team members are no longer responsible for the design decisions. If there is an architect on the team, the team members are less likely to raise objections to designs proposed by him. If there is an architect on the team, talented team members feel frustrated since it is harder for them to get their ideas across.
By now you’re thinking “Oh she’s just one of these stubborn anarchists who can’t take criticism or direction” Well, you might not be totally wrong ;-) But my main problem with architects is not that I find them to be authoritarian fascists. It’s that I actually listen to them and take their advice more readily than I should. If the architect comes over and says “Here is how we’re going to solve this problem”, I’ll say “OK”. Well no, to be fair, I probably would still start an argument. But I would let the architect win. Now if a random team member came up and said “Here’s how we’ll be doing this”, I wouldn’t start the argument knowing that I was going to lose. I would feel that both our points of view deserved to be heard and that we probably should ask the rest of the team what they thought.
Not having the authority to dictate procedure, you have to get the buy in from your team before proceeding with any big ideas. Annoying as this is, I think it is essential for the health of both the team and the product. So often architects make decisions that their teams either disagree with, or fail to understand properly. In both cases, poor software is the result.
Further more, if you have a good team, it is unlikely that any one architect is going to be the best in every aspect of the software. If there is no formal architect, you are more likely to listen to different people at different times. If you’re discussing front-end issues, you’ll take the advice of your best UI guy. If you’re discussing database design, you’ll talk to your best database person. If you have a formal architect - he’s the one who’ll be asked for answers in all cases. And he’s not going to decline or delegate is he. All good architects say that they will, but of course they don’t. As the saying goes:

“But architecture is important!” You might say. I’m glad you think so. I couldn’t agree more! That is one of the reasons it is so vital to involve more people in it. Of course we have to think about software architecture. The more everyone thinks about architecture the better. If every team member feels responsible for the design decisions and feels part of the decision making process, they will also take more care to follow the decisions made. If they understand why the design is the way it is, they will be able to recognize when the design makes sense and when it doesn’t. When I say we should remove the architect role - I don’t mean we kick out the architect. When scrum advocates say one should avoid specialists, they don’t mean we should kick out all people with specialized knowledge. That would be so stupid, it should be unnecessary to point out that that is not what we mean. The more competent the team members, the more successful the team will be. Obviously we want to keep the best and brightest.
“But the team isn’t capable of taking good decisions” Well then you’re screwed, aren’t you. Regardless of whether you have an architect or not. If the team sucks, so will what they produce. You have 2 options: fire the incompetent ones, or help them get better. There is an immense skill gap between the best and the worst software developers. Many programmers are stumped by the simplest of problems - even after years of experience. It’s fascinating to witness. Their experience seemingly consists of getting others to come up with solutions and then just typing those solutions out. This is not a particularly useful skill. I think we should teach them how to think on their own. You don’t learn thinking for yourself by following orders. Obviously. Like aid workers in developing countries have found out: just dumping food on the starving doesn’t help much in the long run. We need to give people the opportunity to improve their skills. Always handing them finished designs takes that opportunity away from them. We need to let them code. Maybe not the most crucial parts of the app, but enough for them to learn and to get better. I know it hurts to look at solutions that don’t meet your standards, but If you really can’t handle seing code you wouldn’t have written yourself, what are you doing in a team? I say we grow our team members and let everyone use their brains for what they are worth. It’ll pay in the long run.
I first heard about scrum in 2006. I’ve been eating scrum cake with mayonaise, caviar and maple syrup ever since. 6 years later the recipe still looks very tempting. I just hope I get to try it with the right ingredients some day.
—-
(PS, if you DO want to bake that cake, you need to:
Beat the butter and sugar, add eggs and milk, blend well, then mix in flour and baking powder (and cinnamon) - gently, just until it’s all blended. Pour it into a greased cake pan (add lots of peeled and sliced apples :-D ) and bake in preheated oven at 190 degrees (celsius) for around 20 minutes )