Hilarious: the Disasters Caused by Emergent Design in Practice

Several people in the Agile community believe in Emergent Design. But I think that it has caused many disasters in software development projects. See below some hilarious pictures of Emergent Design in practice, with fictional conversations illustrating the kind of thinking that generated them…

stairs1) Commenting-Out

PM: Look, the requirements were changed, we will have to modify these stairs.

Dev: It will be too difficult to modify them, I will simply write new ones.

PM: So will you delete the previous ones?

Dev: No need to delete, I will comment them out, they may be useful in the future.

up and down2) Connecting Modules

PM: You designed the stairs between floors, but you did not design the connection between stairs.

Dev: This should not be a problem, after having the stairs it is very easy to connect between them.

 

components

3) Adding New Features

PM: There is a very wide space here, I think we should add some benches.

Dev: No problem, benches are very modular, I can easily plug them here.

 

 

flow4) Emergent Design

PM: You have designed the floors, but you did not design the stairs connecting them.

Dev: Don’t worry, after we have the floors it is very easy to add the stairs.

 

 

 

 

angular5) Partial Requirements

PM: Sincerely, I am not sure that the system you implemented is what the customer expected…

Dev: You can check the requirements, our system satisfies perfectly all the customer requirements.

 

 

 

 

responsive6) Choosing a Platform

PM: Ideally this system should be built on top of a land-based platform.

Dev: Land is too expensive, I suggest we use old tires instead.

PM: Are you sure that old tires would be a good technology choice for this project?

Dev: No doubt, old tires are cheap, very modular and can be combined in multiple ways.

interface7) Cross-Cutting Concerns

PM: I see in your design that there is some coupling between the building columns and the passage.

Dev: This should not be a concern, both can perform their function despite this small coupling.

About Hayim Makabee

Veteran software developer, enthusiastic programmer, author of a book on Object-Oriented Programming, co-founder and CEO at KashKlik, an innovative Influencer Marketing platform.
This entry was posted in Agile, Software Architecture and tagged , . Bookmark the permalink.

7 Responses to Hilarious: the Disasters Caused by Emergent Design in Practice

  1. Axel Vanhooren says:

    Emergence is an attractive promise that helps selling Agile. I think that a lot depends of the developers and the pressure on the developers. I know, they should work at a sustainable pace. But is the practice the same as the theory? What makes me doubting is the fact that the development is dependent of the backlog, the demand, the wishlist.This means that Agile has a only partial view or works on a part of the system (or system of software systems). If it promises rapid and continuous delivery, the client expects it, and how much time is left to refactoring so that a good design can emerge? It is meant to refactor frequently and in small steps, but a small different decision may lead to a huge refactoring job, isn’t it? My fear for Agile is that rapid delivery will overtime lead to an emerging chaos.

  2. Mohamed Sami says:

    Yes, extremely hilarious. Thank you for the article

  3. milesbluetoo says:

    How about backing up your assertion of software development disasters with actual software development disasters instead of pictures of messed up buildings?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s