In this episode Andrew Harmel-Law, Kenny (Baas) Schwegler, and Andrea Magnorsky discussed the difficulties of facilitating software architecture decisions, particularly when teams are hesitant to take responsibility. Kenny shared his experience at a growing company that needed to choose a new front-end framework (Vue or React) to scale from 8 to 115 developers. His goal was to empower the team to make a democratic decision, but they were mostly junior to mid-level developers who were uncomfortable with the accountability of a major choice.

Key Strategies for Facilitation

The discussion highlighted several methods for navigating this kind of indecision:

  • Ask for consent: When the team felt too uncomfortable to decide, Kenny asked for their consent to make the decision himself. This approach still involved them in the process, and he ultimately chose React.
  • Support the decision: After making the decision, Kenny asked the team what they needed to get on board with it. The developers requested training, which was then arranged. This practice, also known as “disagree and commit,” ensures that even if people don’t agree with a decision, they are given the necessary resources to follow through with it.
  • Create a safe environment: People are often afraid to make decisions because of the potential for future negative consequences. Andrew pointed out that an architect can act as a “proxy” for the team, taking on the accountability to protect them.
  • Understand Governance and Accountability: Andrea emphasized the importance of clarifying who is responsible for a decision. A good governance framework provides checks and balances to prevent bad decisions
Transcript
Speaker:

Andrew Harmel-Law: Welcome back

to another episode of virtual DDD,

2

:

where we talk about, the facilitating

software architecture and design.

3

:

And I'm here today with Kenny and

Andrea and Kenny's gonna share

4

:

a story with us this time of

facilitating software architecture.

5

:

So Kenny is one of the co-authors of the

book called Collaborative Software Design.

6

:

Along with Gien and Evelyn.

7

:

And Kenny's had a lot of experience as

I consulted with all of these things.

8

:

So Kenny was gonna share one of his

experiences with us, and we were

9

:

gonna see what we could learn from it.

10

:

So over to you, Kenny.

11

:

Kenny (Baas) Schwegler: Yes.

12

:

Thank you.

13

:

So one thing.

14

:

What I like about all this is that we

really want to take very deep democratic

15

:

decentralized decision that's in your

book and mine book, and Andrea talks a lot

16

:

about that, but the road towards that is

not as easy as possible because there's a

17

:

lot of, authority in most of the companies

that people are starting is right.

18

:

My story was, a few years back, I was

in a company and, they were growing.

19

:

They had an investment and I was there

as an architect and I tried to facilitate

20

:

the architecture with the team, but the

team was also, a meteor junior skilled.

21

:

on one hand, you want to,

and this is always the case,

22

:

what I usually, see, right?

23

:

Architects are usually being promoted

because they're the person that knows.

24

:

The most.

25

:

So they got promoted and I don't

feel like that's a good thing,

26

:

but anyway, that's happening.

27

:

So what if you're in that position that

I was in, and then all of a sudden the

28

:

board comes to you and say, well, we need

to grow from eight to 115 a few years.

29

:

Right.

30

:

That was the challenge.

31

:

So then they were writing

only on vanilla JavaScript.

32

:

So, the appointment was okay.

33

:

we need to find a, front end.

34

:

Framework or language that can

grow with the company, right?

35

:

Vanilla GS is not that case.

36

:

So we looked in the market and the

market says it was either view or react.

37

:

So.

38

:

Decide Kenny, and I'm like, no, I'm,

I'm not gonna decide it because I'm not

39

:

developing actively in JavaScript here.

40

:

I went to the group, but the group was

a group of four or five developers.

41

:

You discuss this with them and say,

well, you know, this is the case.

42

:

We need to grow.

43

:

Uh, and, and this is an,

already a sort of autocratic.

44

:

In a way, right where

you, where you go in.

45

:

So not all decisions have to be full

advice or have to be full democratic.

46

:

I try to be democratic as possible,

but then you're getting into

47

:

this uncomfortableness like,

okay, we need to decide this.

48

:

in that case, there's

a lot happening, right?

49

:

Some people don't have any experience in

react review, someone has experience in

50

:

view, the rest has experience in react.

51

:

so how do you deal with this fact?

52

:

What I did was.

53

:

Give that conversation to the

group and try to talk with them

54

:

like, okay, what do we want?

55

:

Where do we want to go?

56

:

So I set up an A DR write down,

okay, it's either view or react.

57

:

What are the pros and cons?

58

:

But nobody had experience

about these pros and cons, and

59

:

we couldn't hire any consult.

60

:

There was one consultant,

and this was a react.

61

:

Expert.

62

:

it was a consultant and the person working

there was more of a view developer.

63

:

this is sort of like a confliction

thing because you don't want to

64

:

go with what the consultant says

because the consultants will move

65

:

and that there's all these sorts of,

66

:

things that you need to

take in consideration.

67

:

So, what I gave them as an

assignment is like, okay, here's

68

:

a new feature for the front end.

69

:

Consultant with a few of the

people, they both write one in view

70

:

and one in react, and just see,

okay, what are the differences?

71

:

But once there were, I remember

there were two that didn't really

72

:

care which way they were going, so

it got all into one medior's, hands

73

:

and that medior needed to decide.

74

:

And that felt very uncomfortable

for the medior, and.

75

:

it says, yeah, I felt very uncomfortable

making this decision now and write it

76

:

down in the a DR that I took the decision.

77

:

Because if it's gonna grow, and

people come in and I say it's

78

:

view and they're like, what a

stupid decision, that you made.

79

:

So eventually what I did, but I'm

very curious what you would do.

80

:

But what I did eventually is at that

point, They got into what we call

81

:

in the book shadows, like, yeah,

I feel uncomfortable, uncertain.

82

:

I'm a meteor, I'm not yet grown

enough to make this decision.

83

:

so I told them, okay, then

I'll take the decision.

84

:

So ask for consent.

85

:

Do you want me to take the decision?

86

:

Then I'm fine with taking the

decision based on what you are saying.

87

:

Eventually we choose for react.

88

:

Or I choose for react of course,

because I thought, okay, if it's I'm

89

:

taking this away from this person,

what I did then of course is what

90

:

do you need to go along with this?

91

:

Well, that person needed training.

92

:

So we arranged for all the developers to

get some react training, in this case,

93

:

but yeah, that uncomfortableness, If you

come in and there's all these different

94

:

politics at play and you want the team

to take, this is what a lot of technical

95

:

people want to get into technicality.

96

:

They say, well, you know, I want people

to take democratic decisions or decisions

97

:

with the group, but then they stay silent.

98

:

They feel uncomfortable.

99

:

So I'm very curious in my way, I try to

get into that uncomfortable, make it safe

100

:

for them to speak up and then ask for

consent so that I can take the decision.

101

:

But I'm very curious.

102

:

About your thoughts, right?

103

:

So I'm not against autocratic

decisions as long as you try to get

104

:

consent, connect with the group.

105

:

And I think that's, especially

for new architects, right?

106

:

That usually don't have

mandates in a company because

107

:

they're not building stuff.

108

:

How are you gonna navigate that web of.

109

:

And I think that's one of

the real challenges I still

110

:

face to this day, right?

111

:

That I faced recently again, right?

112

:

Thinking, well, a decision is

theoretically okay to go A, you know,

113

:

the people want to go b i'm curious

how, how you are dealing with that fact.

114

:

Andrea Magnorsky: I,

guess, from heuristics.

115

:

So if I was, there, there's obviously

a few options and I'm pretty sure

116

:

that we've gone through a few

of the options ourselves, right?

117

:

So if you're going through

this enabling, at least.

118

:

Make room to hear all the

options there, so that's one way.

119

:

It's like what you said you did right?

120

:

You're like, okay, I actually

want to hear your opinions.

121

:

so if you're doing that, one

of the hard balances is that

122

:

some people don't wanna talk.

123

:

Because they don't wanna talk not

because there's any inherent problem or

124

:

because they lack experience, because

honestly they don't want to get involved.

125

:

And it's been a hard lesson for

me to learn that then that's okay.

126

:

And I am curious to hear about that

aspect too, of like pushing people

127

:

to say what they think means that.

128

:

They are really trying to get away from

actually saying they're thinking about it.

129

:

They're like, you know what?

130

:

This, and I think this the, do you

want me to take the decision is

131

:

something that I wish I learned earlier.

132

:

So that's one option.

133

:

The other option, guess it's

also just gonna save one.

134

:

Push it back, go like, well, we

need to make this decision, but

135

:

you're saying that we shouldn't hire

contractors that's anti ethical.

136

:

Can we get some consultants to

help you, help the team learn both.

137

:

Like learn enough so they can

make a better informed decision.

138

:

Because in reality that you know, if

you're trying to build for the future,

139

:

then can we, can we invest on it?

140

:

Kenny (Baas) Schwegler: That's the whole

enablement team from team topology.

141

:

Andrea Magnorsky: Yeah.

142

:

Kenny (Baas) Schwegler: better decision.

143

:

Andrea Magnorsky: another,

area in which I push back.

144

:

And a third option that is

also possible is like, can we

145

:

build, can we actually pause,

temporarily and spend time learning?

146

:

So.

147

:

Kenny (Baas) Schwegler: Yeah.

148

:

Andrea Magnorsky: So we split

the, how many people there are.

149

:

Try to choose the people that

are, you know, if someone is

150

:

kind of for you and kind of for

react, put them in the other team.

151

:

Kenny (Baas) Schwegler: Yeah,

152

:

Andrea Magnorsky: so you

153

:

Kenny (Baas) Schwegler: right?

154

:

Andrea Magnorsky: Yeah.

155

:

So that you get, yeah,

like let them build.

156

:

But, you know, spend, it's

not like a little experiment.

157

:

It's like, no, actually, you know.

158

:

a maybe let's say a couple of

weeks that there is no, if there's

159

:

a team of four people, you're

like, listen, this is four people.

160

:

They actually need time.

161

:

don't just learn stuff.

162

:

We're not in the matrix.

163

:

Maybe this is a very old reference

for some people, but you know,

164

:

where you can just plug in.

165

:

Hopefully not.

166

:

so that will be my, the

three options that I,

167

:

Kenny (Baas) Schwegler: Yeah.

168

:

Andrea Magnorsky: when in

that situation, I've been in.

169

:

it's not, it's strict.

170

:

It's not, it's not easy.

171

:

Kenny (Baas) Schwegler:

I forgot the second one.

172

:

What you said was very important.

173

:

I stood into the, into the team

and I said, today, we're not gonna

174

:

leave until we made a decision.

175

:

I think that's a, that was a good one.

176

:

Andrew Harmel-Law: I think so.

177

:

The hard thing is building.

178

:

So things I realized while I was kind

of doing this and experimenting with

179

:

this more and more was that while

it gives everyone the opportunity

180

:

to decide, not everyone wants to

decide, just to Andrea's point, right?

181

:

Some people just don't want,

they're like, it's fine.

182

:

I'm not at that place in my career,

or I don't feel that this is

183

:

something that I have anything to

contribute to, and I'm happy to go

184

:

with whatever everyone else decides.

185

:

So forcing people to decide when

they don't want to, that's hard.

186

:

But then the kind of flip side is,

and, I wrote about this in my book

187

:

because it is one of the things

that frustrated me, which is why I

188

:

ended up writing the book, but like.

189

:

We're very good at coming up with all the

opinions, all the pros and cons we can

190

:

have, you know, we can have very strong

opinions and we can also, when properly

191

:

facilitated, we can remove the emotion

and we're pretty good at getting down.

192

:

Technologists pretty good, usually at

getting down to like the concrete facts.

193

:

But because of accountability, because

we know, the power that software can

194

:

have, we've seen, we live in code

bases where someone made an accidental

195

:

decision three years or seven

years before, and now it's causing

196

:

thousands of pounds of pain per day.

197

:

So people are terrified to actually

take the decision, say, I vote

198

:

for this, or vote for that.

199

:

And so like what you said, Kenny

is definitely a thing that I've

200

:

done where I'm, or even with

people's opinions, sometimes they

201

:

have an opinion, but they're not

confident being the name against it.

202

:

So I've offered to say, look, I will.

203

:

This is a relevant piece of information.

204

:

I can add it to the a DR or I can

add it as advice, as a comment or

205

:

something and I won't acknowledge you.

206

:

but then we've put this piece of

information into the mix 'cause I think

207

:

it's super important and like, I think I.

208

:

More generally, I've used ADRs to call,

like you can bring stuff to the surface.

209

:

'cause you can say, right, there's

just this thing that nobody's, nobody's

210

:

thinking about or talking about.

211

:

Let's write it down.

212

:

Let's bring all of this

stuff into the open.

213

:

And then I think the context

becomes most powerful, right?

214

:

It's like, why is this

decision happening now?

215

:

What is important about it?

216

:

And I think the last point, like

you said, the people and the skills

217

:

and the time you have available and

all of those things are important.

218

:

Important context.

219

:

And this is one of the examples in in the

book that we've got, and it's actually

220

:

was Pete, hunter, who's, who's open gi,

who hopefully we can get on and speak to.

221

:

one team wanted to pick an entirely new

framework because they were like, we

222

:

know it's suitable, but also we'd love

to just like, for our benefit, it would

223

:

be cool for us to learn a new technology.

224

:

It feels like a good fit.

225

:

We think we've done the

right, right homework.

226

:

And it will be suitable for this.

227

:

We know we don't have any skills, but we

also think that would be APL a plus point.

228

:

And I was like, that looks like a

disaster, but it turned out to be perfect.

229

:

Bringing all of these things

in and making people feel safe.

230

:

And like you said, Kenny, you can proxy

for those people to protect that safety

231

:

until they realize that, that there

isn't gonna be negative consequences

232

:

because there is always that shadow

stuff and the, the kind of surrounding

233

:

patriarchal kind of hierarchy.

234

:

You did what, it's your fault, therefore

this disaster is, is comes down on you.

235

:

People are still worried to do that, so.

236

:

Kenny (Baas) Schwegler: yeah, it's also a

bit, and the reverse is also true, right?

237

:

As an architect from a start,

and that's what you want to.

238

:

Of course enabled towards the teams is

that the teams get more understanding

239

:

of the system wide context.

240

:

That's also a discussion

that's usually there.

241

:

so teams might also make,

I think you went into that.

242

:

Teams might also make decisions.

243

:

We're gonna put it in our own surface.

244

:

So let's say we're gonna put it in our

own model it, even though it's really a

245

:

different system, but we're gonna model

it in our system because we have, we.

246

:

Our team has this ecosystem of libraries

in that system and making it separate

247

:

takes too much problem, much work.

248

:

And then, well, you as an architect

are like, but it's a different surface.

249

:

Right?

250

:

You should.

251

:

And I remember that that

conversation happened and, and,

252

:

and then advised against it.

253

:

And then there's this whole,

okay, what are we gonna do now?

254

:

Because we know for sure that

It makes your life easier.

255

:

As developers, we understand,

but it's the feature.

256

:

So what I usually see in media, bias

comes in and I say, well, What's the

257

:

problem with making this decision?

258

:

But they haven't lived the experience

of long, long term architecting systems,

259

:

Andrew Harmel-Law: Yeah.

260

:

Yeah.

261

:

Kenny (Baas) Schwegler: a whole,

there's a whole conflictuous

262

:

or tension there as well.

263

:

Andrew Harmel-Law: Yeah.

264

:

Kenny (Baas) Schwegler: Teach these

people to understand something

265

:

that they need to go through first.

266

:

But you, if you make that decision,

it's gonna be a ramification decision

267

:

because it's, can we only do this

for significant design decisions?

268

:

Right.

269

:

Andrew Harmel-Law: Yeah, I heard there's

a quote, someone I worked with, someone

270

:

who apparently walked up to Eric Evans.

271

:

So this might not be true.

272

:

Eric probably knows if it is really,

but they said, what is the thing that

273

:

makes people want to do DDD, and the

answer was, they need to felt the pain.

274

:

'cause otherwise it's just

a collection of patterns.

275

:

Right?

276

:

and that is systems architecture, right?

277

:

It's like, it's very easy to make.

278

:

Kind of the job is to see the whole

system, to see the longer term

279

:

horizon and all those kind of things.

280

:

Right?

281

:

Whereas the people who are

making the point decisions,

282

:

which is what you want, right?

283

:

Loads of small, incremental decisions

aren't supposed to have that.

284

:

They're supposed to be more local,

more immediate, more, you know,

285

:

smaller time horizon and stuff.

286

:

But you do need, like, you know,

like Ron would talk about like

287

:

the STS social technical systems.

288

:

Oh, Kenny's left room.

289

:

Like you want the whole

system used by Andrea.

290

:

So, but getting that is hard.

291

:

Andrea Magnorsky: I'm sure that

Kenny's, departure was accidental,

292

:

so he might join us again.

293

:

And I think I, I'll bring this again

when he joins again, but I think we're

294

:

implicitly talking a lot about governance,

and I think that deserves, attention.

295

:

Like all decisions kind

of have this governance.

296

:

And I think when people start

thinking of centralized architecture

297

:

or the advice process or anything

like that, people immediately listen

298

:

thinking, but who's responsible?

299

:

I think even making explicit who's

gonna have governance is probably

300

:

something that needs to be discussed.

301

:

compliance is something that is

kind of ortho to dash as well.

302

:

Andrew Harmel-Law: Yep.

303

:

Andrea Magnorsky: this is the

normal work that we live in.

304

:

Right?

305

:

I like it that we're talking

about it implicitly, but we

306

:

should mention it also explicitly.

307

:

Andrew Harmel-Law: It's

the thing I get asked.

308

:

Look, something I get asked all the

time when I go to clients is like,

309

:

Hey, what's the governance framework?

310

:

And I think governance come

brings with it a lot of stuff.

311

:

Maybe baggage from a technical

perspective, which is bad.

312

:

It's like how the old hierarchy

used to impose itself.

313

:

But I think like maybe in

today's political world, right?

314

:

Checks and balances and kind of

things feel like a good thing, right?

315

:

Maybe.

316

:

'cause otherwise one thing can go off

in a, in a really bad direction just

317

:

for the benefit of a few without,

you know, bringing in the thinking

318

:

about the benefits for everyone.

319

:

but what's interesting actually, as well,

I, I did a bit of research for this.

320

:

So like, things like the toga

framework and the Open Agile

321

:

architecture frameworks, they

acknowledge the fact that.

322

:

Agile development practices have changed

things, and they're like, we don't mind.

323

:

Pretty much it says in the open, agile,

architecture, sorry, open architecture.

324

:

Open agile architecture framework.

325

:

It's like decisions can be anywhere

as long as the accountability

326

:

for the decision sits next

door to the responsibility.

327

:

So the person deciding

is also accountable.

328

:

And if you as the facilitator like Kenny

is, or we, you know, you were around here.

329

:

Reminding people.

330

:

It's like, if you make this, you are

accountable and then that can lead to the

331

:

conversations that Kenny's had, right?

332

:

Some people are like, I don't feel ready

to be accountable and like, okay, I will

333

:

help proxy you and I will, make sure

that, it's a sound decision based on

334

:

what we know at the time, and based on

all of these, help balance the criteria.

335

:

One thing, like we said, as an architect,

one thing is you just get better

336

:

at doing this more and more because

your gut feel, not your intellect.

337

:

I think like your gut feel is to like,

this feels good or this feels bad.

338

:

We've had more, 'cause we've

just seen more of these things.

339

:

Andrea Magnorsky: I think this is where

I like the ality ideas from Barry Riley,

340

:

Kenny, while you were gone, we made

explicit the fact that we're speaking

341

:

of governance and also the relationship

between it and also compliance.

342

:

so the, just catching you up.

343

:

So you have any thoughts on that?

344

:

On like how.

345

:

Kenny (Baas) Schwegler: I think the

relevant point there, what Andrew said,

346

:

and I think that's it's a guilty pleasure.

347

:

I'm okay with people

taking decisions for me.

348

:

we usually for, we're like on the negative

side, like, okay, but they took a decision

349

:

and I don't like it, but sometimes, right.

350

:

I always say if someone takes

me on a holiday and they decide

351

:

everything and I'm okay with it.

352

:

a guilty pleasure.

353

:

I'm fine if people decide for

me and that should be spoken

354

:

about as well, that it's fine.

355

:

Like don't need to take the decision.

356

:

We can go anywhere as long as, and that

was in the previous episodes, as long as

357

:

we connect with people's what they want.

358

:

Right?

359

:

Well, I've heard this is your

thoughts, but we went this way.

360

:

Second thing is, as long as they can rent

and they can express their emotion freely.

361

:

It can also be the opposite.

362

:

You make a decision for them

and they're, they're not okay

363

:

with that, and that's fine.

364

:

but let them rent without

going in defensive mode.

365

:

And then at the end you

say, yeah, I know, right?

366

:

You try to really empathize with their

situation, and then you ask them, what do

367

:

you actually need to go along with this?

368

:

Because we're gonna do this, but

I want you in and I want to know

369

:

what will make your life easier

going along with this decision.

370

:

Andrew Harmel-Law: What do you

need to be along to go along?

371

:

Like people are like, people throw around

the phrase disagree and commit, but they

372

:

rarely go, what do you need to commit?

373

:

They're just like, no, I'm the most

senior person, and it is gonna be limiting

374

:

to your career to say, I don't agree.

375

:

Kenny (Baas) Schwegler: Yeah.

376

:

And that's, that's the uncomfortableness.

377

:

Oh yeah.

378

:

Like eight out of, I had

that one, seven out of nine.

379

:

we are gonna go for this,

and two are like, okay.

380

:

And then when you ask the question,

what do you need to go along, they

381

:

say, well, in this case it was a

decision about, trunk based or not.

382

:

And they're like, well, we

are front end developers and

383

:

Andrew Harmel-Law: Yeah, it's always front

384

:

Kenny (Baas) Schwegler: and,

okay, so that's what you need.

385

:

You need to first understand how

feature flagging works in the front end.

386

:

Yeah, yeah, yeah.

387

:

Okay.

388

:

Let's add that to the decision.

389

:

Right.

390

:

We're gonna do trunk based, but first

we're gonna investigate how this

391

:

works on the front end side and then.

392

:

Next week they were battling the PO

for going along with that decision.

393

:

Andrew Harmel-Law: And different, like

frequently, like you said, the different

394

:

context is the thing that makes PE

not always right, but frequently it's

395

:

just they're in a different place.

396

:

they're looking at things from a

different perspective or they're

397

:

different starting location.

398

:

It's a super, like if you're like, what do

you not, you know, why can't you commit?

399

:

You're like, oh, your

context is totally different

400

:

Kenny (Baas) Schwegler: and that's

401

:

Andrew Harmel-Law: from S.

402

:

Kenny (Baas) Schwegler: talks about

with our proco fix list, right?

403

:

If you have a con, how can we

actually fix that, that we're

404

:

not dealing with the problem?

405

:

Or neutralized problem.

406

:

Andrew Harmel-Law: Yep, yep.

407

:

So yeah, thanks for

everybody for, uh, joining.

408

:

Thanks, Andrea and Kenny for

chatting with me and sharing all

409

:

of that really interesting stuff.

410

:

And I'm looking forward to having

another chat about interesting

411

:

decisions and facilitating

software architecture and design.

412

:

Kenny (Baas) Schwegler: Thank you.

413

:

Andrea Magnorsky: See you next time.