3 ms·
The problem is that bad architecture can be carried forward for a very long time at increasing cost. The ability to differentiate good and bad architectures se
by YZF 4mo ago
The problem is that bad architecture can be carried forward for a very long time at increasing cost.
The ability to differentiate good and bad architectures seems to be a lost art because to build this ability you need to have enough experience (e.g. the discussion in "The Mythical Man-Month"). Most software developers today have had no experience designing even a single system and many systems are often a random assortment of stuff thrown together by people without enough experience. What I call the "sort of works" architecture. It has big gaps but it sort of works and so there is continuous investment in trying to make it good, which is often a waste of time. You've lumped a bunch of stuff together to build something and now you're stuck with it.
AI as it is right now is probably a driver to make this worse because it makes it so much easier to throw random stuff together.
- sroerick 4mo ago> AI as it is right now is probably a driver to make this worse because it makes it so much easier to throw random stuff together. My experience has been the opposite: affordable slop makes me way more conscious about architecture because bad patterns become useless exponentially quicker.
- ManuelKiessling 4mo agoWell it can go in both directions I guess. How to design a system well for the long term is definitely in the training data, and I‘m regularly very content with the suggestions that SOTA coding agents make when asked for it.
- cjfd 4mo agoSo what would be a good architecture? How would I recognize it if I stumbled against it? My own inclinations here are that it would be good to have as few different technologies as possible. To run things on as few different machines as possible and to have automated tests for everything. The thing is that as soon as there are multiple technologies you get to have different people specializing in them and it is always the communications between those that becomes painful. The automated tests are there to prevent fear of change setting in. I think I am kind of advocating what is called a 'big ball of mud' but that I want it to be a transparent ball of mud because of automated testing. I guess what I am saying is that I distrust most developments in so-called application architecture of the last few decades except automated tests. In particular, I think frameworks and microservices are mostly just bad.
- YZF 4mo agoIn an existing system some combination of these attributes: - High quality (e.g. low number of issues hit by customers, resilient to failures, efficient, secure etc.) - Easy to maintain (well organized, broken down in a sensible way into components or layers) - Easy to extend/adapt to future requirements (i.e. the designer was able to anticipate the likely direction of the system and account for that in the design) Automated testing feels a bit orthogonal to me but a system that is easy to test is likely one with a better architecture. It's not strictly part of what I'd call architecture. Less different technologies - YES! Runs on fewer machines is a sign of an efficient/performant design. Less well designed systems exhibit bloat that is often made up for by running on more machines.
- jeffreygoesto 4mo agoWe sometimes point to ISO25010 [0] if management or not so experienced devs are asking. It contains a good deal of the relevant "qualities" you keep an eye on for quality. [0] https://iso25000.com/index.php/en/iso-25000-standards/iso-25010/ https://iso25000.com/index.php/en/iso-25000-standards/iso-25...
- sunrunner 4mo agoThat looks like a whole lot of dimensions to measure without providing any clear way of actually doing so. Which I guess is the point? But what do management or less experienced devs actually do with the information in the standard after they’ve read it?
- bluefirebrand 4mo agoHopefully, they ask more experienced devs "what do we do to accomplish this" and hopefully the devs on their team actually are experienced enough to have good answers
- jeffreygoesto 4mo agoYou put all as cards on the table and have management pick their top three or five and their order. Can be extended to a full day workshop with your stakeholders, if useful. It gives you a relatively complete taxonomy and you can speak about it with the same vocabulary which is a benefit on its own also.