Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
April 20, 2022 11:11 pm GMT

Challenges when designing a new application

You have to choose the move that feels right sometimes; thats what intuition is.
Magnus Carlsen, Chess World Champion

Ive been thinking about the multiple challenges we face when designing a greenfield project. Therere many things we have to analyze and define. In the end, well need the correct combination of architecture, language programming, database, infrastructure, and so on. This is really difficult because several options exist, and a new one appears all the time with promising benefits and unclear drawbacks. Additionally, the combination depends on the business context and the team. In any case, we dont need the perfect setup because it could be too time-consuming and too complicated. As we all know, a low time to market is essential when starting a project. Instead, we must have a good enough combination that allows us to maintain a healthy balance.

Almost everyone knows about chess and has played it for some time. The rules are quite simple, although the possibilities are enormous. After both players move, 400 possible board setups exist. After the second pair of turns, there are 197,742 possible games, and after three moves, 121 million. What makes it even more challenging is that sometimes a simple change in a position could transform a winning move into a completely losing one. So its impossible for a human to calculate all the variations. Thats why strong chess players have to develop good intuition and pattern recognition to make a good move in a decent amount of time. As in system design, a good enough decision is fine and desirable.

The limits of my language mean the limits of my world.
Ludwig Wittgenstein, Tractatus Logico-Philosophicus (1922)

When Martin Klepmann reviewed the different data models in his fascinating book, he cited this very interesting quote. I think its a great analogy to show us that any decision involves trade-offs. Theres no such a thing as a silver bullet. For instance, the data model limits how we can read, write and update the data, but it allows us to organize and query it in a particular way that might be useful. Deciding on the correct kind of model for an application is crucial to avoid future problems in terms of performance and complexity of implementation. The same applies to each technical decision we make.

Therere a lot of possibilities for every aspect of our system. You dont have to be an expert on each of them, but its important to know the main categories. We can mention the relational and non-relational models for databases or microservices and monoliths for architectures. These categories could be further divided, depending on the detail we need. Ultimately, these are all tools to have in our bag when the time to design a new system comes. Last but not least, keep in mind that these decisions are not immutable. We must revisit them along the way.


Original Link: https://dev.to/arthur_pym/challenges-when-designing-a-new-application-252

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To