• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Bear Bibeault
  • Ron McLeod
  • Jeanne Boyarsky
  • Paul Clapham
Sheriffs:
  • Tim Cooke
  • Liutauras Vilda
  • Junilu Lacar
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • fred rosenberger
  • salvin francis
Bartenders:
  • Piet Souris
  • Frits Walraven
  • Carey Brown

Righting Software: anti-design effort

 
Sheriff
Posts: 15815
264
Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Juval,

Regarding this:

Juval Löwy wrote:Ask the second half to produce the worst possible design: a design that will maximize your inability to extend and maintain the system, a design that will disallow reuse, and so on. Let them work on it for one afternoon and then bring them together.


I know you started that section by saying it's going to be a difficult and uphill battle to convince people about the downside of functional decomposition but I'm very interested in learning how you can convince a group of architects (and their managers) to try the anti-design exercise you describe.

First, it's a whole afternoon of doing what people are going to see as throwaway work just to try to prove a point, one which I doubt they're convinced of anyway to start with. Second, it's counterintuitive for people, especially experienced engineers and architects, to purposefully and willfully come up with "the worst design possible." I imagine you'd want to have someone in there with them facilitating that anti-design effort. Can you please give more details on 1) How you've convinced people (architects and their managers) to do this exercise at all and 2) What kind of help/guidance do you give them to overcome the counter-intuitiveness of producing "the worst design."

I would think that everyone would just come up with a monolithic patchwork tightly-coupled design with no separation of concerns and be done in 10 minutes. On the other hand, the other half doing "the best design possible" will most likely come up with some variation of a layered, loosely-coupled architecture. And what do you do when the designs that both groups come up with don't turn out to be very similar as you said they usually do? This seems like a risky proposition to make, especially if you're a third-party brought in to provide expert advice. I'd imagine there have been a few times when people looked at you funny when you suggested this anti-design effort to them.
 
Author
Posts: 12
10
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Junilu,

>>how you can convince a group of architects (and their managers) to try the anti-design exercise you describe.
I propose you trick them into it. If you tell them that it is an anti-design effort you will defeat the purpose.
Everyone likes a good contest. That is how you stage it. They do not know that it is to prove a point.

>>it's counterintuitive for people, especially experienced engineers and architects
>>to purposefully and willfully come up with "the worst design possible."
Then why do they produce it all the time?
Try it.
BTW, it is a common practice in other domains, such as cyber security.

>> And what do you do when the designs that both groups come up with don't turn out to be very similar as you said they usually do?
I never had to deal with that case – both groups produced always functional decomposition.
If one group does produce a good design that encapsulates the volatilities – great! Go for it.

>>This seems like a risky proposition to make, especially if you're a third-party brought in to provide expert advice
Then don't do it. You are driving. I aim to give ideas and tools.
Do whatever you think is best to get them to stop creating more technical debt with functional decomposition.
One option is to just do it correctly yourself, and let the result speak for themselves.

Juval.
 
Junilu Lacar
Sheriff
Posts: 15815
264
Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Juval Lowy wrote:
>>it's counterintuitive for people, especially experienced engineers and architects
>>to purposefully and willfully come up with "the worst design possible."

Then why do they produce it all the time?
Try it.
BTW, it is a common practice in other domains, such as cyber security.


LOL. Yes, I know they do it all the time even when they think they're producing "the best".

You said "trick them into doing it," but how? I'm still not getting how you'd do it. On one hand you say "Divide them into two groups and have the first group create 'the best design' and the other 'the worst design'." But how do you "trick" the second group into trying to produce the worst design possible without explicitly telling them to try to produce the worst design possible?
 
Juval Lowy
Author
Posts: 12
10
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Announce that you are doing a design contest.
Split them into two groups, in separate rooms.
Visit each, and give them their tasks. To the first you say produce the best, to the second, the worst.
You never even tell them they worked on different tasks till after you show them that they did the same.

Juval.
 
Junilu Lacar
Sheriff
Posts: 15815
264
Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Juval, I'd say it's a crazy idea. (See the quote in my signature below)  
 
Marshal
Posts: 69896
278
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Juval Lowy wrote:. . . design contest. . . .

  • First prize: A barrel of beer.
  • Second prize: a pin of beer.
  • Third prize: a carry‑keg of beer.
  • Consolation prize from runner‑up: a pint of beer.
  • Make sure it is decent stuff, and notice I said “from” rather than “for”, because such a naughty idea requires JL collect all the prizes to drink himself
     
    Junilu Lacar
    Sheriff
    Posts: 15815
    264
    Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator

    Campbell Ritchie wrote:

    Juval Lowy wrote:. . . design contest. . . .

  • First prize: A barrel of beer.
  • Second prize: a pin of beer.
  • Third prize: a carry‑keg of beer.
  • Consolation prize from runner‑up: a pint of beer.
  • Make sure it is decent stuff, and notice I said “from” rather than “for”, because such a naughty idea requires JL collect all the prizes to drink himself


    I don't drink much anymore these days. Maybe give the beer to the "worst design" team, as an incentive and aid.
     
    Campbell Ritchie
    Marshal
    Posts: 69896
    278
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    No, all the beer goes to the other JL for his suggestion of the contest
     
      Bookmark Topic Watch Topic
    • New Topic