Software Architecture Is Overrated, Clear and Simple Design Is Underrated (2019)
blog.pragmaticengineer.com
Software Architecture Is Overrated, Clear and Simple Design Is Underrated (2019)
1–10 of 34 posts
Re: Software Architecture Is Overrated, Clear and Simple Design Is Underrated (2019)
#2The key word here is “over-architected”. The author is nitpicking academic and bureaucratic architecture design that happens at large (arguably inefficient) companies. But they evolved that way to protect themselves, probably before testing was widely understood or implemented.
Regardless, it tries to make a sensationalist topic when in fact it’s trying to say “architecture is common sense” + don’t prematurely optimize.
Overall not the worst article but its incendiary nature rubs me the wrong way.
Re: Software Architecture Is Overrated, Clear and Simple Design Is Underrated (2019)
#3- 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.
Re: Software Architecture Is Overrated, Clear and Simple Design Is Underrated (2019)
#4>No IT architects or enterprise architects. True, neither Uber nor Skype/Microsoft have hands-off software architect positions. Engineers at higher levels, like staff engineers, are expected to still regularly code.
That statement says that EA is not commonly coding. Is that true? I don't know that I've met many architects that aren't engineers by another name (possibly cross departmental/enterprise).
It feels like a straw-man.
Re: Software Architecture Is Overrated, Clear and Simple Design Is Underrated (2019)
#5Actually, our approach is not that different in principle, to most architecture guides.
This whole article is basically clickbait. The author appears to be arguing against some ill-defined strawman, but in the end even concedes that that isn't true. They are doing architecture, they just aren't doing it according to "the software architecture literature". Whoop de freaking doo. That statement could be applied to probably 99% of companies out there.
The important thing to realize is that all software has an architecture. The difference is, some software has a good architecture that makes it easy for it to meet its requirements, and some of it has shit architecture that makes it brittle, failure prone, impossible to maintain, and generally scary to look at. And also that some software has an architecture that is clearly defined and well understood and (gasp) documented in some way, where other architectures can only be understood by a massive reverse engineering effort.
You can choose either approach, and all of that is orthogonal to whether or not you use UML, 4+1, Design Patterns, DDD, event sourcing, microservices, or whatever buzzword you want to rail against.
Re: Software Architecture Is Overrated, Clear and Simple Design Is Underrated (2019)
#6The money quote is here: Actually, our approach is not that different in principle, to most architecture guides. This whole article is basically clickbait. The author appears to be arguing against some ill-defined strawman, but in the end even concedes that that isn't true. They are doing architecture, they just aren't doing it according to "the software architecture literature". Whoop de freaking doo. That statement…
Re: Software Architecture Is Overrated, Clear and Simple Design Is Underrated (2019)
#7The money quote is here: Actually, our approach is not that different in principle, to most architecture guides. This whole article is basically clickbait. The author appears to be arguing against some ill-defined strawman, but in the end even concedes that that isn't true. They are doing architecture, they just aren't doing it according to "the software architecture literature". Whoop de freaking doo. That statement…
The idea that other companies are all sheep following some clearly-defined, but wrong, practices is getting old. At this point, I’m extra cautious about working with people who insist that they are “not like the other companies” as a point of pride, because it nearly always means that they value being different for the sake of being different.
It’s one thing to evaluate different practices and adapt them to what works best for you and your company. However, when people take it too far and adopt a mindset that they must be different than others because they don’t believe anyone else can do things as well as they can, it becomes an exercise in arrogance.
Re: Software Architecture Is Overrated, Clear and Simple Design Is Underrated (2019)
#8Reading through and wondering for perspective, this caught me: >No IT architects or enterprise architects. True, neither Uber nor Skype/Microsoft have hands-off software architect positions. Engineers at higher levels, like staff engineers, are expected to still regularly code. That statement says that EA is not commonly coding. Is that true? I don't know that I've met many architects that aren't engineers by another…
My wife shared a house for a short period of time with an architect who was fairly new out of uni and did not know how to code, or have any real tech skills.
At the same time I was working for large companies in digital transformation trying to teach them to let developers make decisions.
It's common EA is about PowerPoint and talking to vendors with checklists, and doesn't require strong or sometimes any tech chops.
I find it crazy.
Re: Software Architecture Is Overrated, Clear and Simple Design Is Underrated (2019)
#9When I started out, I thought the way to become a senior engineer was to increase the number of patterns I knew off the top of my head. It was by speaking with more senior folks that I learned that wasn't how to grow, but that was far from obvious.
Re: Software Architecture Is Overrated, Clear and Simple Design Is Underrated (2019)
#10Reading through and wondering for perspective, this caught me: >No IT architects or enterprise architects. True, neither Uber nor Skype/Microsoft have hands-off software architect positions. Engineers at higher levels, like staff engineers, are expected to still regularly code. That statement says that EA is not commonly coding. Is that true? I don't know that I've met many architects that aren't engineers by another…
It's 100% true. My wife shared a house for a short period of time with an architect who was fairly new out of uni and did not know how to code, or have any real tech skills. At the same time I was working for large companies in digital transformation trying to teach them to let developers make decisions. It's common EA is about PowerPoint and talking to vendors with checklists, and doesn't require strong or sometimes…
EA is focussed on evaluating the business processes and technical solutions that make up the operations of a large scale organization. They try to identify and remove redundancy (e.g. multiple billing systems) and ensure the solutions in place (custom internal, or vendor purchases) are fit-for-purpose from technical, business, and strategic standpoints.
It’s very far removed from the practice of software development (since the correct solution, from an EA standpoint, might just be to stitch together a handful of vendor systems and do away with custom development completely).