Member-only story

System Design 101: Adapting & Evolving Design Patterns in Software Development

Shanoj
2 min readOct 4, 2023

Think of ๐๐ž๐ฌ๐ข๐ ๐ง ๐ฉ๐š๐ญ๐ญ๐ž๐ซ๐ง๐ฌ as solutions to recurring problems. ๐‘ป๐’‰๐’†๐’šโ€™๐’“๐’† ๐’๐’Š๐’Œ๐’† ๐’•๐’Š๐’Ž๐’†-๐’•๐’†๐’”๐’•๐’†๐’… ๐’“๐’†๐’„๐’Š๐’‘๐’†๐’” ๐’‡๐’๐’“ ๐’„๐’๐’Ž๐’Ž๐’๐’ ๐’Š๐’”๐’”๐’–๐’†๐’” ๐’Š๐’ ๐’”๐’๐’‡๐’•๐’˜๐’‚๐’“๐’† ๐’…๐’†๐’—๐’†๐’๐’๐’‘๐’Ž๐’†๐’๐’•. But what if the problem youโ€™re dealing with isnโ€™t the same as the one a particular pattern addresses? Hereโ€™s the cool part: you can often adapt existing patterns. Itโ€™s like ๐ญ๐ฐ๐ž๐š๐ค๐ข๐ง๐  a recipe to suit your taste.

However, thereโ€™s a catch. When implementing a pattern, you should always consider โ€˜๐ž๐ฑ๐ญ๐ž๐ง๐ฌ๐ข๐›๐ข๐ฅ๐ข๐ญ๐ฒโ€™. This means building in a bit of ๐Ÿ๐ฅ๐ž๐ฑ๐ข๐›๐ข๐ฅ๐ข๐ญ๐ฒ. Think of it as future-proofing. Youโ€™re saying, โ€˜Hey, this solution might need to change a little down the road when new ingredients become available.โ€™

But what if the problem undergoes a ๐ฆ๐š๐ฃ๐จ๐ซ ๐ญ๐ซ๐š๐ง๐ฌ๐Ÿ๐จ๐ซ๐ฆ๐š๐ญ๐ข๐จ๐ง? Imagine your favourite recipe changes from baking a cake to grilling a steak. Thatโ€™s when you realize the old recipe wonโ€™t work anymore. Itโ€™s time to introduce a new pattern โ€” a new recipe perfect for the ๐ซ๐ž๐ฏ๐š๐ฆ๐ฉ๐ž๐ ๐ฉ๐ซ๐จ๐›๐ฅ๐ž๐ฆ.

In a nutshell, updating a design pattern depends on how the problem it tackles changes. If itโ€™s just a ๐ฆ๐ข๐ง๐จ๐ซ ๐ญ๐ฐ๐ž๐š๐ค, you can often tweak the pattern. But if the problem takes an entirely ๐๐ข๐Ÿ๐Ÿ๐ž๐ซ๐ž๐ง๐ญ ๐๐ข๐ซ๐ž๐œ๐ญ๐ข๐จ๐ง, itโ€™s time to welcome a new pattern into the kitchen. The key is to keep your solutions ๐ž๐Ÿ๐Ÿ๐ž๐œ๐ญ๐ข๐ฏ๐ž ๐š๐ง๐ ๐ฎ๐ฉ-๐ญ๐จ-๐๐š๐ญ๐ž as the world evolves.

--

--

Shanoj
Shanoj

Written by Shanoj

Shanoj is a seasoned Solutions Architect with a wealth of experience delivering business value and actionable insights through well-architected data products.

No responses yet