2 ms·
So much here, don't know where to begin. - Let's first start with the false dichotomy. Software Architecture is not orthogonal to clear and simple design, and
by dimitrios1 4y ago
So much here, don't know where to begin.
- Let's first start with the false dichotomy. Software Architecture is not orthogonal to clear and simple design, and clear and simple design is not orthogonal to software architecture.
- Let's assume the dichotomy exists. I used to think this way too, as well. I was vehemently against the architecture astronauts. As I got older, and worked on more projects, and gained more experience, I learned that I was simply in a position where my architecture decisions didn't have a drastic negative impact, at least certainly not in the near term, nor mid term in most cases, only in the long run. I could get by with, well pretty much anything, so long as it "just worked" (TM), and we had the ability to debug and diagnose quickly when issues came up.
- Apps, Web development and the such can afford to get by with some questionable architecture, because they are mostly standing on the shoulders of giants, starting with the architecture of the internet itself all the way to most databases, libraries, frameworks and tools, and even some languages, that make common web-based development tasks like parsing JSON, performing RPCs, or working with DateTimes pieces of cake compared to yesteryear. If you work with distributed systems, you use some sort of well architected consensus solution, with likely a well architected software package or library to use it with, that likely will cover up a lot of your mistakes and misuses.
- Working at a major bank now, with friends at other major banks, there are some outright fallacies described in the article. Maybe that was the case when this person worked there, but it isn't the case today.
> All of these systems were large at scale: hundreds of developers build them - or on top of them - and they power systems used by millions of people per day.
But it's still likely that you simply leveraged existing libraries and tools built on solid architecture. In fact, I have a little inside baseball at Uber to know as much.
Bottom line is, you can't get to "clean and simple design" without being good at writing software and having a wide, diverse array of experience. I would say that is almost the essence of software architecture.