Sounds like architecture to me. You're doing it right already!
Ask HN: Is there a better way to document complex software architectures?
51–60 of 239 posts
Re: Ask HN: Is there a better way to document complex software architectures?
#52Full disclosure: I am one of the developers of a product which does the below, also known as model driven architecture. For about 5 years now, the teams I have been on have found great success in the use of DDD. Towards this we have used a tool which not only allows us to visually model the domain using UML, but also performs what we call “code management” (smarter code-gen which doesn’t get in your way, or produce u…
Re: Ask HN: Is there a better way to document complex software architectures?
#53- Enterprise Architect is a great tool but produces diagrams that look dated. This means I sometimes copy in another tool for certain types of meetings that require fancy powerpoints (pitch like presentations, customers, ex. Management etc.
- if the source isn't there I create from scratch. I have to link post-source creation to update and link my diagrams to source code. I do not generate source code from enterprise architect because we do not work model based and usually my diagrams that I create in advance are not detailed enough to generate the source. (Nor should they be)
- Sometimes the right diagram type is just not there in EA. I created my own templates for our department with all AWS logos and services, Azure, docker, and many others. That's a pain..
* I work in a global enterprise. Size of source about 6 million LOC. EA does handle that without hickups.
Re: Ask HN: Is there a better way to document complex software architectures?
#541. You want to build these diagrams faster and perhaps semi-automatically instead of dragging around boxes and lines.
2. You want them to look better and not so perfunctory. To communicate better.
There is kind of an oddball option here which I fell in love with. There’s a tool called Monodraw which is magic for making old school ASCII art diagrams. It’s surprisingly very visually compelling, easy to update and it’s just text so it can be embedddd in source code comments (no PDFs).
The best reason you might consider this over a “big” IDE-type solution is that ultimately good cogent communication requires making choices about what to highlight. An exhaustive auto generated architecture diagram in the same generic style of everything else can make one’s eyes glaze over. When you choose what to show and emphasize you can tell a better “story”.
Yes you have to keep the diagram up to date with major changes, but that’s not a problem if you lower the cost of updating and raise the visibility of the diagram by putting it in code. They even have a CLI now so you can export it in your build process.
Re: Ask HN: Is there a better way to document complex software architectures?
#55Disclaimer: not affiliated with and cannot vouch for them. I just think they look cool.
Re: Ask HN: Is there a better way to document complex software architectures?
#56Earlier quoted context omitted.
Do point towards the "architect" hate pages, please. You've piqued my interest.
Scan up and down this thread. Comments are saying he/she shouldn't have a job, he/she should be writing code instead, who is h/shee to dictate to delivery teams. This was posted a few weeks back by a DRI in Stripe, https://hyperbo.la/w/aws-org-chart/ , which sounds alot like what traditional architects do. Nobody showed any interest. Anytime I've attempted to raise a discussion on this it gets shut down quickly. Yeap…
Re: Ask HN: Is there a better way to document complex software architectures?
#57ps - it's FREE!
Re: Ask HN: Is there a better way to document complex software architectures?
#58TLA+ is a formal specification language, plain-old maths, and the tool suite includes a model checker and a pretty printer. The model checker verifies properties of your specification that you want to hold true such as liveness. And it also includes a pretty-printer for exporting your specifications into well-formatted PDF documentation.
The nice thing about writing specifications this way is that they are specific, at the correct level of abstraction for the problem, and can be verified.
I think Lamport's analogy is apt: specifications are like blueprints. If you're building a shed in your backyard then a sketch will be sufficient. There's no need to have a blueprint. If you're building a house you'll need some kind of blueprint. The software equivalent of a sufficient blueprint for building a house is a strong, static type system, unit, integration, and property-based tests. If you're building skyscrapers you need something much more formal and I think this is where TLA+ and Lean are useful.
Re: Ask HN: Is there a better way to document complex software architectures?
#59This is something I can't do with planes as well as you have to book in advance, get there early, check in, get inspected, line up to board. Filling plane seems to take 15 to 30 minutes. Filling the train takes 2-3 mins. And of course the train drops me off in the center of town, not 30 to 90 minutes outside of town like most airports.
There's a couple of seasons where getting a seat or getting 2 seats together might take more planning but most of the time taking the Shinkansen feels no different than taking any local train or subway in terms of prep which makes it super easy to use. It's a little expensive, $240-$350 round trip (free seating->reserved seating->1st class) but I've still made impulse trips for various events deciding on the same day that, yea, ok, let's go!
I will say China's bullet trains are amazing as well but booking/tickets are not nearly as smooth.
Re: Ask HN: Is there a better way to document complex software architectures?
#60Earlier quoted context omitted.
If the project is very large architects don't have time to code. Sometimes they can test something before taking decisions but all the production code is written by somebody else. Their role is more about meeting people and help the organization making the correct decisions.
What is "very large"?