Live data from Hacker News

Software Architecture Is Overrated, Clear and Simple Design Is Underrated

blog.pragmaticengineer.com

171–180 of 218 posts

Re: Software Architecture Is Overrated, Clear and Simple Design Is Underrated

#171
post #147

Earlier quoted context omitted.

2000-line God class ... "hard to read" because they need to open a new file Might be me, but I've always found this a rather strange argument: either they aren't using 'go to definition' which means that to be able to read the other code they have to scroll through the file manually, leaving where they are, and then go back. That's not really convenient? Or they are using 'go to / peek definition' and then it doesn't…

I have counterpoints on both ends here. It's not always possible for a "goto definition" function to work in dynamic languages. If you're in a large file, it's quite easy to jump around with line marks (a la vim), searching, etc.

Good point about dynamic languages. But line marks also work across files, right?

Re: Software Architecture Is Overrated, Clear and Simple Design Is Underrated

#172
post #32

The value of Enterprise Architecture doesn’t come in to play until you’re an actual Enterprise. We operate more than 300 IT systems, from a myriad of different and switching (courtesy of procurement) suppliers. These systems are operated by 5000-7000 employees, and range from making sure employees get paid and patients get the right medicine to simple time booking apps. Most of these systems need to work together, an…

>The value of Enterprise Architecture doesn’t come in to play until you’re an actual Enterprise.

Probably the smartest thing ever said when it comes to design patterns.

To put it in non-tech terms, a lot of design patterns equates to learning how to build a suspension bridge when building a back patio to a house. There's value, sure, maybe. But don't kid yourself. 80% of projects don't survive for more than 3 years at best. Most of which never really get "updated" after a year or two. Nor see teams more than half a dozen people.

Re: Software Architecture Is Overrated, Clear and Simple Design Is Underrated

#173
I don't disagree with anything in this article, but at the same time, I feel like maybe the core issue is just that we don't really know how to do "architecture" well yet. I don't think the "standard software architecture planning tools" mentioned at the beginning are really THAT widely known, so there's a large and scary built in learning curve there that's definitely going to put people off. But, similarly, source control used to be scary and put people off to the point where it was included as #1 on the old "Joel Test". That seems ridiculous today.

Re: Software Architecture Is Overrated, Clear and Simple Design Is Underrated

#174
post #171

Earlier quoted context omitted.

I have counterpoints on both ends here. It's not always possible for a "goto definition" function to work in dynamic languages. If you're in a large file, it's quite easy to jump around with line marks (a la vim), searching, etc.

Good point about dynamic languages. But line marks also work across files, right?

Yes. Line marks are amazing.

Re: Software Architecture Is Overrated, Clear and Simple Design Is Underrated

#175

In my career thus far, I can honestly say I've never, ever, ever seen an "Architect" who actually provided valuable inputs. Not trying to say they don't exist, but I've just never witnessed someone with that title actually have a positive impact on any project I've worked on. The only semi-positive value I've seen an architect have is when they counter another architect to allow the engineers get on with their work w…

Much of an architect's role won't be visible to developers beneath them and -- like a manager -- involves coordinating with other projects or other business units. That a specific project exists at all to work on or is otherwise a discussion topic is often the result of an architect's work.

Re: Software Architecture Is Overrated, Clear and Simple Design Is Underrated

#176

Services at Uber are pretty much all stateless Go or Java executables, running on a central shared Mesos cluster per zone, exposing and consuming Thrift interfaces. There is one service mesh, one IDL registry, one way to do routing. There is one managed Kafka infrastructure with opinionated client libraries. There are a handful of managed storage solutions. There is one big Hive where all the Kafka topics and datasto…

What you describe is an architecture, of course, and it didn't happen by accident.

It's an architecture that's almost completely mute on how business-level functionality should be organized.

Re: Software Architecture Is Overrated, Clear and Simple Design Is Underrated

#177
post #63

Let’s see how the OP’s system looks in 20 years. Then we’ll see how clear and simple it has remained. The OP is railing against a culture that never existed. Banks software architects are not in their offices smoking cigars and making UML diagrams that they send to coders, only to realize later that they made the wrong trade off. What happens is: You design a system for what it’s supposed to do. You do it the way the…

And then there's the only available bathroom that is filled 3 ft deep with tp and shit and you must cut paths through to make brown. That is where the magic thinking happens.

Re: Software Architecture Is Overrated, Clear and Simple Design Is Underrated

#178

Earlier quoted context omitted.

This reminds me of the framework va libraries argument or ORM vs raw SQL. Yes frameworks and ORMs can be constraining and limit clever solutions. But when you need to add complex features to a complex project you are always glad that every other programmer that came before you was constrained and that things use a familiar pattern.

I've encountered spring/hibernate projects in the with lots of performance and integrity issues that were easy to straighten out by just cutting out the orm layer and replacing it with non magical, simple SQL. Magic is nice when it works but when it stops working and you lack the skills on the team to make sense of it, things get ugly quickly. This happens exactly when you are adding complex features that stretch the…

[deleted]

Re: Software Architecture Is Overrated, Clear and Simple Design Is Underrated

#179
I feel like people get hung up on UML conventions and try to follow every process exactly and create every piece of documentation perfectly.

That was never the point. The point was to be able to communicate complex concepts in a way that people could understand and work with.

Bravo for having done that!

Re: Software Architecture Is Overrated, Clear and Simple Design Is Underrated

#180
post #57

Earlier quoted context omitted.

In my own experience, it's really a must to go through both over- and under-engineering phase yourself: only then I found I got a really clear view on what's good and bad in approach, allowing me to default to somewhere in between (with outliers when useful) and in any case with focus on simplicity (but again, if needed for e.g. performance that can be violated). All of this is the basic 'learn from your mistakes' pr…

I don't even think it's a phase. From what I see in my own experience, overengineering comes from not having a deadline to deliver an actual working piece of software. Unclear requirements. Fear that the code must be perfect against change without knowing what the changes might be. Underengineering comes from confidence that the issues are too small to worry about. Or the time constraints mean I can't try to find goo…

Overengineering: I just left an enterprise-y company where the lead software engineer "over-engineered" for the purpose of job security. His philosophy was that if it's layered and convoluted, it's harder to replace him. Oh, we had deadlines. It had to work. Part of "working" is "passing tests" so he also wrote lots of tests that executed the written code but actually tested the mocking framework.

I hated dealing with any of his code.

Post reply on HN